制作具有灵活列数的表格

制作具有灵活列数的表格

我有一个文件,我希望能够生成两个文档,一个页面较窄,另一个页面较宽。文档中有一张图,其中包含几个较窄的方程式,为了节省较宽的文档中的空间,我想将它们并排放置。因此,理想情况下,输出在较宽的文档中看起来应该如下所示:

a = foo    wx = bar
b = baz    yz = quux

在狭义的文档中是这样的:

a  = foo
b  = baz
wx = bar
yz = quux

特别重要的是:我希望等号在窄文档中对齐,而宽文档的每一列应该粘在一起(例如,在窄文档中按“a、wx、b、yz”的顺序排列不太可取)。我想到可以使用tikz's来实现这一点\foreach;尝试删除尽可能多的不相关细节如下:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\newcommand{\makeatable}[1]{\begin{tabular}{lr}#1\end{tabular}}
\newcommand\sidebyside[1]{\foreach \l/\r in {#1}{\l & \r\\}}
\newcommand\toptobottom[1]{%
    \foreach \t/\b in {#1}{\t\\}
    \foreach \t/\b in {#1}{\b\\}
}

\newcommand\contents{{foo/bar},{baz/quux}}
\makeatable{\sidebyside \contents}
\makeatable{\toptobottom\contents}
\end{document}

不幸的是,发射&\\似乎\foreach会导致问题(有几十个错误;如果有帮助的话我很乐意附上一份记录)。

有没有办法让它工作\foreach?或者,我还可以尝试什么其他方法?

答案1

在此处输入图片描述

\documentclass{article}
\usepackage{multicol}
\usepackage{amsmath}
\allowdisplaybreaks
\begin{document}

one
\begin{align}
a  &= foo\\
b  &= baz\\
wx &= bar\\
yz &= quux
\end{align}


two
\begin{multicols}{2}
\vspace*{-3\baselineskip}
\begin{align}
a  &= foo\\*
b  &= baz\\
wx &= bar\\
yz &= quux
\end{align}
\end{multicols}

\end{document}

相关内容