将 foreach 数组的每一项打印在其自己的行上

将 foreach 数组的每一项打印在其自己的行上

我对 package 还不太熟悉pgffor。它只能用于绘图,还是可以用来遍历文本列表?我试图使用它垂直输出一个简单的项目列表,但我无法在每个项目之间强制换行。

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage{etoolbox}
\usepackage{pgffor}

\newcommand{\degrees}[1]{\def\degs{#1}}

\degrees{{{B.S. University, 2000}, {M.S. University, 2002}}}

\begin{document}

\begin{center}
\ifdef{\degs}{%
    \foreach \x in \degs{%
        \x \par%
    }
}{}
\end{center}

\end{document}

输出项目后,我尝试了\\\par\newline\linebreak但都不起作用。显然我不了解 的内部结构\foreach

答案1

问题是\foreach只找到一个项目,因为 中包含的数组周围的括号太多\degs。删除级别会产生

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage{etoolbox}
\usepackage{pgffor}

\newcommand{\degrees}[1]{\def\degs{#1}}

\degrees{{B.S. University, 2000}, {M.S. University, 2002}}

\begin{document}



\begin{center}
\ifdef{\degs}{%
    \foreach \x in \degs{%
        \x \par%
    }
}{}
\end{center}

\end{document}

在此处输入图片描述

因此,回答你的问题:它不仅用于绘图,还可以用于其他用途。

如何调试这个问题?例如,像这样:

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage{etoolbox}
\usepackage{pgffor}

\newcommand{\degrees}[1]{\def\degs{#1}}

\degrees{{B.S. University, 2000}, {M.S. University, 2002}}

\begin{document}

\subsubsection*{One brace less}

\begin{center}
\ifdef{\degs}{%
    \foreach \x in \degs{%
        \textbackslash x=\x \par%
    }
}{}
\end{center}


\subsubsection*{Original}

\degrees{{{B.S. University, 2000}, {M.S. University, 2002}}}

\begin{center}
\ifdef{\degs}{%
    \foreach \x in \degs{%
        \textbackslash x=\x \par%
    }
}{}
\end{center}
\end{document}

在此处输入图片描述

相关内容