![在数学模式下,逗号后留有空格](https://linux22.com/image/461767/%E5%9C%A8%E6%95%B0%E5%AD%A6%E6%A8%A1%E5%BC%8F%E4%B8%8B%EF%BC%8C%E9%80%97%E5%8F%B7%E5%90%8E%E7%95%99%E6%9C%89%E7%A9%BA%E6%A0%BC.png)
我一直在努力寻找这个问题的答案,但一直没能找到。我正在写一篇文章,必须写很多公式,对我来说,写得比写得漂亮
f(x, y)
。f(x,y)
我厌倦了\,
在数学模式中总是在逗号后写一个细空格,这也让人感到困惑。有没有办法自动完成这个?
答案1
如果你愿意在之后有更多的空间每一个数学模式下的逗号。
\documentclass{article}
\AtBeginDocument{%
\mathchardef\stdcomma=\mathcode`,
\mathcode`,="8000
}
\begingroup\lccode`~=`, \lowercase{\endgroup\def~}{\stdcomma\,}
\begin{document}
$f(x,y)$
$a,b,c$
\end{document}
如果在指定变量时只想要空格,则可以使用与包相同的方法icomma
,但这要求输入有纪律:如果逗号后跟一个空格(在数学模式下),则会添加一个细空格。
\documentclass{article}
\makeatletter
\AtBeginDocument{%
\mathchardef\stdcomma=\mathcode`,
\mathcode`,="8000
}
\begingroup\lccode`~=`, \lowercase{\endgroup\def~}{%
\futurelet\@let@token\spaced@comma
}
\newcommand{\spaced@comma}{%
\stdcomma
\ifx\@let@token\@sptoken\,\fi
}
\makeatother
\begin{document}
$f(x, y)$ % added space
$f(x,y)$ % compare with the standard
$a,b,c$ % no space is added
\end{document}
我会避免将其设置\thinmuskip
为更大的值。原因如下。
\documentclass{article}
\thinmuskip=6mu
\begin{document}
$f(x,y)=\sin x-\sin y$ % with the new setting
\thinmuskip=3mu
$f(x,y)=\sin x-\sin y$ % with the standard setting
\end{document}
如您所见,\thinmuskip
不仅在逗号后使用,而且还在其他几个地方,这些地方都会受到相同扩大空间的影响。