![如何在 LaTeX 中获取旋转的横向页面而不刷新其他浮点数?](https://linux22.com/image/328699/%E5%A6%82%E4%BD%95%E5%9C%A8%20LaTeX%20%E4%B8%AD%E8%8E%B7%E5%8F%96%E6%97%8B%E8%BD%AC%E7%9A%84%E6%A8%AA%E5%90%91%E9%A1%B5%E9%9D%A2%E8%80%8C%E4%B8%8D%E5%88%B7%E6%96%B0%E5%85%B6%E4%BB%96%E6%B5%AE%E7%82%B9%E6%95%B0%EF%BC%9F.png)
我希望使用 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}