在章节开头旋转多页表

在章节开头旋转多页表

我正在写一篇文章,其中必须放一张又大又宽的表格。这张表格直接位于新章节的开头。由于它非常宽,我想旋转这张表格(或在横向环境中使用它)。由于表格的大小,我希望它能继续显示在多个页面上。这是我目前的做法:

\documentclass[twocolumn]{article}
\usepackage{pdflscape}
\usepackage{longtable}
\usepackage{lipsum}

\begin{document}
\onecolumn
\section{Title}

\begin{landscape}
\centering
\begin{longtable}{|p{0.5cm}|p{5.5cm}|p{5.5cm}|p{5.5cm}|}
\caption{Long and wide table} \\
\hline
 & \rule{0pt}{3ex}\textbf{Text} & \textbf{More text} & \textbf{Example} \\ \endhead
\hline
\rule{0pt}{3ex}1.1 & \lipsum[13] & \lipsum[13]& \lipsum[13]\\
\hline
\rule{0pt}{3ex}1.2 & \lipsum[13] & \lipsum[13]& \lipsum[13]\\
\hline
\rule{0pt}{3ex}1.3 & \lipsum[13] & \lipsum[13]& \lipsum[13]\\
\hline
\rule{0pt}{3ex}1.4 & \lipsum[13] & \lipsum[13]& \lipsum[13]\\
\hline
\rule{0pt}{3ex}1.5 & \lipsum[13] & \lipsum[13]& \lipsum[13]\\
\hline
\rule{0pt}{3ex}1.6 & \lipsum[13] & \lipsum[13]& \lipsum[13]\\
\hline
\rule{0pt}{3ex}1.7 & \lipsum[13] & \lipsum[13]& \lipsum[13]\\
\hline
\rule{0pt}{3ex}1.8 & \lipsum[13] & \lipsum[13]& \lipsum[13]\\
\hline 

\end{longtable}
\end{landscape}
\twocolumn
\end{document}

这工作正常,只是这个表格不是从我的部分的开始处开始,而是在下一页,只在空白页上留下新部分的名称。

我尝试使用 hvfloat 包来解决这个问题,如下所示这里。为了实现这个功能,我改用了表格而不是长表格,但这带来了一个问题,即表格放在一个页面上(虽然它应该放在多个页面上,因此表格的很大一部分不可见,因为它在页面之外)。我花了很多时间来实现这个功能,但在互联网上我找不到任何帮助,所以你们中有人能帮帮我吗?

答案1

您可以这样做,尽管我不确定我会这样做,但我会使用注释掉的版本来旋转节头和表(我认为)。我还删除了它,\centering因为它对 longtable 没有影响。

\documentclass[twocolumn]{article}
\usepackage{pdflscape}
\usepackage{longtable}
\usepackage{lipsum}

\begin{document}
\onecolumn

\begin{landscape}
%\section{Title}
\begin{picture}(0,0)\put(550,0){\rotatebox{-90}{\parbox{\textwidth}{\section{title}}}}\end{picture}
\begin{longtable}{|p{0.5cm}|p{5.5cm}|p{5.5cm}|p{5.5cm}|}
\caption{Long and wide table} \\
\hline
 & \rule{0pt}{3ex}\textbf{Text} & \textbf{More text} & \textbf{Example} \\ \endhead
\hline
\rule{0pt}{3ex}1.1 & \lipsum[13] & \lipsum[13]& \lipsum[13]\\
\hline
\rule{0pt}{3ex}1.2 & \lipsum[13] & \lipsum[13]& \lipsum[13]\\
\hline
\rule{0pt}{3ex}1.3 & \lipsum[13] & \lipsum[13]& \lipsum[13]\\
\hline
\rule{0pt}{3ex}1.4 & \lipsum[13] & \lipsum[13]& \lipsum[13]\\
\hline
\rule{0pt}{3ex}1.5 & \lipsum[13] & \lipsum[13]& \lipsum[13]\\
\hline
\rule{0pt}{3ex}1.6 & \lipsum[13] & \lipsum[13]& \lipsum[13]\\
\hline
\rule{0pt}{3ex}1.7 & \lipsum[13] & \lipsum[13]& \lipsum[13]\\
\hline
\rule{0pt}{3ex}1.8 & \lipsum[13] & \lipsum[13]& \lipsum[13]\\
\hline 

\end{longtable}
\end{landscape}
\twocolumn
\end{document}

答案2

假设您的第 3 列和第 4 列不需要包含大量文本,那么如果您放弃该\begin{landscape}命令,则可以使用以下代码让表格直接出现在部分标题下方。在此代码中,我已将表格宽度设置为,\columnwidth并使用命令为列指定了比例值|X[0.1,l]|X[1,l]|X[1,l]|X[1,l]|。您可以尝试将各个列的值设置为 0.1 和 1,以查看哪个最适合您。

我在 MWE 中保留了横向代码,但已被注释掉。如果取消注释(删除%),表格将移至下一页并横向显示,而且由于列宽是按比例而不是绝对的,因此您无需再次调整各个列的宽度。

我知道这不是你想要的,但希望它能有所帮助。

\documentclass[a4paper]{report}
\usepackage{lscape}
\usepackage{longtable,tabu}
\usepackage{lipsum}

\begin{document}
\section{Title}
%\begin{landscape}
\centering
\begin{longtabu} to \columnwidth{
|X[0.1,l]
|X[1,l]
|X[1,l]
|X[1,l]|
}
\caption{Long and wide table} \\
\hline
 & \rule{0pt}{3ex}\textbf{Text} & \textbf{More text} & \textbf{Example} \\ \endhead
\hline
\rule{0pt}{3ex}1.1 & \lipsum[13] & b & c \\
\hline
\rule{0pt}{3ex}1.2 & \lipsum[13] & b & c \\
\hline
\rule{0pt}{3ex}1.3 & \lipsum[13] & b & c \\
\hline
\rule{0pt}{3ex}1.4 & \lipsum[13] & b & c \\
\hline
\rule{0pt}{3ex}1.5 & \lipsum[13] & b & c \\
\hline
\rule{0pt}{3ex}1.6 & \lipsum[13] & b & c \\
\hline
\rule{0pt}{3ex}1.7 & \lipsum[13] & b & c \\
\hline
\rule{0pt}{3ex}1.8 & \lipsum[13] & b & c \\
\hline 
\end{longtabu}
%\end{landscape}
\end{document}

相关内容