我需要在图片的标题中添加脚注,因此使用afterpage
包将脚注和图片保留在同一页上(也可以使用包footnote
为图片添加脚注)。我需要用 Word 中定义的样式撰写我的博士论文,但我想用 Latex 撰写。Word 总是将脚注放在页面底部。所以基本上,我不得不将脚注放在底部。其他人似乎也有同样的问题(其他问题,接受的答案将脚注放在页面底部,但是是手动的;也适用于可能浮动的桌子和一般情况下,我在那里找到了这个想法afterpage
;也在其他地方在网上),所以我想我可以分享我目前所取得的进展并就此问题获取其他人的意见。
在 afterpage 环境中使用浮动时,文档某些部分底部脚注的顺序会混乱。我设法用一个肮脏的黑客修复了底部脚注的顺序(见下文),但图表的脚注编号并不总是页面上出现的第一个脚注编号。所以我现在基本上有两个问题:
- 我的卑鄙伎俩有什么作用?我刚刚尝试了一些方法,不知怎么的,它起作用了,现在我想了解为什么以及它是否会影响文档的其他部分。
- 如何获取标题脚注的正确脚注编号,即该页面上的最低脚注编号?
我的肮脏伎俩(使用\patchcmd
from etoolbox
):
\usepackage{etoolbox}
\makeatletter
\tracingpatches
\patchcmd{\AP@savetop}{\global\setbox\AP@footins\box\footins}{}{}{}
\patchcmd{\AP@@}{\insert\footins{\unvbox\AP@footins}\fi}{\setbox\footins\vbox{\unvbox\AP@footins}\fi}{}{}
\makeatother
没有使用肮脏的手段我得到了什么:
- 与图片在同一页的脚注
- 脚注顺序不正确
- 标题脚注编号不是页面上的第一个数字
我用肮脏的手段得到了什么
- 与图片在同一页的脚注
- 脚注顺序正确的
- 标题脚注编号不是页面上的第一个数字
我想要的是
- 与图片在同一页的脚注
- 脚注顺序正确的
- 标题脚注编号页上的第一个数字
梅威瑟:
\documentclass[12pt,a4paper,twoside,openany,fleqn]{book}
\usepackage{afterpage}
\usepackage[ngerman]{babel}
\usepackage{lipsum}
\usepackage{footnote}
\makesavenoteenv{figure}
\begin{document}
\chapter{First Chapter}
\lipsum[1]\footnote{Footnote}
\afterpage{
\begin{figure}[htp]
\fbox{Hello World}
\caption[test]{test\protect\footnote{Test}}
\end{figure}
}
\lipsum[1]\footnote{Footnote}
\lipsum[1]\footnote{Footnote}
\lipsum[1]\footnote{Footnote}
\afterpage{
\begin{figure}[htp]
\fbox{Hello World}
\caption[test]{test\protect\footnote{Test}}
\end{figure}
}
\lipsum[1]\footnote{Footnote}
\lipsum[1]\footnote{Footnote}
\end{document}
編輯1:第二个 MWE 没有afterpage
,其中脚注保存在不同的页面上。afterpage
在图表周围添加可将脚注移动到正确的页面:
\documentclass[12pt,a4paper,twoside,openany,fleqn]{book}
\usepackage[ngerman]{babel}
\usepackage{lipsum}
\usepackage{footnote}
\makesavenoteenv{figure}
\begin{document}
\chapter{First Chapter}
\lipsum[1]\footnote{Footnote}
\begin{figure}[tp]
\begin{minipage}[t][0.4\textheight][t]{0.6\textwidth}
\end{minipage}
\caption[test]{test\protect\footnote{Test}}
\end{figure}
\lipsum[1]\footnote{Footnote}
\lipsum[1]\footnote{Footnote}
\lipsum[1]\footnote{Footnote}
\begin{figure}[tp]
\begin{minipage}[t][0.4\textheight][t]{0.6\textwidth}
\end{minipage}
\caption[test]{test\protect\footnote{Test}}
\end{figure}
\lipsum[1]\footnote{Footnote}
\lipsum[1]\footnote{Footnote}
\end{document}
答案1
如果不重写一半的 latex,就无法对浮动图形执行此操作:标题(包括任何脚注标记)已设置figure
在环境方面浮动图形可以浮在脚注上方,从而导致脚注编号的顺序混乱。
如果你真的想要这种输出风格(我看不出有什么好的理由,浮点数是通过设计不在页面上的文本主流中的不同对象,因此有其脚注在页面中看起来是错误的) 那么您需要使用非浮动数字。
您可以使用float
包\begin{figure}[H]
或或caption
或capt-of
包\captionof{figure}{...}
,那么图形就不是浮动对象,而是固定在页面中,然后您可以\footnotemark
在标题中并\footnotetext
紧接着使用\end{figure}
,它们将出现在同一页面上。
答案2
我能够使用 来处理这个问题。首先,我使用和\clearpage
将图片和脚注分组,方法是将图片标题内的 和图片后的 组合在一起,但要放在 内。分组之后,我立即放入。这样就创建了带有\afterpage{...}
\protect\footnotemark
\footnotetext
\afterpage{...}
\clearpage
正确的脚注顺序和正确的编号顺序很容易。另请参阅此帖子:数字枚举顺序错误