如何在 LaTeX 中获取旋转的横向页面而不刷新其他浮点数?

如何在 LaTeX 中获取旋转的横向页面而不刷新其他浮点数?

我希望使用 pdflscape 包让横向表格在 pdf 中旋转显示。但是,我仍然希望文本和图形在表格周围浮动。

正如您在纵向视图中看到的(关闭了 afterpage 和横向环境)。“图”正确地放置在第 3 页的顶部。当打开 afterpage 和横向环境时,“表格”是正确的,但“图”放置在表格之前的一个单独页面上。

是否可以通过在第 2 页上旋转页面的“表格”来将“图形”放在第 3 页的顶部?

此外,如果第一部分文本较小,我希望将“图形”浮点数放置在第 1 页的底部。

肖像 肖像画中的“人物”位置正确。 景观 具有旋转“表格”的景观,但“图形”的位置错误地放在了 p2 上,而不是 p3 的顶部。

梅威瑟:

\documentclass[a4paper,twoside,12pt]{report}

\usepackage{pdflscape}
\usepackage{afterpage}
\usepackage{lipsum} %for dummy text

\begin{document}

\lipsum[1-4]

\begin{figure}[htb]
Testfigure \\
Testfigure \\
Testfigure \\
Testfigure \\
\caption{Figure caption}
\end{figure}

%\afterpage{         %turned off to demonstrate portrait pages
%\begin{landscape}   %turned off to demonstrate portrait pages
\begin{table}
\caption{Table Caption} 
\begin{tabular}{|p{5cm}|p{9cm}|c}
4&5&6 \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F
\end{tabular}
\end{table}
%\end{landscape}    %turned off to demonstrate portrait pages
%}                  %turned off to demonstrate portrait pages

\lipsum[5-10]

\end{document}

答案1

景观环境的开始和结束处有一个 的原因\clearpage是浮动元素的尺寸也会发生变化。你可能会发现浮动元素太高或太宽而无法打印。

但是,可以保存队列中的所有浮点,然后在几何体恢复正常后恢复它们。第一个浮点\clearpage将无事可做,第二个浮点\clearpage将再次清空队列,因此恢复旧队列时不会丢失任何内容。

\documentclass[a4paper,twoside,12pt]{report}

\usepackage{pdflscape}
\usepackage{afterpage}
\usepackage{lipsum} %for dummy text

\makeatletter
\newcommand{\savefloats}{% this is probably overkill, but better safe than sorry
  \global\let\old@toplist=\@toplist
  \global\let\old@midlist=\@midlist
  \global\let\old@botlist=\@botlist
  \global\let\old@deferlist=\@deferlist
  \global\let\old@dbltoplist=\@dbldtoplist
  \global\let\old@dbldeferlist=\@dbldeferlist
  \global\let\@toplist=\@empty
  \global\let\@midlist=\@empty
  \global\let\@botlist=\@empty
  \global\let\@deferlist=\@empty
  \global\let\@dbltoplist=\@empty
  \global\let\@dbldeferlist=\@empty
  \xdef\old@colroom{\the\@colroom}% store as macros
  \xdef\old@toproom{\the\@toproom}% store as macros
  \xdef\old@botroom{\the\@botroom}% store as macros
  \xdef\old@topnum{\the\@topnum}% store as macros
  \xdef\old@botnum{\the\@botnum}% store as macros
}
\newcommand{\restorefloats}{%
  \global\let\@toplist=\old@toplist
  \global\let\@midlist=\old@midlist
  \global\let\@botlist=\old@botlist
  \global\let\@deferlist=\old@deferlist
  \global\let\@dbltoplist=\old@dbltoplist
  \global\let\@dbldeferlist=\old@dbldeferlilst
  \global\@colroom=\old@colroom\relax
  \global\@toproom=\old@toproom\relax
  \global\@botroom=\old@botroom\relax
  \global\@topnum=\old@topnum\relax
  \global\@botnum=\old@botnum\relax
  \global\vsize=\@colroom
}
\makeatother

\begin{document}

\lipsum[1-4]

\begin{figure}[htb]
Testfigure \\
Testfigure \\
Testfigure \\
Testfigure \\
\caption{Figure caption}
\end{figure}

\afterpage{         %turned off to demonstrate portrait pages
\savefloats
\begin{landscape}   %turned off to demonstrate portrait pages
\begin{table}[p]
\caption{Table Caption} 
\begin{tabular}{|p{5cm}|p{9cm}|c}
4&5&6 \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F \\
D&E&F
\end{tabular}
\end{table}
\end{landscape}    %turned off to demonstrate portrait pages
\restorefloats
}                 %turned off to demonstrate portrait pages

\lipsum[5-10]

\end{document}

相关内容