经过一番努力,我终于制作出了一个横版表格,该表格横跨三页。我使用了tabularx
和landscape
包。现在我的问题是,这个东西不会像平常一样浮动,而是会将文本打断,导致过早分页。我尝试使用sidewaystable
和,hvfloat
但无法使其工作(它们与不兼容吗tabularx
?任何帮助表示感谢。
答案1
如果我正确理解了问题的描述,你(i)有一些形式的材料
% lots of material
\begin{landscape}
\begin{longtable}{...}
% content of longtable
\end{longtable}
\end{landscape}
% lots more material
(二)不希望 (pdf)LaTeX 创建分页符立即地遇到该\begin{landscape}
指令时。相反,您希望 LaTeX 推迟切换到横向模式,直到当前页面通过排版一些“更多材料”组填满。
如果这个解释是正确的,您可能需要查看指令\afterpage
。您需要做的就是加载afterpage
包(在序言中)并将整个landscape
组(在本例中包含一个longtable
环境)装入\afterpage{...}
指令中。正如指令的名称所暗示的那样,LaTeX 会将其参数中材料的排版推迟到当前页面通过其他方式结束(最有可能是因为正在排版一些其他材料,导致在某个时候出现自然分页符)。
请注意很重要记得使用右花括号}
来标记构成指令参数的材料的结尾\afterpage
。(如果您忘记了}
,LaTeX 将继续运行,直到遇到\end{document}
并发出其神秘的错误消息之一。)在最近发布的相关问题的回答中,David Carlisle 建议执行以下操作来简化确保不要忘记右花括号的过程:将整个横向长表材料放在单独的文件中,例如landlong.tex
,然后发出指令
\afterpage{\input landlong}
在主文件中。这样一来,几乎肯定不会忘记那个讨厌的右花括号,对吧?