我正在尝试使用 siunitx 包突出显示包含数量的文本。就像突出显示 \cite 等其他命令一样,它们必须用额外的括号括起来。但是,当使用二进制单位(\bit、\byte、\kibi\byte)时会出现问题,这会产生未定义控制序列错误。其他单位(如微秒或兆赫)突出显示,没有任何问题。
我离开了 MWE。感谢任何能给我的帮助。
\documentclass{article}
\usepackage{color}
\usepackage{soul}
\usepackage{siunitx}
\sisetup{
binary-units = true,
}
\begin{document}
% These are OK
\hl{{\SI{32}{\MHz}}}
\hl{{\SI{32}{\us}}}
\SI{32}{\bit}
\SI{32}{\byte}
\SI{32}{\kibi\byte}
% These give errors
\hl{{\SI{32}{\bit}}}
\hl{{\SI{32}{\byte}}}
\hl{{\SI{32}{\kibi\byte}}}
\end{document}
答案1
使用\protect
似乎可以解决问题。
\documentclass{article}
\usepackage{color}
\usepackage{soul}
\usepackage{siunitx}
\sisetup{
binary-units = true,
}
\begin{document}
% These are OK
\hl{{\SI{32}{\MHz}}}
\hl{{\SI{32}{\us}}}
\SI{32}{\bit}
\SI{32}{\byte}
\SI{32}{\kibi\byte}
\hl{{\SI{32}{\protect\bit}}}
\hl{{\SI{32}{\protect\byte}}}
\hl{{\SI{32}{\protect\kibi\protect\byte}}}
\end{document}