从 siunitx 前缀中提取乘数

从 siunitx 前缀中提取乘数

有没有办法提取每个siunitx前缀代表的乘法因子。基本上,我可以自动ExplainPrefix生成正确的输出。当前输出x用作指数:

在此处输入图片描述

梅威瑟:

\documentclass{article}

\usepackage{siunitx}
\usepackage{expl3}

%% http://tex.stackexchange.com/questions/100542/how-to-extract-the-name-of-a-macro
\ExplSyntaxOn
\newcommand{\CsToStr}[1]{\cs_to_str:N #1}
\ExplSyntaxOff

\newcommand{\ExplainPrefix}[1]{%
\par
The prefix \CsToStr{#1} (symbol: \si{#1}) representes multiplication by $10^x$.
}%

\DeclareSIPrefix\wacky{X}{41}

\begin{document}

\ExplainPrefix{\kilo}
\ExplainPrefix{\micro}
\ExplainPrefix{\wacky}

\end{document}

答案1

您正在寻找

\si[prefixes-as-symbols = false]{#1}

它会将前缀符号转换为值(这里允许使用单个独立前缀:我计划在图中引入某种“无操作”单元,以使逻辑更容易一些)。

此转换的数据存储在内部属性列表中\l__siunitx_prefix_forward_prop,当然将来可能会发生变化,但如果您想做更复杂的事情,它就在那里。

相关内容