关于在文档文本中引用脚注

关于在文档文本中引用脚注

考虑一下代码

\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

输出如下所示:

pdfjam nup

请注意,我使用了页面范围{},1-。这样做的原因{}是在第一页的左侧插入一个空白“页面”,以便奇数页位于右侧(正面),偶数页位于左侧(反面),就像在真正的书中一样。

警告:pdfjam破坏超链接,但话又说回来,也是如此pgfpages

相关内容