siunitx 的选项 exponent-to-prefix 存在各种问题

siunitx 的选项 exponent-to-prefix 存在各种问题

我用它来收集一些关于使用的想法,exponent-to-prefix因为我知道开发人员就在这里。我的问题可以是“这三个问题会在 的未来版本中得到修复吗siunitx?”我可以将其作为错误报告提交,但我想并非所有这些问题都可能得到修复,所以答案可能包括原因。我也在寻找最后一个示例的短期解决方法。

\documentclass{article}
\usepackage{siunitx}
\begin{document}
    % infinite loop:
    %\SIlist[exponent-to-prefix=true]{1e3}{m}

    % should maybe print a warning, not an error:
    % \SIlist[scientific-notation=true,exponent-to-prefix=true]{10000; 20000}{\m}

    % this works as expected:
    \SIlist[scientific-notation=engineering,exponent-to-prefix=true]{10000; 20000}{\m}

    % does not work as expected. **Edit** I would love to see "10.000 and 20.000 km" here:
    \SIlist[scientific-notation=engineering,exponent-to-prefix=true,list-units=single]{10000; 20000}{\m}

    % this is closer, but still does not work:
    \SIlist[scientific-notation=fixed,fixed-exponent=3,exponent-to-prefix=true,list-units=single]{10000; 20000}{\m}
\end{document}

我认为第一行导致了不应该这么容易发生的无限循环。

第二行会引发错误,但我认为这应该是一个警告,因为手册上明确指出

当 exponent-to-prefix 选项设置为 true 时,该包将试图将数量中的任何指数转换为单位前缀,并将它们附加到给定的第一个单位。仅当指数具有前缀且保留输入中的有效数字的数量时,此过程才有可能。

所以在我看来,警告就足够了。

最后,我想知道如何(通过补丁或未来版本)exponent-to-prefix才能成功结合list-units=single

答案1

仅针对第一点的部分回应:使用\meter而不是m单位似乎可以修复无限循环(但我无法解释原因)。

\SIlist[exponent-to-prefix=true]{1e3;2e3}{\metre}
% Produces "1 km and 2 km"

相关内容