siunitx 中如何将单位放在数字前面?

siunitx 中如何将单位放在数字前面?

对于欧元,我想对于其他货币也是如此,建议在数字前面加上符号“€”,这与大多数其他科学单位的符号放在数字后面相反。

我当然可以使用自定义\qtyeuro命令来实现这一点,但也许有更好的方法?

\documentclass{article}
\usepackage{eurosym,siunitx}
\DeclareSIUnit{\EURO}{\text{\euro}}
\newcommand{\qtyeuro}[1]{\unit{\EURO}\,\num{#1}}
\begin{document}
I want \qty{12.34}{\EURO} to look like \qtyeuro{12.34}.
\end{document}

截屏

答案1

货币单位是不是“科学”单位,因此经常不遵守为科学单位制定的格式指南。例如,在某些(但不是全部!)货币中,习惯上总是显示正好两个即使处理整数数量的货币,也需要小数位;此外,非整数数量的货币通常应自动四舍五入(或截断?)为精确到小数点后 2 位的数字。

为了融入这些做法,我将修改您提出的定义\qtyeuro并向该部分添加三个选项\num,如下例所示。

在此处输入图片描述

\documentclass{article}
\usepackage{eurosym,siunitx}
\newcommand{\qtyeuro}[1]{%
    \euro\,\num[minimum-decimal-digits=2,
                round-precision = 2, 
                round-mode = places]{#1}}
\begin{document}
\euro\,12, \qtyeuro{12}, \qtyeuro{34.5678}
\end{document}

相关内容