我有这个代码
,tex
\newcommand{\matmul}[3]{
\def#1{}
\foreach \i in {#3}{
\def\temp{}
\foreach \j in {#2}{
\pgfmathparse{\i*\j}
\xdef\temp{\temp,\pgfmathresult}
}
\xdef#1{#1,{\temp}}
}
}
\matmul{\yeet}{1,3}{2,4}
$\yeet$
这个输出
,,2,0,6.0,,4.0,12.0
我似乎想不出一个解决方案,让我在列表开头不出现双逗号和逗号
这是我想要的输出
2.0,6.0,4.0,12.0
答案1
标准的东西:引入计数器,并且仅当计数器大于 1 时才添加逗号。
\documentclass{article}
\usepackage{pgffor}
\newcommand{\matmul}[3]{%
\foreach \i [count=\ci] in {#3}{%
\foreach \j [count=\cj] in {#2}{%
\pgfmathparse{\i*\j}%
\ifnum\cj=1%
\xdef\temp{\pgfmathresult}%
\else
\xdef\temp{\temp,\pgfmathresult}%
\fi
}%
\ifnum\ci=1%
\xdef#1{{\temp}}%
\else
\xdef#1{#1,{\temp}}%
\fi
}%
}
\begin{document}
test:\matmul{\yeet}{1,3}{2,4}$\yeet$ \typeout{\yeet}
\end{document}
结果:
{2.0,6.0},{4.0,12.0}
如果您能考虑在将来发布类似上述的完整示例,那就太好了。