我正在尝试找出是否有办法以与处理数字前的 < 和 > 运算符相同的方式原siunitx
生处理 ~ 符号 ( \sim
),因为我希望能够使用 ~ 作为近似的简写。例如:
\documentclass[12pt,a4paper]{report}
\usepackage{siunitx}
\begin{document}
% Values output the same, with spacing after the < and before the % symbol
\SI{< 10}{\percent} \\
\SI{<10}{\percent} \\
% When writing in math mode a space in placed after the ~ symbol, but not before the % symbol
$\sim10\%$ \\
\end{document}
理想情况下,我希望能够编写类似\SI{~ 10}{\percent}
或 的内容\SI{\tilde}{10}{\percent}
,其中{\tilde}
使用命令定义自定义值DeclareSIUnit\tilde{~}
。但我似乎无法在文档中找到类似前缀符号的内容。有没有其他人遇到过这个问题的解决方案?
答案1
使用\SI{\sim 10}{\percent}
应该可以;也许你想要\approx
。
\documentclass[12pt,a4paper]{report}
\usepackage{siunitx}
\begin{document}
\SI{< 10}{\percent}
\SI{<10}{\percent}
\SI{\sim 10}{\percent}
\SI{\approx 10}{\percent}
\end{document}
答案2
我也没有看到新“前缀”的接口,因此以下示例修补了 的内部结构siunitx
。此外,我在使用~
前缀时遇到了麻烦,可能是因为重新扫描,其中 的 catcode~
设置为 9,忽略了字符。因此,该示例改用\~
。<>
用作 的符号\approx
:
\documentclass[12pt,a4paper]{report}
\usepackage{siunitx}
\ExplSyntaxOn
\exp_args:NNo \cs_set:Nn \__siunitx_number_in_sign_replace:N
{
\__siunitx_number_in_sign_replace:N { #1 }
\tl_replace_all:Nnn #1 { \~ } { \sim }
\tl_replace_all:Nnn #1 { <> } { \approx }
}
\tl_put_right:Nn \l__siunitx_input_protect_tl { \~ }
\tl_put_right:Nn \l__siunitx_input_comparator_tl { \~ }
\ExplSyntaxOff
\begin{document}
\noindent
\SI{<10}{\percent}\\
\SI{\~10}{\percent}\\
\SI{<>10}{\percent}
\end{document}