如下图两行之间的差异所示,对于 中足够大的括号对newtxmath
,左括号前面的空间会消失。这会导致间距比预期的更狭窄。有没有一种干净的(即不需要每次手动调整字距)方法来恢复这个空间?
以下是用于生成该图像的代码:
\documentclass{minimal}
\usepackage{newtxmath}
\usepackage{mathtools}
\DeclarePairedDelimiter{\paren}{\lparen}{\rparen}
\newcommand*{\tall}{\int_0^{t^2} x\,dx}
\newcommand*{\taller}{\sum_{\substack{(k,m)=1\\0 < k < m}} k}
\begin{document}
\begin{align*}
&\exp\paren*{\tall} \\
&\exp\paren*{\taller}
\end{align*}
\end{document}
答案1
我准备了两个standalone
文件,\fbox{\Bigg(}
首先用 Computer Modern 进行,然后用newtxmath
,设置\fboxsep
为 0pt 和\fboxrule
0.1pt 以精确显示边界框。
该命令\Bigg
在文本和数学中的工作原理完全相同。接下来,我\includegraphics
对两个输出进行了操作,得到
(左边是 CM,右边是 NewTX)。
下一个实验,我将$\exp\paren[\Bigg]{}$
在两个独立文档中排版。
您可以注意到边界框的差异具有重要作用。
对于更大的括号,边界框的差异更加明显。实验如下:我定义
\makeatletter
\newcommand{\Bigggg}{\bBigg@{4.5}}
\makeatother
并重试第一个实验,得到
同样,左边是 Computer Modern,右边是 NewTX。后者的尺寸略小,但这表明问题在于如何定义组合括号的边界框。
答案2
当你使用\left
和\right
时,TeX 在分隔符周围插入额外的空格。 用 声明的命令\DeclarePairedDelimiter
则不会。因此,如果您希望在操作符后有额外的空格,可以切换到\left(
和\right)
。
您还可以定义一个扩展为\,\paren{#1}
并使用该命令。
我知道我经常这么说,但这只是众多问题中的一个,如果你切换到现代工具链,这些问题就会消失。unicode-math
使用 TeX Gyre Termes Math 看起来非常相似newtxmath
,但没有这个错误。