我在放置脚注时遇到了问题。在我使用的文本中\footnote{blabla}
,它运行良好,并在页面底部显示“blabla”。但我在文档中使用了页眉和页脚,我想将脚注放在页脚中,该行位于将页脚与文本分开的行下方。我已设法删除脚注上方的行,因此现在我没有两行(一行用于分隔脚注,另一行用于分隔页脚),但脚注仍然是文本的一部分,而不是页脚的一部分。我也尝试在使用包中使用“bottom”:
\usepackage[bottom,norule]{footmisc}
但这并没有帮助。
您知道如何强制将脚注作为页脚的一部分吗?
答案1
我遇到了同样的问题,我设法使用一个简单的技巧将脚注文本放入页脚中。为了显示脚注标记,我暂时使用以下命令更改 fancyhdr 布局\thispagestyle
:
% footnote in footer
\newcommand{\fancyfootnotetext}[2]{%
\fancypagestyle{dingens}{%
\fancyfoot[LO,RE]{\parbox{12cm}{\footnotemark[#1]\footnotesize #2}}%
}%
\thispagestyle{dingens}%
}
它可以像正常的一对\footnotemark[x]
and一样使用\footnotetext[x]
(必须手动编号,因为无法自动计算):
text that needs a footnote\footnotemark[1]
\fancyfootnotetext{1}{this is the footnote which will appear in the page footer}
要更改脚注的外观,请参阅 fancyhdr 的文档:http://www.ctan.org/tex-archive/macros/latex/contrib/fancyhdr
答案2
我遇到了同样的问题,在看到 Frank Engelhardt 的方法后,我尝试使用 etoolbox 包对其进行改进,甚至在存在脚注时将页码向右移动,并且可以处理多个脚注。(Frank 的版本更简单,但无法处理多个脚注,您必须手动标记它们。)
\documentclass{article}
\usepackage{fancyhdr}%
\usepackage{etoolbox}%
\newcommand{\makefootnotelist}[1]{%
\parbox{0.8\textwidth} {%
\footnotesize{%
\renewcommand*{\do}[1]{##1\\}%
\dolistcsloop{#1}}}}%
\newcommand{\fancyfootnote}[1]{%
\footnotemark{}%
\def\listname{footlist\thepage}%
\def\n{$^{\the\numexpr\value{footnote}}$}
\ifcsdef{\listname}%
{\listcseadd{\listname}{\n\ #1}}%
{\csedef{\listname}{}%
\listcseadd{\listname}{\n\ #1}}%
\fancypagestyle{fancyfootnote}{%
\fancyfoot[L]{\makefootnotelist{\listname}}%
\fancyfoot[R]{\thepage}%
\fancyfoot[C]{}%
}\thispagestyle{fancyfootnote}}%
\fancypagestyle{plain}{%
\fancyfoot[C]{\thepage}
}
\begin{document}
Lorem ipsum dolor sit amet, first footnote\fancyfootnote{One},consectetur adipiscing elit. Phasellus aliquam fringilla semper. Nulla nec congue elit, ut malesuada enim. Donec rutrum, libero in venenatis facilisis, neque leo venenatis dui, vel sollicitudin massa massa sit amet velit. Fusce sed euismod quam. Duis velit lorem, aliquam at consequat ac, sollicitudin eget enim. Sed ornare sit amet felis ut condimentum. Donec vulputate id diam nec ultricies. Aenean in velit metus. Second\fancyfootnote{Two}
\end{document}
您甚至可以重新定义 \footnote,这样就不必使用其他的了:
% Use instead of fancyfootnote
\renewcommand{\footnote}[1]{% ... }%
答案3
我知道这是一个 9 年前的问题,但上述方法搞乱了我常用的页脚布局,而且修复起来非常复杂。我所需要做的就是包含footmisc
带有bottom
选项的包并添加以下几行:
\let\origfootrule\footrule
\renewcommand{\footrule}{\iffootnote{}{\origfootrule}}
\renewcommand\footnoterule{\origfootrule}
作为一个最小的工作示例:
\documentclass{article}
\usepackage{fancyhdr}
\usepackage[bottom]{footmisc} % always place footer at bottom of page
%----------------------------------------------------------------------------------------
% HEADER AND FOOTER CONFIGURATION
%----------------------------------------------------------------------------------------
\pagestyle{fancy}
\fancyhf{}
\cfoot{\small{\MakeUppercase{\leftmark}}}
\rfoot{\small{\thepage}}
\renewcommand{\footrulewidth}{0.5pt}
%----------------------------------------------------------------------------------------
% FOOTER FOOTNOTE PATCH
%----------------------------------------------------------------------------------------
\let\origfootrule\footrule
\renewcommand{\footrule}{\iffootnote{}{\origfootrule}}
\renewcommand\footnoterule{\origfootrule}
\begin{document}
\section{No Footnote}
A normal page without footnotes, footer appears as normal.
\newpage\section{With Footnote}
First footnote\footnote{One}.
Second footnote\footnote{Two}.
\end{document}
如果您不使用脚注,那么您所需要的就是脚注\usepackage[bottom]{footmisc}
,并且脚注将始终位于页脚的正上方(“内部”)。
答案4
您必须修改 fancyhdr 包以包含一个测试,以查看插入内容中是否有脚注,然后将其输出到页脚中。问题在于脚注机制与运行页脚机制没有耦合,并且脚注机制首先运行,因此您还需要维护一个标志,表示您不希望脚注出现在正常位置,然后修改脚注机制以检测该情况并采取相应措施。从技术上讲是可行的,但很多的工作,并且它可能会与其他包发生冲突。
从您所说的内容来看,您似乎想要一个可变高度的页脚(有时是正常高度,有时是根据需要的高度以容纳脚注)。恕我直言,从印刷上来说,这是一个坏主意。
为什么不通过使脚注规则全宽并删除页脚上方的规则来伪造它呢?但是,如果您想在没有脚注的页面上的页脚上方添加规则,您仍然需要重写 fancyhdr 的部分内容。