我有一些大段的文字,里面有一个图形,还有另一个图形需要完整的浮动页面(我使用\begin{figure}[p]
)。
这两个数字是相互关联的,应该同时查看。
幸运的是,该文件将是双面的。
我能否保证两个浮动图形彼此面对(即位于相对的左页和右页)并禁止 LaTeX 将它们背对背放置或甚至分开放置(这样您就不得不烦人地来回翻页才能查看两个图形)?
答案1
afterpage
您可以使用包及其命令简化您的生活——或者至少简化您的排版工作——\afterpage
如下面的示例代码所示。唯一没有完全自动化的是:您需要手动确保两个浮动元素放置在偶数/奇数页上,而不是奇数/偶数页上。
\documentclass{book}
\usepackage[margin=1in]{geometry}
\newcommand\bigrectangle{\rule{12cm}{20cm}} % dummy "figure"
\usepackage{lipsum} % filler text
\usepackage{afterpage}
\begin{document}
\lipsum[1-5]
\hrule % to indicate start of "afterpage" material
% be sure the following material is placed on a "recto" (odd-numbered) page:
\afterpage{%
\clearpage % flush any pending floats
\begin{figure}[p]
\centering
\bigrectangle
\caption{First (verso) figure}
\end{figure}
\clearpage
\begin{figure}[p]
\centering
\bigrectangle
\caption{Second (recto) figure}
\end{figure}
\clearpage % force-flush the second figure as well
} % end of "afterpage" material
\lipsum[6-15] % more filler text: fill rest of p. 1, then continue on p. 4
\end{document}
** 附录**:如果您只希望两个浮动元素中的一个占据整个页面,而第二个浮动元素应该顶部对齐并允许其下方有一些文本,您可以按以下步骤操作:
首先,插入如下指令
\renewcommand\topfraction{0.9}
在序言中。此参数的默认值为
0.7
;如果两个数字中较小的一个占可用文本高度的 72%,则可能会造成困难。其次,使用如下代码(其中假定
\smallrectangle
定义为\rule{12cm}{8cm}
;显然,您需要用实际图表替换它...):\afterpage{% \begin{figure}[p] \centering \bigrectangle \caption{First (verso) figure} \end{figure} \clearpage % flush the first float \begin{figure}[t!] \centering \smallrectangle \caption{Second (recto) figure} \end{figure} } % end of "afterpage" material
答案2
如果您在源中将两个浮动文本放在一起,LaTeX 就不会将它们分开,因为如果条件适合将第一个浮动文本放在浮动页面上,则在 Latex 开始寻找更多文本之前,第二个浮动文本将会被放在浮动页面上。
但是,使用标准工具,您无法控制第一行出现在奇数页还是偶数页。可以修补输出例程来控制这一点,但通常这样做有点不可靠,具体取决于您加载了哪些其他包,因此通常更简单的方法是等到文档几乎完成,然后在源中向前或向后移动浮动对,使它们出现在跨页上。
好的,这重新定义了一些东西,使得p
浮动只能出现在偶数页上,但ph
浮动没有限制,所以如果你跟随p
它们,ph
它们应该浮动到下一个跨页(这里是第 4/5 页)
\documentclass[twoside]{article}
\gdef\floatpagefraction{\ifodd\count0 1.5\else .5\fi}
\makeatletter
\def\@ytryfc #1{%
\begingroup
\gdef\@flsucceed{\@elt #1}%
\global\let\@flfail\@empty
\@tempdima\ht #1%
\let\@elt\@ztryfc
\@trylist
\ifodd\count#1\@fpmin\z@\fi
\ifdim \@tempdima >\@fpmin
\global\@fcolmadetrue
\else
\@cons\@failedlist #1%
\fi
\endgroup
\if@fcolmade
\let\@elt\@gobble
\fi}
\makeatother
\def\a{One two three four five six seven eight nine ten. }
\def\b{\a\a Red yellow blue green black white. }
\def\c{\b\b\a\a\a\b\par\b\b\a\a\a\b\b\b\b\b}
\begin{document}
titlepage\thispagestyle{empty}
\clearpage
\pagenumbering{roman}
\c\c\c\c
\begin{figure}[p]
\rule{3pt}{.7\textheight}LLL
\write20{L: \thepage}
\end{figure}
\begin{figure}[ph]
R\rule{3pt}{.7\textheight}
\write20{R: \thepage}
\end{figure}
\c\a\a\c\c\c\c\c
\end{document}