\per\kWh 产生错误输出

\per\kWh 产生错误输出

我想说的是每千瓦时电费 10 美分。当我编写以下内容时,

\documentclass{article}
\usepackage{siunitx}
\begin{document}
\SI[per-mode=symbol]{0.1}[\$]{\per\kWh}
\end{document}

我得到了以下不正确的结果。

在此处输入图片描述

正确的输出应该如下:

在此处输入图片描述

这是一个错误还是我忘记设置了某些东西?

答案1

问题是 kWh 是瓦特和小时的组合单位,前缀为千。因此,如果您将\kWh其扩展为\kilo\watt\hour,则将仅\per适用于该\watt部分。

解决方案 1

使用sticky-per选项来到达\per\hour

\documentclass{article}
\usepackage{siunitx}
\begin{document}
\SI[per-mode=symbol,sticky-per]{0.1}[\$]{\per\kWh}
\end{document}

带括号

添加bracket-unit-denominator = false将会抑制括号。

\documentclass{article}
\usepackage{siunitx}
\begin{document}
\SI[%
    per-mode=symbol,sticky-per,
    bracket-unit-denominator=false,
]{0.1}[\$]{\per\kWh}
\end{document}

取消括号

解决方案 2

覆盖的定义\kWh

\documentclass{article}
\usepackage{siunitx}

\AtBeginDocument{\DeclareSIUnit{\kWh}{kWh}}

\begin{document}
\SI[per-mode=symbol]{0.1}[\$]{\per\kWh}
\end{document}

覆盖单位宏

结论

确定您是否认为 kWh 是一个组合单位。如果您认为是,请使用解决方案 1;如果您认为是单个单位,请使用解决方案 2。

答案2

说实话,这个想法来自克劳迪奥·菲安德里诺的评论。我编译了他的代码,发现我得到了正确的输出,但货币符号的位置不同。

解决此问题的有趣方法如下\null

\documentclass{article}
\usepackage{siunitx}
\begin{document}
\SI[per-mode=symbol]{0.1}[\$]{\null\per\kWh}
\end{document}

因为我仍然对这种方法的工作原理感兴趣,所以我保留这篇文章,直到有人能解释原因。当然,这篇文章不被视为答案!

相关内容