将横向环境移至上一页

将横向环境移至上一页

landscape使用包提供的环境时,一个典型的解决方案pdflscape是将 包装landscape到一个\afterpage{}环境中,以防止在要旋转的部分和前面的文本之间清除页面。这样,后面的文本就会在横向页面之前刷新,直到横向页面出现。

是否有与\afterpage{}定位横向页面相同的内容调用它的页面是吗?通常情况下,图形、表格、图表等最好在以文本形式描述之前插入到文本流中,因此这种解决方案在这些情况下会派上用场。

我没有包括任何 MWE,因为我没有提到我遇到的任何特定问题。

答案1

不。这是不可能的(不改变整个输出程序)。TeX 的工作方式是逐个标记、逐段、逐页。当页面上的宏n已读,页面n-1大功告成。(这并不完全正确 - LaTeX 确实可以提前看到一点,但只是一点点,与整个页面完全不同。)

如果你愿意把图片放在并将此页面上的所有其他内容移至下一个页面上,而不是把图片放在以前的页面,那么您可以像 David 所说的那样,在输出中插入一个页面来实现这一点。

这是一个非常粗略的概念验证版本:

\documentclass{article}
\usepackage{graphicx,everypage,kantlipsum,rotating,calc}
\newlength\mylength
\setlength\mylength{.5\paperwidth-.5\textwidth-1in-\parindent}
\newlength\myotherlength
\setlength\myotherlength{.5\paperheight-.5\textheight-1in}
\begin{document}
\kant[1-4]% this text runs from page 1 to page 2, but ends up on page 1 and page 3
\shipout\vbox{% this code is on page 2 and ends up on page 2
  \refstepcounter{page}%
  \vskip\myotherlength
  \hskip\mylength
  \includegraphics[width=\textheight,height=\textwidth,keepaspectratio,angle=90]{example-image-a}%
}%
\kant[5-7]% this ends up on page 3 and later
\end{document}

插入页

相关内容