LaTeX
脚注
脚注是为读者提供额外信息的一种非常有用的方式。通常,脚注包含非必需的信息,这些信息可以放在页面底部,从而使正文保持简洁。
脚注功能使用起来非常简单。你需要的命令是:\footnote{文本}
。请不要在命令和你希望显示脚注标记的单词之间留空格,否则 LaTeX 会处理这个空格,并导致输出的效果与预期不符。
创建脚注非常简单:\footnote{这是一个脚注示例。}
LaTeX 会自动处理脚注的排版,将其放置在页面底部。每个脚注都会按顺序编号——正如你现在应该已经猜到的那样,这个过程是自动完成的。
如果你希望脚注位于页面底部(而不是默认的“粘附”在正文下方),可以使用:
\usepackage[bottom]{footmisc}
你也可以选择手动放置脚注文本。在这种情况下,我们使用 \footnotemark
和 \footnotetext
组合:
\footnotemark
% ...
其他地方\footnotetext{这是我的脚注!}
也可以显式指定脚注编号:
\footnotemark[17]
% ...
其他地方\footnotetext[17]{这是我的脚注!}
自定义
编号/计数器样式
可以自定义脚注的标记。默认情况下,脚注是按顺序编号的(阿拉伯数字)。然而,如果你不想深入了解 LaTeX 的内部机制,也可以使用以下命令进行更改(需要将其放在文档的开始位置,或者至少在第一次使用脚注命令之前):
\renewcommand{\thefootnote}{\arabic{footnote}} % 阿拉伯数字,如:1, 2, 3...
\renewcommand{\thefootnote}{\roman{footnote}} % 罗马数字(小写),如:i, ii, iii...
\renewcommand{\thefootnote}{\Roman{footnote}} % 罗马数字(大写),如:I, II, III...
\renewcommand{\thefootnote}{\alph{footnote}} % 字母(小写),如:a, b, c...
\renewcommand{\thefootnote}{\Alph{footnote}} % 字母(大写),如:A, B, C...
\renewcommand{\thefootnote}{\fnsymbol{footnote}} % 九个符号序列,试试看!
如果你想创建没有编号标记的脚注,可以使用以下声明:
\let\thefootnote\relax\footnote{此脚注没有编号}
这样会全局关闭脚注的编号。若只想让某个脚注没有编号,可以将上述命令放入 {}
内。然而,这种做法会使当前的脚注计数器仍然增加,因此例如会得到脚注 1(没有编号)和 3。更好的解决方案是,在前导部分定义以下宏,并使用它:
\makeatletter
\def\blfootnote{\xdef\@thefnmark{}\@footnotetext}
\makeatother
重置计数器
每节重置:
\makeatletter
\@addtoreset{footnote}{section}
\makeatother
每页重置(这可能需要运行 LaTeX 两次):
\usepackage{perpage} % perpage 包
\MakePerPage{footnote} % perpage 包命令
引用脚注
可以通过在脚注末尾放置 \label{labelName}
来引用脚注,并使用 \ref{labelName}
来引用该脚注。
常见问题及解决方法
脚注无法与表格一起使用,因为这被认为是一个不好的做法。你可以通过几种技巧来克服这个限制:你可以在表格中使用 \footnotemark[123]
,并在页面的某个地方使用 \footnotetext[123]{HelloWorld!}
。同样,对于引用:可以在页面某个地方使用 \footnote{HelloWorld!\label{fnote}}
,并在表格中使用 \textsuperscript{\ref{fnote}}
。或者,你可以在前导部分加入 \usepackage{footnotehyper}
和 \makesavenoteenv{tabular}
,并将表格环境放在 \begin{savenotes}
环境中。后一种方法不适用于 color
或 colortbl
包。有关其他方法,请参阅此 FAQ 页面(例如使用 tablenotes
和 threeparttable
)。
脚注在 minipage
环境中也不起作用。(事实上,一些环境会破坏脚注的支持。footnote
包的 \makesavenoteenv{environmentname}
命令可能解决大部分问题。)minipage
环境包含自己的脚注,独立于文档的脚注。mpfnmark
包允许更灵活地管理这两种脚注。
如果脚注中的文本是 URL(使用 \url
或 \href
命令)并且包含特殊字符,则不会编译。你必须使用反斜杠转义这些字符,或者使用其他命令。
如果脚注中的文本非常长,LaTeX 可能会将脚注分割到多个页面。你可以通过增加惩罚值来防止这种情况发生。为此,请在文档的前导部分插入以下行:
\interfootnotelinepenalty=10000
或者在脚注命令后设置 \samepage
:
\footnote{ \samepage 脚注文本继续在这里显示 }
要多次引用同一个脚注,可以使用以下语法:
带有脚注的文本\footnote{这是脚注} 看起来是这样的。稍后的文本引用同一个脚注\footnotemark[\value{footnote}] 使用其他命令。
如果你需要支持 hyperref
,可以改用:
带有脚注的文本\footnote{这是脚注}\addtocounter{footnote}{-1}\addtocounter{Hfootnote}{-1} 看起来是这样的。稍后的文本引用同一个脚注\footnotemark 使用其他命令。
这些方法在第一次引用和后续的“重复”引用之间如果有其他脚注时将无法工作。更多通用解决方案,请查看此处和此处。
如果脚注打算添加到章节、节标题或类似位置,可以使用以下两种方法:
-
写
\section[标题] {标题\footnote{我是与节相关的脚注}}
,其中标题
是节的标题。 -
使用
footmisc
包,选择stable
包选项,只需将脚注添加到节标题中。
边注

\marginpar{边注文本}
。对于单面布局(simplex),文本会放在页面右侧,从定义它的行开始。对于双面布局(duplex),它将放在外侧边缘,对于双栏布局,将放在最近的边缘。
要交换默认的边注位置,可以使用 \reversemarginpar
,此时边注将放在相反的一侧,对于双面布局来说,就是内侧边缘。
如果边注的文本取决于它所放置的边缘(比如包含指向文本的箭头或指向方向的文字,如“如左所示...”),可以使用 \marginpar[左文本]{右文本}
来指定不同的内容。
要在 \marginpar
无法处理的区域(如脚注或方程环境)插入边注,可以使用 marginnote
包。
另一个用于以更华丽的方式添加有色边注的选项是 todonotes
包,使用 \todo{todo笔记}
。它利用了 pgf
包,这个包用于设计和绘图,具有庞大的工具数据库。
如果 \marginpar
命令不能满足需求,可以使用 mparhack
和 marginnote
包。
边注几何(底部边距 H 未显示)
marginnote
和 geometry
包可以设置边距和边注的宽度。
在前导部分插入:

\usepackage{marginnote}
并使用 geometry
包设置自定义尺寸:
\usepackage[top=Bcm, bottom=Hcm, outer=Ccm, inner=Acm, heightrounded, marginparwidth=Ecm, marginparsep=Dcm]{geometry}
其中 A, B, C, D, E, F, G, H 都是厘米(当然也可以使用其他单位)。
在正文中,按照以下方式使用 marginnote
包:
\marginnote{这里排版文本...}[Fcm]
具体而言:
-
marginparwidth
(E) 是边注的宽度, -
marginparsep
(D) 是段落和边注之间的间距, -
F 是从边注排版的第一行向下的垂直偏移量(负值 F 会将边注向上移动),
-
G = C - (D + E) 是边注和边缘之间的间距。
右侧的示例是通过以下代码排版的:
\documentclass[a4paper,twoside,english]{article}
\usepackage{lmodern}
\renewcommand{\sfdefault}{lmss}
\usepackage[T1]{fontenc}
\makeatletter
\special{papersize=\the\paperwidth,\the\paperheight}
\usepackage{lipsum}
\usepackage{marginnote}
\usepackage[top=1.5cm, bottom=1.5cm, outer=5cm, inner=2cm, heightrounded, marginparwidth=2.5cm, marginparsep=2cm]{geometry}
\makeatother
\usepackage{babel}
\begin{document}
\section{边注}
\marginnote{这是一个使用 `geometry` 包的边注,设置为与排版的第一行的垂直偏移为 0cm。}[0cm]
\marginnote{这是一个使用 `geometry` 包的边注,设置为与排版的第一行的垂直偏移为 5cm。}[5cm]
\lipsum[1-10]
\end{document}
另外,最小垂直间隙可以通过 \marginparpush
调整,例如使用 \setlength{\marginparpush}{0pt}
。
注释和参考
-
“LaTeX 脚注”。检索日期:2016-01-14
-
本页内容使用了 Andy Roberts 的《Getting to grips with LaTeX》中的资料,已获授权。