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