由于某种原因,我无法使用带有循环变量的\numproduct
命令。siunitx
pgffor
以下代码给出预期的输出:
\documentclass[12pt]{article}
\usepackage{pgffor}
\usepackage{siunitx}
\begin{document}
\numproduct{1x2}, \numproduct{3x5}
\end{document}
但当放入循环中时:
\documentclass[12pt]{article}
\usepackage{pgffor}
\usepackage{siunitx}
\begin{document}
\foreach \i in {1x2, 3x5} {\numproduct{\i},}
\end{document}
它因错误而退出
Package siunitx Error: Invalid number '1x2'. \foreach \i in {1x2, 3x5} {\numproduct{\i},}
Package siunitx Error: Invalid number '3x5'. \foreach \i in {1x2, 3x5} {\numproduct{\i},}
我错过了什么?
答案1
该\numproduct
命令不会在搜索标记时扩展输入x
。因此,这里发生的事情是\numproduct{\i}
传递\i
给底层(*) \num
,而这不像x
标记那样做扩展输入。因此你需要确保\i
预先扩展
\foreach \i in {1x2, 3x5} {\expanded{\numproduct{\i},}}
将会这样做。
- 虽然它还没有完全实现,但从概念上讲,这更容易理解