数学模式下标点符号前后的间距

数学模式下标点符号前后的间距

使用 pdflatex 或 lualatex 编译这个最小代码会得到这个结果。

\documentclass[12pt]{article}
\begin{document}
\[ (2;3) \quad 2,3 \]
\end{document}

结果

是否可以在数学模式下自动在分号前添加空格并删除逗号后的空格?

答案1

如果在任何用例中需要逗号和分号的这种行为,则可以使用以下“技巧”:更改逗号和分号的数学代码:

\mathcode`\;="303B
\mathcode`\,="013B

在 mathcode 中,第一个数字代表数学符号的类别。默认分号和逗号属于第 6 类(标点符号),因此空格应放在其后,而不是其前。

第 3 类是关系(如符号 +、- 等),因此两边都放置了细空格。第 0 类是普通符号,因此不放置空格。

在这种情况下,如果您需要使用逗号作为标点符号(例如在列表中),则必须手动在逗号后留出细空格。

\documentclass[12pt]{article}
\mathcode`\;="303B
\mathcode`\,="013B
\begin{document}
\[ (2;3) \quad 2,3 \quad \{x,\,y,\,1,\,2,\,3\} \]
\end{document}

在此处输入图片描述

对于使用的任何语言包,您都必须将 mathcode 声明括在\AtBeginDocument命令中并将其放在加载包之后:

\documentclass[12pt]{article}
\usepackage{polyglossia}
\AtBeginDocument{
    \mathcode`\;="303B
    \mathcode`\,="013B
}
\begin{document}
\[ (2;3) \quad 2,3 \quad \{x,\,y,\,1,\,2,\,3\} \]
\end{document}

相关内容