答案1
我\mynum
为您定义了检查下一个标记是否为 catcode“字母”的方法。
\documentclass{article}
\usepackage{siunitx}
\ExplSyntaxOn
\NewDocumentCommand \mynum { o m }
{
\num [ #1 ] { #2 }
\peek_catcode_ignore_spaces:NT \c_catcode_letter_token { \, }
}
\ExplSyntaxOff
\begin{document}
Normal behaviour (very recommended)
\begin{equation}
\num{0,1234}\,a
\end{equation}
Desired behaviour
\begin{equation}
\mynum{0,1234}a
\end{equation}
\end{document}
您还可以覆盖\num
提供的命令siunitx
,即不建议\num
。因此,我复制了from的定义siunitx.sty
并附加了相关部分。
\documentclass{article}
\usepackage{siunitx}
\ExplSyntaxOn
\RenewDocumentCommand \num { o m }
{
% begin from siunitx.sty
\leavevmode
\group_begin:
\IfNoValueF {#1}
{ \keys_set:nn { siunitx } {#1} }
\__siunitx_number_output:n {#2}
\group_end:
% end from siunitx.sty
\peek_catcode_ignore_spaces:NT \c_catcode_letter_token { \, }
}
\ExplSyntaxOff
\begin{document}
$\num{0,1234}a$
\end{document}