在 siunitx 中重新声明 \bit

在 siunitx 中重新声明 \bit

可以重新声明/重新定义现有的 siunitx 单元一般的\bit。但是,对于二进制单位(和) ,这似乎失败了,\byte如下面的 MWE 所示。

只有在序言之后通过声明完成声明才有效\AtBeginDocument

\documentclass{article}

\usepackage[
  binary-units,
]{siunitx}

% \AtBeginDocument{
\DeclareSIUnit\bit{b}
% }

\begin{document}

\SI{8}{\bit}

\end{document}

为什么会出现这种情况?这是一个错误吗?为什么首先\bit定义为,而只是?这会产生相当难以阅读的输出,带有 IEC 前缀,如bit\byteB吉比特

我正在使用 TexLive 2016 的 2.7a 版本(2017-01-01)。

答案1

加载时间当然是故意的。binary-units选项代码(为 true)是:

binary-units / true .code:n = { \AtBeginDocument { \__siunitx_load_binary: } },

正如代码所示,这基本上是可行的\AtBeginDocument{\input{siunitx-binary.cfg}}(只需做一些工作就可以将文件作为包加载)。

目前尚不清楚为什么会加载这个文件\AtBeginDocument,而不是在加载时加载siunitx(至少我在源代码中没有找到任何提示)。但有这个:

\changes{v2.5m}{2012/11/27}{Modified loading of \opt{binary-units}}

但它没有说什么改变了......
只有约瑟夫知道:-)


至于代表性\bitSI 手册,用作 的参考siunitx,没有提到数字存储单元,因此可能归结为您所说的内容:

其中 [ bit] 是官方 IEC/ISO 单位象征b当时/现在由 IEEE 推广)

所以这基本上是两者之间的选择问题。虽然我认为书面文字中8 bit比 更清晰8 b,但前者与前缀/其他单位结合时会变得很奇怪,所以这是一个艰难的选择......

相关内容