我一直在努力寻找这个问题的答案,但一直没能找到。我正在写一篇文章,必须写很多公式,对我来说,写得比写得漂亮
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
不仅在逗号后使用,而且还在其他几个地方,这些地方都会受到相同扩大空间的影响。