使用siunitx
包时,exponent-to-prefix
选项似乎仅在存在具有给定数字的单位(\SI
、\SIrange
和\SIlist
)时才有效。我希望该选项即使在无单位值(由\num
、\numrange
、给出\numlist
)的情况下也能工作。在下图中,所有无单位数字后面的数字指数都应替换为其标准符号
\documentclass{book}
\usepackage{siunitx}
\sisetup{scientific-notation=engineering,exponent-to-prefix=false,zero-decimal-to-integer=true}
\begin{document}
\num{10e6}
\numrange{3e3}{70e5}
\numlist{3e3; 70e5; 150e9}
\SI{10e6}{\meter}
\SIrange{3e3}{70e5}{\meter}
\SIlist{3e3; 70e5; 150e9}{\meter}
\end{document}
答案1
最接近你想要的是使用“不做任何事情”的单位
\documentclass{book}
\usepackage{siunitx}
\sisetup{scientific-notation = engineering, exponent-to-prefix = true, zero-decimal-to-integer = true}
\DeclareSIUnit{\noop}{\kern 0pt}
\begin{document}
\SI{10e6}{\noop}
\SIrange{3e3}{70e5}{\noop}
\SIlist{3e3; 70e5; 150e9}{\noop}
\end{document}
(前缀从根本上与单位相关。)