在数学模式下,逗号后留有空格

在数学模式下,逗号后留有空格

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

答案2

,\mathpunct默认情况下,除非您更改了设置,否则空间会很窄。与{,}

在此处输入图片描述

\documentclass{article}

\begin{document}

$f(x, y)$

$f(x{,} y)$

\end{document}

答案3

您也可以使用您想要的空间来定义自己的命令:

\documentclass{article}

\newcommand{\fxy}{$f(x,\,y)$}

\begin{document}
    \fxy, compared to
    

    $f(x,y)$
    
\end{document}

在此处输入图片描述

相关内容