我想在下面的新命令中写入此命令
\numrange[⟨options⟩]{⟨numbers⟩}{⟨number2⟩}
我想这样写
\nums{number - number}
或类似的东西
例如,
\numrange[⟨options⟩]{20}{30}
新命令将类似于
\nums{20-30}
输出:
20-30
答案1
ltcmd
您可以使用/内置的参数处理器xparse
:
\documentclass{article}
\NewDocumentCommand \nums { O{} >{\SplitArgument{1}{-}}m }
{\numrange[{#1}]#2}
\newcommand\numrange[3][]{from #2 to #3}
\begin{document}
\nums{3-10}
\end{document}
如果你确实在使用,siunitx
你可以考虑使用它:
\documentclass{article}
\usepackage{siunitx}
\ExplSyntaxOn
\NewDocumentCommand \nums { O{} >{\SplitArgument{1}{-}}m }
{
\group_begin:
\keys_set:nn { siunitx } {#1}
\siunitx_number_range:nn #2
\group_end:
}
\ExplSyntaxOff
\begin{document}
\nums{3-10}
\end{document}
答案2
恕我直言,\def
primitive 是解决您的问题的正确工具。
\def\nums #1{\numsA #1;}
\def\numsA #1-#2;{from #1 to #2}
test: \nums{3-10}