\documentclass{mwrep}
\usepackage{amsmath}
\begin{document}
Check:\\
with "," $0,125$\\
with "." $0.125$
with commas:
\begin{equation}
P=
\begin{bmatrix} 0,1 & 0,3 & 0,0 & 0,6 \\
0,2 & 0,4 & 0,1 & 0,3 \\
0,0 & 0,8 & 0,0 & 0,2 \\
0,2 & 0,0 & 0,2 & 0,6
\end{bmatrix}
\end{equation}
with dots:
\begin{equation}
P=
\begin{bmatrix} 0.1 & 0.3 & 0.0 & 0.6 \\
0.2 & 0.4 & 0.1 & 0.3 \\
0.0 & 0.8 & 0.0 & 0.2 \\
0.2 & 0.0 & 0.2 & 0.6
\end{bmatrix}
\end{equation}
\end{document}
如您所见,以逗号作为小数分隔符的数字比以点作为小数分隔符的数字更宽。如何将逗号后的空格改为与点后的空格相同?
答案1
你需要一个intelligent comma
类似的包伊科马或者ncccomma。
您还可以改编以下代码:克劳迪奥·贝卡利文章于PracTEX 期刊,2011 年,第 1 期。
添加
\usepackage{icomma}
或者
\usepackage{ncccomma}
你的序言。
如果您没有安装任何这些软件包,您可以将 Claudio Beccari 的代码添加到您的序言中(我已删除注释并将其添加\makeatother
为最后一行):
\makeatletter
\DeclareMathSymbol{\punctcomma}{\mathpunct}{letters}{"3B}
\DeclareMathSymbol{\decimalcomma}{\mathord}{letters}{"3B}
\AtBeginDocument{\mathcode‘\,="8000}
{\catcode‘\,=\active \gdef,{\futurelet\let@token\m@thcomma}}
\def\m@thcomma{\let\@tempB\punctcomma
\@tfor\@tempA:=0123456789\do{%
\expandafter\ifx\@tempA\let@token\let\@tempB\decimalcomma
\@break@tfor\fi}\@tempB}
\makeatother
希望这会有所帮助。
答案2
我不知道上述智能包中究竟隐藏着什么智能,但我猜测可以用以下四行代码来实现:
\def\mathcomma{\futurelet\next\mathcommaA}
\def\mathcommaA{\mathchar`, \expandafter\ifx\space\next\,\fi}
{\catcode`,=13 \global\let,=\mathcomma}
\mathcode`,="8000
without space after comma: $1,234$ with spaces: $1, 2, 3$.
\bye