newpage 和 pdfpageattr 的问题

newpage 和 pdfpageattr 的问题

我有一个文档(article类),其中的文本部分被横向表格打断。为了能够正确查看文档,我使用

\newpage
\global\pdfpageattr\expandafter{\the\pdfpageattr/Rotate 90}

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

在查看器中翻页。

旋转效果很好,但是我无法\newpage在文本部分之后使用,然后旋转pdfpageattr而不在中间插入文本。如果我这样做,所有表格都会消失。下面是一个例子:

\newpage
text I dont Want But Need To But There For Tables to show up!
%************************************************************
% FS Tables
%************************************************************

\global\pdfpageattr\expandafter{\the\pdfpageattr/Rotate 90}

%%% Table I: Loan Amount
\begin{sidewaystable}
       \centering
       \caption{Loan Amount - Closest-Saathi to Client km}
       \input{reg_fs_e_sewaloan_amount_iv1}
\end{sidewaystable}

我通常会在这里包含一个最简单的文档,但在这种情况下它看起来相当复杂,因为我正在导入表格等。也许我们可以这样回答这个问题。

答案1

问题是sidewaystable可以浮动。由于您可能希望允许它继续浮动,因此这里概述了如何处理它,利用fancyhdr可以以不同方式处理仅浮动页面的事实。

\documentclass{article}
\usepackage{rotating}
\usepackage{lipsum} % For generating dummy text
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyfoot[C]{\thepage
    \iffloatpage{\global\pdfpageattr{/Rotate 90}}%
    {\global\pdfpageattr{/Rotate 0}}}
\begin{document}
  \lipsum[1-3]

  \begin{sidewaystable}
    \caption{here is the caption}
    here is a fake table
  \end{sidewaystable}

\lipsum[4-30]
\end{document}

笔记:

  1. 这假设\pdfpageattr通常是空的。更改代码以维护 中的常量标记列表将很容易。您在问题中\pdfpageattr重新定义的方式是每次都附加到它,这意味着每次旋转都会变得更长;\pdfpageattr\pdfpageattr
  2. 这将导致所有整页浮动元素都旋转,因此如果您混合了旋转和未旋转的整页浮动元素,则必须做一些更复杂的操作。

答案2

环境sidewaystable类似于table浮动环境。LaTeX 会存储这些浮动对象一段时间,直到找到可以放置它们的位置。\clearpage强制将待处理的浮动对象放在页面上。

相关内容