我在使用该units
包时遇到了问题。在我的论文中,我在数学环境中有时使用它,有时不使用它。现在我意识到在数学模式下,逗号后面有一个附加空格。我认为这是欧洲和美国小数点逗号和小数点书写的问题。
你能告诉我如何在数学环境中删除逗号后的空格吗?
\documentclass[12pt,a4paper]{scrbook}
\usepackage{units}
\begin{document}
$V=\unit[0,5]{V}$
\unit[0,5]{V}
\end{document}
答案1
如果您想使用units
,请使用icomma
包裹。
\documentclass{article}
\pagestyle{empty}% for cropping
\usepackage{units,icomma}
\begin{document}
$V=\unit[0,5]{V}$
\unit[0,5]{V}
\end{document}
答案2
读了您的评论,您肯定希望\unit
命令继续工作。幸运的是,LaTeX 允许您重新定义命令。因为\unit
应该像\SI
给出可选参数时那样表现,并且像\si
只给出单位时那样表现,所以其中涉及一些技巧。
\documentclass[12pt,a4paper]{scrbook}
\usepackage{units}
\usepackage{siunitx}
\sisetup{output-decimal-marker = {,}}
\let\unit\relax
\DeclareRobustCommand{\unit}[2][]{
\if\relax\detokenize{#1}\relax
\si{#2}
\else
\SI{#1}{#2}
\fi}
\begin{document}
$V=\unit[0,5]{V}$
\unit[0,5]{V}
\end{document}
我们首先让旧的\unit
不做任何事情。然后我们重新定义它,使其表现得像\si
可选参数为空时那样,或者像\SI
不为空时那样。
答案3
正如 daleif 所说,使用siunitx
包裹:
\documentclass{scrbook}
\usepackage[
locale = DE % Gives comma as decimal separator.
]{siunitx}
\begin{document}
$V = \SI{0.5}{\V}$
\end{document}
答案4
如果必须使用units
,那么您可以在数学模式下用花括号将逗号括起来:
\documentclass[12pt,a4paper]{scrbook}
\usepackage{units}
\begin{document}
$V=\unit[0{,}5]{V}$
\unit[0,5]{V}
\end{document}