我注意到使用任何分隔符修饰符,如\left(
\right)
或\big(
\Big(
ETC在数学运算符之后\cos
插入一个小的水平空格。
这个问题建议不要使用这些命令,而使用\bigl
,\Bigl
ETC替代方案;然而,我想知道当事先不知道参数时推荐的解决方案是什么?
例如,Maxima 是一个开源计算机代数系统,可以选择自动生成计算的 tex 输出(类似于 Mathematica 的功能,只是它是免费的);但是,生成 tex 输出的规则是针对所有输出以编程方式设置的。因此,三角函数的所有幂都将以这样的方式呈现,\cos^{n} \left( <arg> \right)
以确保括号适用于任何参数。
有没有办法重新定义\left(
\right
以删除这个额外的水平空间?或者单独修改每种类型的运算符的输出是否更合适?例如用于\hspace
逐个操作符删除空格?
对于这个问题有点题外的性质,我深表歉意:在我看来,在这个特定情况下,TeX 社区是更合适的 SE
答案1
以下是一些解决方案:
\documentclass{article}
\usepackage{mathtools}
\DeclarePairedDelimiter{\parens}{(}{)}
\begin{document}
\begin{align}
&\cos \left( \frac{t}{2} \right) \\
&\cos \mathopen{}\left( \frac{t}{2} \right) \\
&\cos\! \left( \frac{t}{2} \right) \\
&{\cos} \left( \frac{t}{2} \right) \\
&\cos \parens*{\frac{t}{2}}
\end{align}
\end{document}
(1)是您想要更改的输出,(2)是 wipet 的优秀答案,(3)插入负空间,(4)将\cos
from 运算符的间距更改为普通(如f(x)
,但也会弄乱像 . 这样的表达式的间距2 {\cos}^2
)和(5)使用\DeclarePairedDelimiter
from mathtools
。
如果您还可以生成序言,我建议使用 (5) 作为自动生成的模板。如果您需要能够将代码片段复制并粘贴到任何文档中,请使用 (2)。
默认行为如此的原因是 DEK在定义间距时\sum
可能考虑了诸如“数学运算符”。\int
答案2
您可以使用
\cos^{n} \mathopen{}{\left( argument\right)}
但自动生成的输出有一个问题:它无法生成对人类友好的文本。人类可以写\cos^2 x
或,\cos^2 (x+y)
但机器必须生成\cos^{2} \mathopen{}{\left(x+y\right)}
。不幸的是。数学公式的 TeX 语言是为人类设计的,而不是为机器设计的。