(wx)Maxima:表达式幂的文本输入

Posted

技术标签:

【中文标题】(wx)Maxima:表达式幂的文本输入【英文标题】:(wx)Maxima: texput for powers of expressions 【发布时间】:2021-02-05 00:49:53 【问题描述】:

我使用texputlog(x)tex1 输出设置为\ln(x)

texput('log, lambda([e],[a]:args(e), printf(false, "\\ln(~a)", tex1(a))));

我想知道是否可以将输出设置为(log(x))^n 之类的东西?我特别想使用\ln^n(x) 约定。

【问题讨论】:

试试这个::lisp (push '%log *tex-mexpt-trig-like-fns*) 谢谢你,罗伯特。这完成了一半的工作 - 正确的电源样式,但对于原始 tex 输出:log(x)^2 返回 \log^2 \left(x \right) 而不是 \ln^2 \left( x \right)。我尝试将\log 重新定义为\ln(即使用prefix 并且不应用任何括号),但这也不起作用。在最坏的情况下,我将只添加一个本地 KaTeX 宏来在本地将 \log 重新定义为 \ln 好的,谢谢您的信息。它不像描述的那样工作是一个错误,我会尝试解决这个问题。作为一种变通方法,除了您已经拥有的内容之外,请尝试::lisp (setf (get '%log 'texsym) '("\\ln ")) (这样做的一个令人高兴的副作用是您可以只说texput(log, "\\ln "),而不是使用更长的咒语lambda([e], ...)。) 为此提交错误报告会有所帮助吗?很高兴这样做,如果它可以节省您的任何时间。 关于错误报告,是的,通常这很有帮助。但是在这种情况下,我已经在处理它了,所以我将只覆盖它而不提供错误报告。 【参考方案1】:

log 的 TeX 输出的奇怪之处是我正在处理的一个错误。但我认为,这是一个可以得到你想要的行为的解决方法。

在这里,我同时调用了texput(log, "\\ln ")texput(log, "\\ln ", prefix),以在不同的上下文中设置log 的TeX 输出,同时:lisp (push log *tex-mexpt-trig-like-fns*) 以与触发函数类似的方式处理log

(%i1) stringdisp: true $
(%i2) map (tex1, [log(x), log(x+1), log(x)^n]);                              
(%o2)   ["\log x", "\log \left(x+1\right)", "\left(\log x\right)^n"]
(%i3) texput (log, "\\ln ");
(%o3)                               "\ln "
(%i4) texput (log, "\\ln ", prefix);
(%o4)                               "\ln "
(%i5) map (tex1, [log(x), log(x+1), log(x)^n]); 
(%o5)           ["\ln x", "\ln \left(x+1\right)", "\ln x^n"]

嗯,这还不够。哦,对了,我忘了三角函数。

(%i6) :lisp (push '%log *tex-mexpt-trig-like-fns*)
(%LOG %SIN %COS %TAN %SINH %COSH %TANH %ASIN %ACOS %ATAN %ASINH %ACOSH %ATANH)
(%i6) map (tex1, [log(x), log(x+1), log(x)^n]); 
(%o6)           ["\ln x", "\ln \left(x+1\right)", "\ln ^nx"]

看起来对吗?

【讨论】:

我刚刚注意到seccsccot 都没有出现在类似三角函数的指数列表中。我只是为它们运行了相同的命令,但想知道这是否会构成“错误”或者是否故意省略它们? 是的,这是一个错误;我猜只是疏忽。 为了记录,将 sec、csc 和 cot 放在类似 trig 运算符的列表中是在提交 7bcc17 中,它存在于当前版本(Maxima 5.45)中。

以上是关于(wx)Maxima:表达式幂的文本输入的主要内容,如果未能解决你的问题,请参考以下文章

如何用正则表达式限制文本框输入数字位数?

实现:C#窗体中的文本框只能输入中文汉字,其他输入无效。问:正则表达式怎么用? 分不多,谢谢朋友帮忙!

Java - 正则表达式拆分输入文本但保留分隔符[重复]

正则表达式通过 HTML 限制文本框中的输入 [重复]

使用正则表达式限制文本框中的输入[重复]

使用 jQuery 将文本框输入限制为给定的正则表达式