在双列文档中插入单列多页表

在双列文档中插入单列多页表

我正在尝试在双列文档中插入单列多页表格。我不希望在表格前后切换列数时刷新页面。本质上,我想要的是能够table*跨越多页的外观。下面是我想要的示例图(表格是否像本例中一样为 [h] 并不重要,重要的是它嵌入在周围的文本中)。

在此处输入图片描述

下面是生成“实际”图像的最小示例:

\documentclass{article}
\usepackage{lipsum} %% To generate example text
\usepackage{array, booktabs,longtable}

\twocolumn
\begin{document}

\lipsum[1-6] %% To generate example text

%%% Begin table %%%
\onecolumn
\begin{longtable}[h]{>{\hangindent=1em}p{13cm}}
\toprule
\lipsum[1]\\ %% To generate example text
\lipsum[1]\\ %% To generate example text
\lipsum[1]\\ %% To generate example text
\lipsum[1]\\ %% To generate example text
\bottomrule
\end{longtable}
\twocolumn
%%% End table %%%

\lipsum[1-6] %% To generate example text

\end{document}

我曾尝试使用multicol包作为替代方案,\onecolumn但这会导致表格中的文本超出页边距,而不是换行。我也尝试使用,xltabular但一定是出了什么问题,因为这会完全删除表格。

更新:解决方案大致是@Sveinung 下面提供的解决方案,但需要牢记几个注意事项(除第一个之外,其他都适用于我使用 documentclass IEEEtran 的具体情况):

  1. 所有只应跨越两列中的一列的表格和图形将无法在多列中使用,除非您使它们不浮动
  2. 将 onecolumn 选项添加到 documentclass 指令。
  3. 将 \begin{multicols}{2} 放在 \maketitle 和摘要之后(将其放在之前会导致列覆盖摘要,并且标题仅跨越一列)。
  4. 将 \end{multicols} 放在文档末尾之前
  5. 将有问题的表格包装在结束/开始多列中。
  6. 使用 IEEEtran.cls 的本地副本,将 \abstract 和 \IEEkeywords 的两列/一列处理切换为您所使用的模式(例如,compsoc、transmag)。

答案1

您尝试实现的目标可能无法使用twocolumn模式。当您从 更改为twocolumnonecolumn,LaTeX 将出现一个新页面,并出现大量空白。

我建议使用包多色而不是twocolumn模式,并将文本放在环境中的表格之前和之后multicols

多色在列内浮动方面存在一些缺点。如果您有大量浮动,这可能不是最佳选择。

示例 1

在此处输入图片描述

\documentclass{article}
\usepackage{lipsum} %% To generate example text
\usepackage{array, booktabs,longtable}
\usepackage[latin]{babel}
\usepackage{multicol}


\begin{document}
\begin{multicols}{2}
\lipsum[1-6] %% To generate example text
\end{multicols}
%%% Begin table %%%

\begin{longtable}{>{\hangindent=1em}p{13cm}}
\toprule
\lipsum[1]\\ %% To generate example text
\lipsum[1]\\ %% To generate example text
\lipsum[1]\\ %% To generate example text
\lipsum[1]\\ %% To generate example text
\lipsum[1]\\ %% To generate example text
\bottomrule
\end{longtable}
%%% End table %%%
\begin{multicols}{2}

\lipsum[1-6] %% To generate example text
\end{multicols}

\end{document}

示例 2 - 切换到单列

如果要将表格设置为与页边距齐平,则必须调整表格的左右边距longtable。由于这取决于文档的边距,因此我将此事留给您自己决定。

在此处输入图片描述

\documentclass[twocolumn]{article}
\usepackage{lipsum} %% To generate example text
\usepackage{array, booktabs,longtable}
\usepackage[latin]{babel}
\usepackage{multicol}


\begin{document}
\onecolumn
\begin{multicols}{2}
\lipsum[1-7] %% To generate example text
\end{multicols}
%%% Begin table %%%

\begin{longtable}[c]{>{\hangindent=1em}p{13cm}}
\toprule
\lipsum[1]\\ %% To generate example text
\lipsum[1]\\ %% To generate example text
\lipsum[1]\\ %% To generate example text
\lipsum[1]\\ %% To generate example text
\lipsum[1]\\ %% To generate example text
\bottomrule
\end{longtable}
%%% End table %%%
\begin{multicols}{2}

\lipsum[1-6] %% To generate example text
\end{multicols}

\end{document}

相关内容