当方程式中有由多个字母组成的单词时,我必须添加 \mathit 来支撑每个单词,否则字母间距会有所不同。看到下面 MWS 中“CDF”和“erf”两个实例之间的区别了吗?但这种做法确实很繁琐,并且增加了快速阅读方程式的难度。有没有一个包可以自动统一方程式中单词的字母间距,这样我就不必\mathit
在一篇论文中添加数百个单词了?
\documentclass[journal]{IEEEtran}
\usepackage{amsmath}
\begin{document}
\begin{align}
\label{cdf}
CDF &= \frac{1}{2}(1 + erf(\frac{x-\mu}{\sigma\sqrt{2}}))
\end{align}
\begin{align}
\label{cdf}
\mathit{CDF} &= \frac{1}{2}(1 + \mathit{erf}(\frac{x-\mu}{\sigma\sqrt{2}}))
\end{align}
\end{document}
答案1
在精细数学排版中,对诸如“log”、“sin”、“det”、“abs”等运算符使用直立字体形状是很常见的。“erf”在这方面也不例外。由于您已经使用了该amsmath
包,因此您可以使用其\DeclareMathOperator
宏来声明一个名为的新运算符,例如,\erf
如下所示:
\DeclareMathOperator{\erf}{erf}
然后,在 TeX 文档主体中执行全局、一次性搜索并替换从到erf
。\erf
对“CDF”进行特殊排版处理的情况实际上与对“erf”进行特殊排版处理的情况不同。在这里,“CDF”不是运算符,而是首字母缩略词。由于“CDF”肯定不表示名为“C”、“D”和“F”的变量的乘积,因此习惯上使用或\mathit
(我认为更常见)mathrm
来影响首字母缩略词的排版方式。更好的方法是定义一个名为(“变量名”的缩写)的宏,\vn
如下所示:
\newcommand\vn[1]{\mathrm{#1}}
然后写成\vn{CDF}
而不是CDF
。使用\vn
不仅比 短\mathrm
,而且还提供了更大的排版灵活性。假设一个期刊要求变量名使用数学罗马符号,而另一个期刊要求使用数学斜体符号。你在论文中要做的就是改变 的论点\vn
。
基于这些想法,我将重写您的测试文档如下:
\documentclass[journal]{IEEEtran}
\usepackage{amsmath} % for '\DeclareMathOperator' macro
\DeclareMathOperator{\erf}{erf} % "error function" operator
\newcommand\vn[1]{\mathrm{#1}} % for typesetting variable names
% Optional -- load a Times Roman math font package
\usepackage[lite]{mtpro2} % cf. https://pctex.com/mtpro2.html
\begin{document}
\begin{equation} \label{cdf}
\vn{CDF} = \frac{1}{2}\biggl(
1+\erf\biggl( \frac{x-\mu}{\sqrt{2\sigma^2}} \biggr)
\biggr)
\end{equation}
\end{document}