旋转单页浮动内容以方便查看 PDF

旋转单页浮动内容以方便查看 PDF

我有几个长表格需要旋转 90 度。这些表格几乎需要占据自己的页面。旋转表格本身不是问题,但我还想在相应的页面中设置一个属性,使 pdf 查看器以横向模式查看页面。

我读过了这个问题这个问题并且有大量的信息可以帮助我使用landscape来自的环境来做我想做的事情pdflscape来做我想做的事情。但有一个问题除外:用这些方法生成的表格实际上并不是浮动。landscape环境本身并不是浮动,所以我的表格占据了整个页面,并且它们之前的页面充满了空白。

有没有办法将包含一些浮动元素的页面指定为横向,同时让浮动元素继续浮动?我可以创建一个横向浮动环境吗?我不介意这样的事情是否必须占用整个页面。如果必须的话,我会求助于使用包sidewaystable中的功能rotating,并在需要旋转的页面上对 pdf 进行后处理,但如果每次需要重新编译最终草稿时不必这样做就好了。

答案1

由于旋转的表格无论如何都会占据整整一页(定位不像部分页面浮动那样复杂),因此您可以使用它afterpage来避免破坏文本流。

\documentclass{article}

\usepackage{pdflscape}
\usepackage{afterpage}
\usepackage{lipsum} % for filler text only

\begin{document}
\pagestyle{myheadings} % to show header behavior
\lipsum
\afterpage{%
  \begin{landscape}
    \begin{table}[p]
      \caption{Rotated table caption.}
      \lipsum[1]
    \end{table}
  \end{landscape}
}
\lipsum
\end{document}

答案2

我最终使用了以下构造:

主文件有:

\input{tex file with the table}

并且包含表格的 tex 文件包含:

\afterpage{\global\pdfpageattr\expandafter{\the\pdfpageattr/Rotate 90}}
\begin{sidewaystable}
...
\end{sidewaystable}
\afterpage{\global\pdfpageattr\expandafter{\the\pdfpageattr/Rotate 0}}

并且它与我问这个问题时想到的原始表格完美地兼容。

不过,有一件有趣的事情。在文档的后面出现了第二个整页横向表格,我尝试了完全相同的方法。我在 Mac 上使用 TeXShop。在 TeXShop pdf 查看器和预览中,第二个表格后面的几页(应该恢复为纵向视图)保持横向。然后纵向视图恢复了几页。但最后几页又回到了横向视图(不应该这样)。这是一种相当奇怪的行为,我确认它也发生在其他人的 iPad 上查看 pdf(可能又是预览)。但也许更奇怪的是,如果我们使用 Adob​​e 查看器(在 Mac 或 PC 上)或使用 PC 上的 Sumatra 打开 pdf,只有合适的以横向模式查看的页面。

我最终通过拉线解决了这个问题

    \afterpage{\global\pdfpageattr\expandafter{\the\pdfpageattr/Rotate 0}}

在 \input 调用后,从输入的 tex 文件中取出并直接将其放入主文件中。在此之后,所有这些 pdf 查看器都按预期处理文档。奇怪的是,不同的 pdf 查看器的行为不同。我愿意将此归咎于那些 pdf 查看器的问题,而不是 tex 的问题。但我认为值得在这里注意。

相关内容