考虑一下代码
\documentclass{book}
\usepackage{lipsum,pgfpages}
\pgfpagesuselayout{2 on 1}
\begin{document}
\Large
\lipsum[1-5]\footnote{This is the footnote I was to make reference to, shortly.}
\lipsum[4-7]
\textbf{See footnote on page [Latex to insert page \#]}
\end{document}
产生
脚注出现在第 3 页,在第 4 页有引用。---
请参阅第 [pg. #] 页脚注
我希望 LaTeX 自动引用(在本例中)“第 3 页”。
问题:我该如何修改上述代码才能实现这一点?此外,我还希望能够更大规模地做到这一点,这样,如果我有一份包含一百个脚注(比如说三个)的文档,需要以类似的方式引用,我就可以做到这一点。我想,这必须涉及在每个(三个)脚注上放置一个唯一的标记,然后在文档的后面引用这三个标记以打印出每个脚注出现的页码——但我不知道如何编写代码。
谢谢。
答案1
通常,当您使用命令为具有参考计数器的内容(例如脚注,列表项,章节等)添加标签时\label{key}
,您可以使用 参考其计数器编号\ref{key}
,使用 参考其页码\pageref{key}
。
因此,要获取出现某个脚注的页面,您可以用 来标记它\label{myfootnote}
(使用任何可以帮助您记住的键代替myfootnote
),然后稍后使用 来引用其页码\pageref{myfootnote}
,如下所示:
\documentclass{book}
\usepackage{lipsum}{
\begin{document}
\Large
\lipsum[1-5]\footnote{\label{myfootnote}This is the footnote I want to make reference to, shortly.}
\lipsum[4-7]
\textbf{See footnote on page \pageref{myfootnote}.}
\end{document}
这是通过将页码写入 .aux 文件来实现的,因此需要多次编译。
但是,如果没有干预,包\pgfpagesuselayout
中的命令\pgfpages
将无法正常工作。如第 1014 页所述pgf 手册:
另一个需要注意的问题是:使用 pgfpages 会在文件中产生错误的页码
.aux
。原因是 TeX.aux
仅在物理页面被发送出去时才在写入文件时实例化页码。幸运的是,这个问题很容易解决:首先,正常排版我们的文件而不使用命令\pgfpagesuselayout
(只需在它前面放上注释标记%
)然后,重新运行\pgfpagesuselayout
包含命令的 TeX 并添加命令\nofiles
。此命令可确保.aux
文件不被修改,这正是您想要的。
因此你可以先排版:
\documentclass{book}
\usepackage{lipsum}{
\usepackage{pgfpages}
%\pgfpagesuselayout{2 on 1}
%\nofiles
\begin{document}
\Large
\lipsum[1-5]\footnote{\label{myfootnote}This is the footnote I want to make reference to, shortly.}
\lipsum[4-7]
\textbf{See footnote on page \pageref{myfootnote}.}
\end{document}
进而
\documentclass{book}
\usepackage{lipsum}{
\usepackage{pgfpages}
\pgfpagesuselayout{2 on 1}
\nofiles
\begin{document}
\Large
\lipsum[1-5]\footnote{\label{myfootnote}This is the footnote I want to make reference to, shortly.}
\lipsum[4-7]
\textbf{See footnote on page \pageref{myfootnote}.}
\end{document}
您将会得到正确的结果。
但是,我个人觉得在两个版本之间不断切换是一件很麻烦的事。如果你主要想要一个并排页面的最终文档,你可以排版一个每页一面的普通文档,然后使用类似工具(pdfjam
大多数 TeX 发行版都附带)创建 2 对 1 版本的 pdf,--nup
选项如下:
pdfjam --landscape --nup 2x1 filename.pdf '{},1-' -o filename-2x1.pdf
输出如下所示:
请注意,我使用了页面范围{},1-
。这样做的原因{}
是在第一页的左侧插入一个空白“页面”,以便奇数页位于右侧(正面),偶数页位于左侧(反面),就像在真正的书中一样。
警告:pdfjam
破坏超链接,但话又说回来,也是如此pgfpages
。