包 eurosym:如何更改小数点分隔符?

包 eurosym:如何更改小数点分隔符?

eurosym 包的小数分隔符是逗号或点。如果您写 \EUR{3.2},则按照法语字体,它会用点来表示;如果您写 \EUR{3,2},则它会用逗号来表示。

\documentclass[a4paper, 11pt]{article}  % Présentation générale et mise en page

\usepackage[right]{eurosym}         
\usepackage[french]{babel}


\begin{document}

Avec un point : \EUR{10.30} 

Avec une virgule : \EUR{10,30}
\end{document}

输出:

eurosym 小数分隔符

所以从这个角度来看,没有问题。

但是,在 LaTeX 中,小数点分隔符默认为点。例如,该xlop软件包tikz和几乎所有其他软件包都遵守此约定。为了尊重本地排版,例如法语,全局命令允许修改小数点分隔符并显示逗号代替点。这是一致的,因为所有数字都采用相同的编码并使用本地排版显示。

例如,使用 xlop 这些命令是\opset{decimalsepsymbol={,}}

是否可以对 eurosym 执行相同的操作?即如何\EUR{13.25}在代码中写入并在文本中显示 13,25 €?

如果没有的话,哪个包允许您这样做?

使用 www.DeepL.com/Translator 翻译

答案1

eurosym与相加siunitx即可\num。无论您如何输入数字,它都会使用所选的小数位标记输出,此处根据locale=FR

\documentclass[a4paper, 11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{siunitx}
\usepackage[right]{eurosym}

\sisetup{locale=FR}

\makeatletter
\renewcommand{\EUR}[2][]{%
  \if@EURleft\euro\,\fi
  \num[#1]{#2}%
  \if@EURleft\else\,\euro\fi
}
\makeatother

\begin{document}

Avec un point : \EUR{10.30}

Avec une virgule : \EUR{10,30}
\end{document}

在此处输入图片描述

重新定义的\EUR命令还有一个可选参数,用于设置选项\num;请参阅文档siunitx\EUR[<options>]{<number>}

如果您想使用numprint,只需更改\num(并且可选参数在这里没有意义):

\makeatletter
\renewcommand{\EUR}[1]{%
  \if@EURleft\euro\,\fi
  \numprint{#1}%
  \if@EURleft\else\,\euro\fi
}
\makeatother

相关内容