使用 \numproduct 和 pgf 作为循环变量时出错

使用 \numproduct 和 pgf 作为循环变量时出错

由于某种原因,我无法使用带有循环变量的\numproduct命令。siunitxpgffor

以下代码给出预期的输出:

\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},}}

将会这样做。

  • 虽然它还没有完全实现,但从概念上讲,这更容易理解

相关内容