![使用 pgffor 的 foreach 命令生成表](https://linux22.com/image/291146/%E4%BD%BF%E7%94%A8%20pgffor%20%E7%9A%84%20foreach%20%E5%91%BD%E4%BB%A4%E7%94%9F%E6%88%90%E8%A1%A8.png)
我想从列表中生成表格。但是由于某种原因,它无法工作。我搜索了:
PGFplots foreach 相当于 TikZ 的多个变量,用斜线分隔
并尝试了不同的解决方案,但由于某种原因,它们都不起作用:(
\documentclass{minimal}
\usepackage{tikz}
\begin{document}
\begin{tabular}{ll}
\foreach \x/\y in {-2/a,-1/b,1/c,2/d} {%
\edef\temp{\noexpand \x & \y \\ }%
\temp
}%
\end{tabular}
\end{document}
编辑...
也尝试过构建表时,如何在 foreach 或条件(或其他组/环境)中使用与号 (&)?
\documentclass{minimal}
\usepackage{tikz,etoolbox}
\makeatletter
\newtoks\@tabtoks
\newcommand\addtabtoks[1]{\global\@tabtoks\expandafter{\the\@tabtoks#1}}
\newcommand\eaddtabtoks[1]{\edef\mytmp{#1}\expandafter\addtabtoks\expandafter{\mytmp}}
\newcommand*\resettabtoks{\global\@tabtoks{}}
\newcommand*\printtabtoks{\the\@tabtoks}
\makeatother
\begin{document}
\resettabtoks
\foreach \x/\y in {-2/a,-1/b,1/c,2/d}{%
\eaddtabtoks{\x & \y \\ }%
}%
\begin{tabular}{ll}
\printtabtoks
\end{tabular}
\end{document}
似乎不起作用。
(/usr/local/texlive/2013/texmf-dist/tex/generic/oberdiek/etexcmds.sty))) (/usr/local/texlive/2013/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg)) ! 未定义控制序列。\ ->\let \reserved@e \relax \let \reserved@f \relax \@ifstar {\let \reserv... l.17 } % ?
答案1
如果您不介意为该特定任务更改循环和一些语法,那么还有其他选择,如\xintForpair
,自然不会拥有所有的良好功能\foreach
,但拥有其他一些功能。
\documentclass{article}\usepackage{tikz}% (for other things)
\usepackage{xinttools}
\begin{document}
\begin{tabular}{ll}
\xintForpair #1#2 in {(-2,a),(-1,b),(1,c),(2,d)}\do
{#1\\}
\end{tabular}
\end{document}