我的 LaTeX 文档中有几个整页的图表,这些图表基于双面书籍类。我想确保这些图表放在我第一次使用 引用图表的对页上\ref{}
,或者至少放在我可以插入的某些可能手动放置的代码的对页上。
换句话说,如果我对图 5.3 的引用自然会出现在“左侧”偶数页上,我希望该图出现在相应的“右侧”页面上。如果图和引用交换页面,只要它们彼此相对,也是可以的。
我不希望参考资料和图表出现在同一页的正面和背面。我不希望读者必须翻页才能看到整页的图表。
这是一个简单的工作示例,其中的图形在第 4 页,但参考资料在第 3 页。用户必须翻转。
\documentclass[12pt,twoside]{book}
\usepackage[english]{babel}
\usepackage{blindtext}
\begin{document}
\Blindtext
\Blindtext
And this is a reference to Figure~\ref{myfig}.
\begin{figure}
\centering
\rule{6in}{8in}
\caption{Caption here.}
\label{myfig}
\end{figure}
\end{document}
答案1
如果你将引用和浮动元素放在奇数页中,那么很容易将引用留在这里,并强制浮动元素随afterpage
包装一起跳转到下一个(偶数)页。问题在于当你在偶数页中时,因为你必须同时移动浮动元素和引用。
将引用移动为浮点数很麻烦,因为:
(a) 参考文献在文本中只能占据一个逻辑位置:当图表最能说明您的演讲时。出于格式限制,图表可以远离您的论点(我们仅出于这个原因才使用参考文献),但参考文献不能随意移动到您正在解释的内容之上或之下。
(b) 将“独立”引用作为浮动或带元素自由移动到下一页afterpage
会破坏文本的流畅性,因为这两种情况都可能被放置在某个段落的中间,使文本变得混乱。但即使引用被很好地放置在两个段落之间,一个肯定与主题无关的引用也会破坏你的论述。
因此,恕我直言,宏在这里能做的最好的事情就是像往常一样打印参考文献和图片,但当参考文献在偶数页时会发出警告,因此您可以想象您必须移动宏多少次以及您需要对周围的文本进行哪些更改。否则,宏只会将参考文献准确地打印在您想要的位置,并将图片移动到下一个偶数页。
举个例子:在下面的代码中,参考资料打印在第 2 页(用蓝色表示,只是为了更容易找到),而图表打印在第 3 页:
但是,如果您删除第一页中的一个或两个段落(\lipsum[1-5]
通过进行更改\lipsum[1-3]
),以便将引用移至第 1 页,则引用将变为红色并带有边注:
\documentclass[12pt,twoside]{book}
\usepackage{lipsum,xcolor} % for demo purposes only
\usepackage{afterpage}
\usepackage{graphicx}
\newcommand\FIGandREF[4]{
\ifodd\thepage % if the wrong page ...
\marginpar{\color{red}{\bfseries WRONG PAGE}\\ Move
this reference somewhere.}
\textcolor{red}{#1 Figure~\ref{#2}.}
\afterpage{
\clearpage
\begin{figure}
\centering
\includegraphics[width=\textwidth,height=.8\textheight,keepaspectratio]{#3}
\caption{#4}
\label{#2}
\end{figure}
\clearpage
}
\else % in other case ...
\textcolor{blue}{#1 Figure~\ref{#2}}.
\afterpage{
\clearpage
\begin{figure}
\centering
\includegraphics[width=\textwidth,height=.8\textheight,keepaspectratio]{#3}
\caption{#4}
\label{#2}
\end{figure}
\clearpage
}
\fi
}
\begin{document}
\lipsum[1-5]
\FIGandREF{And this is a reference to}{myfig}{example-image-10x16}{Caption here}
\lipsum[6-12]
\end{document}