单位包中逗号后的空格

单位包中逗号后的空格

我在使用该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}

相关内容