我想说的是每千瓦时电费 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}
因为我仍然对这种方法的工作原理感兴趣,所以我保留这篇文章,直到有人能解释原因。当然,这篇文章不被视为答案!