我想生成一个数字序列列表,其中序列的一部分是计数器,另一个序列是根据该计数器生成的。我的 MnotWE
\documentclass{book}
\usepackage{luacode}
\usepackage{tikz}
\usepackage{qrcode}
\newcommand{\Digits}[2]{
\luaexec{
a = #1+#2
b = #1*#2
tex.sprint(\luastring{#1#2 a b})
}
}
\newcommand{\PrintQR}
\begin{document}
\foreach\AA in{1,...,10}{
\foreach\BB in{1,...,2}{
\renewcommand{\PrintQR}{\Digits{\AA}{\BB}}
\PrintQR
%\qrcode{\PrintQR}
}
}
\end{document}
存在两个问题:
- 我得到的是字母本身,而不是
a
和的值。b
- 如果我取消注释该行,
\qrcode
我会收到错误。
答案1
我不知道你想要什么输出,但在这种情况下不要使用 \luaexec。它不可扩展。我也怀疑你是否需要 \luastring,但如果你使用它,不要在它的参数中放置变量。
\documentclass{book}
\usepackage{luacode}
\usepackage{tikz}
\usepackage{qrcode}
\newcommand{\Digits}[2]{%
\directlua{
a = #1 + #2;
b = #1 * #2;
tex.sprint("#1#2="..a..b)
}%
}
\newcommand{\PrintQR}
\begin{document}
\foreach\AA in{1,...,10}{
\foreach\BB in{1,...,2}{
\renewcommand{\PrintQR}{\Digits{\AA}{\BB}}
\PrintQR
\qrcode{\Digits{\AA}{\BB}}
}
}
\end{document}