我有一些两列表格数据,如下所示:
Foo 12
Bar 34
Baz 56
Quux 78
Quuz 910
Corge 1112
Grault 1314
我想将其布局为 2x2 = 4 列表格,即每个表行包含两条记录,每条记录都有一个名称单元格和一个数字单元格。这本身不是问题:
\begin{tabular}{llll}
Foo & 12 &
Bar & 34 \\
Baz & 56 &
Quux & 78 \\
Quuz & 910 &
Corge & 1112 \\
Grault & 1314 &
{} & {} \\
\end{tabular}
...我可以通过一些正则表达式工作来做到这一点(尽管你确实需要对多行正则表达式的支持,但并非所有编辑器都具备)。
问题是,这将导致“行主”进程,即:
1 2
3 4
5 6
7
第一行将有记录 1 和 2,第二行将有记录 3 和 4 等等。我想要的是按列主顺序排列:
1 5
2 6
3 7
4
在 LaTeX 中布局时,但我不想要重新排列.tex
文件中的行,并且必须交错记录集的第一半和第二半。
这能做到吗?
注意:我确实希望这是在适当的tabular
环境中,即我想要不同的对齐方式,在列之间添加生成的内容,规则等 - 我只是为这个例子简化了一些东西。
答案1
\documentclass{article}
\usepackage{multicol}
\begin{document}
\begin{multicols}{2}
\obeylines\obeyspaces\raggedcolumns
Foo 12
Bar 34
Baz 56
Quux 78
Quuz 910
Corge 1112
Grault 1314
\end{multicols}
\end{document}
而 LaTeX 制表环境(在多列内)是更好的选择,利用它您可以用最少的额外标记实现类似表格的对齐。
\documentclass{article}
\usepackage{multicol}
\begin{document}
\noindent X\dotfill X\par
\begin{multicols}{2}
\begin{tabbing}
XXXXXXXX\=\kill
Foo \>12 \\
Bar \>34 \\
Baz \>56 \\
Quux \>78 \\
Quuz \>910 \\
Corge \>1112 \\
Grault \>1314
\end{tabbing}
\end{multicols}
\noindent X\dotfill X\par
\end{document}
有关制表符的更多信息,请查阅当地公共图书馆的 Lamport 的书,详情请参阅 C.10.1。最大的优点是与表格相反,它允许分页,因此可以在多列中使用。