我有一篇文章的两列格式和一小段文字,我想将其拆分成这两列(硬分隔符)。我不想使用 \vfill,因为我打算在段落后显示一个表格。有什么想法可以做到这一点吗?
\documentclass{article}
\usepackage[margin=2cm]{geometry}
\usepackage{lipsum}
\usepackage{supertabular}
%\makeatletter% Set distance from top of page to first float
%\setlength{\@fptop}{5pt}
%\makeatother
\begin{document}
\twocolumn[]
\lipsum[1-1]
\begin{table*}[ht]
\caption{Caption}
\center
\begin{supertabular}{c c c c c}
\hline \hline
A & B & C & D & E\\
\hline
1 & a & A & D & E \\
2 & b & B & D & E\\
3 & c & C & D & E\\
4 & d & D & D & E\\
5 & e & E & D & E\\
6 & f & F & D & E\\
7 & g & G & D & E\\
8 & g & G & D & E\\
9 & g & G & D & E\\
10 & g & G & D & E\\
11& g & G & D & E\\
12 & g & G & D & E\\
13 & g & G & D & E\\
14 & g & G & D & E\\
\hline
\end{supertabular}
\end{table*}
\end{document}
答案1
据我了解,在文档中twocolumn
,您希望段落分为两列,后面紧接着表格,表格分布在两列上(由于 而“宽” *
)。
如果这是正确的,那么您必须应对以下限制:在双列格式中,“宽”(带星号)浮动(figure
等table
)必须始终出现在页面顶部。它不能放在“此处”或底部。因此说明h
符不执行任何操作。t
(或p
)是唯一有效的选项。
因此,我认为让段落位于表格之前并位于同一页面的唯一方法是将段落包含在环境内table*
。
但是,如果我们这样做,它将默认为单列模式。因此,我们需要做一些特殊的事情来让这个特定的段落进入双列模式。
我没想到这会奏效,但事实证明多色即使文档处于双列模式,环境在环境中multicols
也能运行得相当顺利。table*
\documentclass[twocolumn]{article}
\usepackage[margin=2cm]{geometry}
\usepackage{lipsum}
\usepackage{supertabular,multicol}
\begin{document}
\begin{table*}
\begin{multicols}{2}
\lipsum[1]
\end{multicols}
\caption{Caption}
\centering
\begin{supertabular}{c c c c c}
\hline \hline
A & B & C & D & E\\
\hline
1 & a & A & D & E \\
2 & b & B & D & E\\
3 & c & C & D & E\\
4 & d & D & D & E\\
5 & e & E & D & E\\
6 & f & F & D & E\\
7 & g & G & D & E\\
8 & g & G & D & E\\
9 & g & G & D & E\\
10 & g & G & D & E\\
11& g & G & D & E\\
12 & g & G & D & E\\
13 & g & G & D & E\\
14 & g & G & D & E\\
\hline
\end{supertabular}
\end{table*}
\end{document}
如果你想改善桌子本身的外观,书签manual 是一个有用的指导来源。该包为我们提供了不同粗细的规则周围的一些更好的间距,就像在专业质量的表格排版中使用的一样。
添加该包后,我们可以编写
\begin{supertabular}{c c c c c}
\toprule
A & B & C & D & E\\
\midrule
1 & a & A & D & E \\
2 & b & B & D & E\\
3 & c & C & D & E\\
4 & d & D & D & E\\
5 & e & E & D & E\\
6 & f & F & D & E\\
7 & g & G & D & E\\
8 & g & G & D & E\\
9 & g & G & D & E\\
10 & g & G & D & E\\
11& g & G & D & E\\
12 & g & G & D & E\\
13 & g & G & D & E\\
14 & g & G & D & E\\
\bottomrule
\end{supertabular}
生产
添加一些“lipsum”文本后,页面布局看起来如下所示:
请注意,如果您希望段落和表格位于文档的第一页,这将不起作用,因为它们将自动浮动到下一页,即使它们是源中的第一页。我猜这不是必需的,因为人们通常至少先有一个标题,而您似乎希望段落成为页面上的第一件事。
如果你确实想把这作为第一件事,那么事情就会变得有点复杂,但我认为你可以在可选参数中指定它\twocolumn
,删除table*
环境并\captionof
使用标题代替\caption
。
\documentclass[twocolumn]{article}
\usepackage[margin=2cm]{geometry}
\usepackage{lipsum}
\usepackage{supertabular,multicol,booktabs,caption}
\begin{document}
\twocolumn[%
{%
\begin{multicols}{2}
\lipsum[1]
\end{multicols}
\captionof{table}{Caption}
\begin{center}
\begin{supertabular}{c c c c c}
\toprule
A & B & C & D & E\\
\midrule
1 & a & A & D & E \\
2 & b & B & D & E\\
3 & c & C & D & E\\
4 & d & D & D & E\\
5 & e & E & D & E\\
6 & f & F & D & E\\
7 & g & G & D & E\\
8 & g & G & D & E\\
9 & g & G & D & E\\
10 & g & G & D & E\\
11& g & G & D & E\\
12 & g & G & D & E\\
13 & g & G & D & E\\
14 & g & G & D & E\\
\bottomrule
\end{supertabular}
\end{center}
}%
]
\lipsum[2-20]
\end{document}
请注意,\centering
是一个开关。center
是一个环境。所以通常你想要\begin{center}...\end{center}
或\centering
。在浮点数中,后者通常是首选。之所以\center
有效,是因为环境在内部使用\center
和\endcenter
。但你通常不想在文档级别使用它。