在公式中,变量之间的间距通常隐式对应于乘法运算符。我发现 LaTeX 的默认间距不太易读:符号彼此太近,我希望它们之间自动留出更多空间(即无需手动插入)。诚然,这是一个品味问题,但在我看来也与易读性有关。正如 MWE 所说:
$a x + b$ vs $a \hspace{0.07em} x + b$ and $y dx$ vs $y \hspace{0.07em} dx$
全局更改数学间距可能 (i) 有点复杂,并且 (ii) 会弄乱精细调整的 LaTeX 编译。但是特克斯麦克斯建议通过决定将符号*
排版为(细)空格来实现这一点。这样,人们就可以保留源中的含义(乘法),这仍然是可读的(x * y
与x \, y
),同时获得视觉上令人愉悦的输出。
我不熟悉catcode
,但它可以用来*
用预定的空间替换所有内容吗?(无论如何,我可以不用符号*
。)我知道以前的邮政关于这个话题,但答案未能说服我,我想继续。
答案1
\begingroup\lccode`\~=`\*\lowercase{\endgroup\def~}{\,}
\AtBeginDocument{\mathcode`\*="8000 }
但是,关于差异,我会使用宏
\newcommand*\dif{\mathop{}\!d}
所以你会写
$a x + b$ vs $a * x + b$ and $y dx$ vs $y \dif x$
答案2
你可能对我的回答感兴趣符号自动间距. 再说一遍:
\mathcode`\*="8000
{\catcode`\*=\active
\gdef*{\mathclose{}\,\mathopen{}}}
比较
$a*b$
$a b$
$a\,b$
$a*\cos b$
$a \cos b$
$a\,\cos b$
如果在 前面,则避免\mathopen{}
插入两个细空格。*
\mathop