LaTeX 攻略之脚注常用技巧

发布于 2021-07-13 10:06:13

脚注是在论文写作,书籍写作中起到了注释说明的作用,footnote 的功能是在 LaTeX 的文档中加入脚注,其宏包文档为《LaTeX2e: An unofficial reference manual》。

footnote 的定义是:

Place a numbered footnote at the bottom of the current page.(在当前页的底部放置一个编了号的脚注。)

脚注编号会紧贴在你调用该函数的位置。按文学习惯,我们要给某字或词注释,则在该字或词后调用;给某句或某段注释,当然该把编号打在逗号或句号后面,如下用法:

\documentclass{ctexart}%
\usepackage{geometry}
\geometry{top=13cm,bottom=13cm}
\begin{document}
    昔帝鸿氏\footnote{帝鸿指黄帝.}有不才子\footnote{不才子指黄帝苗裔讙兜.},掩义隐贼,好行凶慝,天下谓
    之浑沌。\footnote{【正义】:一本云“天下之民,谓之浑沌.”}
\end{document}

输出图示如下:

img

你可以在页面上放置多个脚注, 如果文本太长,它将流向下一页。

你还可以通过组合footnotemark和footnotetext 命令来生成脚注,这在特殊情况下很有用。如何组合这两个命令:

\footnote``[number]{text}

该命令即把 text 的内容,作为脚注显示在本页左下方,脚注编号会自动递增。

若要人为地给某脚注编号,可给可选参数 number 传参,此时,后续脚注的编号,将无视你人为设定的数字,继续按前面的顺序递增,请注意下面例子中的编号顺序。

注意:[number]中只能传数字参数,如[1],而不能写[(1)]、[<2>]这样的。

样例代码如下:

\documentclass{ctexart}%
\usepackage{geometry}
\geometry{top=12cm,bottom=13cm}
\begin{document}
    子曰:“君子不重则不威,\footnote{邢昺:君子当须敦重,若不敦重,则无威严.}学则不固。\footnote{邢昺:又当学先王
    之道,以致博闻强识,则不固蔽也。}
    主忠信。\footnote[8]{朱子曰:人不忠信,则事皆无实,为恶则易,为善则难,故学者必以是为主焉。}
    无友不如己者。\footnote{翻译1:不跟自己志向不同的人交往。}\footnote{翻译2:没有不如自己的朋友,指要见
    到每个人的长处。}过则勿惮改。”
\end{document}

如下图所示:

img

](http://pics.latexstudio.net/article/2019/0330/c57f5d9e206b4cb.png)

变幻脚注编号样式

脚注在一般情况下,默认依阿拉伯数字排序:‘1’、‘2’、‘3’……

若要变更脚注的编号样式,需调用下面的函数:

对于此函数,我们只需要更改fnsymbol部分,fnsymbol可以改为

alph Alph arabic roman Roman fnsymbol 六种样式。

(1)若改为alph ,则脚注编号变为‘a’、‘b’、‘c’……

(2)若改为Alph ,则脚注编号变为‘A’、‘B’、‘C’……

(3)若改为arabic(默认),则脚注编号变为‘1’、‘2’、‘3’……

(4)若改为roman,则脚注编号变为‘ⅰ’、‘ⅱ’、‘ⅲ’……

(5)若改为Roman,则脚注编号变为‘Ⅰ’、‘Ⅱ’、‘Ⅲ’……

(6)若改为fnsymbol,则脚注编号变为一列特殊的符号序列(从1-9),这九个符号依次如下:

img

一般情况下,默认编号是阿拉伯数字。但在小环境、迷你页等类似“页中页”的内容里脚注时,默认编号是‘a’、‘b’、‘c’……如下面用 tcolorbox 宏包生成的盒子就是例子:

\documentclass{ctexart}%
\usepackage{geometry}
\geometry{top=5cm,bottom=5cm}
\usepackage{tcolorbox}
\usepackage{xpinyin}
\begin{document}
\begin{tcolorbox}[adjusted title=\subsection{陪李北海宴历下亭}]
            {
               \kaishu{【鹤注】历下,在齐州,以有历山故得名。历山,即舜耕之山也。李北海即李\xpinyin*{邕}。
               按:新旧史:邕,广陵人,开元二十三年为括州刺史,后历\xpinyin*{淄}、滑二州刺史,天宝初为汲
               郡、北海二太守。 五载,奸赃事发,又尝与刘\xpinyin*{勣}马,勣下狱,吉温吏引邕,李林甫素忌
               邕,因傅以罪,诏祁顺之、罗希\xpinyin*{奭}就郡杖杀之,乃六年正月辛巳。
               此诗当是天宝四年作。梁权道编在天宝十一年者,非是,时邕死已六年矣。\\
               【朱注】《旧唐书·地理志》:青州,属河南道,武德四年置}青州总管府,天宝无年改为北海郡,乾
               元元年复为青州。于钦《齐乘》:历下亭,在府城驿邸内历山台上,面山背湖,实为胜绝。}
    \tcblower
        东\xpinyin*{藩}驻\xpinyin*{皂}盖,北\xpinyin*{渚}凌青荷\footnote{钱从“青荷”,一作“清\xpinyin*{菏}”}。
        海右\footnote{一作“内”}此亭古,济\footnote{上声}南名士多。\footnote{原注:时邑人\xpinyin*{蹇}处士辈在坐}\\
    云山已发兴\footnote{去声},玉佩仍当歌。
        修竹不受暑,交流空涌波。\footnote{【张綖注】修竹既不受暑则交流空自涌波,此十字句法。}\\
    \xpinyin*{蕴}真\xpinyin*{惬}所遇,落日将如何。贵贱俱物役,从公难重\footnote{义从平声,读依去声}过。
\end{tcolorbox}
\end{document}

效果如下:

img

可以看到,在tcolorbox这种“盒子”般的小环境中,编号自动变成了‘a’、‘b’、‘c’……而‘1’、‘2’、‘3’……脚注也自动居于该小环境的左下方,而非居于整个页面的左下方。那么可以用如下的方式修改:

\renewcommand{\thempfootnote}{\arabic{mpfootnote}}

footnotemark命令

其命令方式如下:

\footnotemark[number]

其意义是将当前脚注的编号放在文本中。通过可选参数number 里的各版编号,来确定要显示的标号。此命令可用于内部段落模式。

比如:下面这个例子,给第一和第三作者提供了相同的机构隶属关系。(thanks是脚注的一个版本)

\title{A Treatise on the Binomial Theorem}
\author{J Moriarty\thanks{University of Leeds}
\and A C Doyle\thanks{Durham University}
\and S Holmes\footnotemark[1]}
\begin{document}
\maketitle

输入出效果图如下:

img

用 footnotemark 画出的编号,不能指向引用,即点击编号无法直接跳到注释处,所以一般不用该命令。

单用 footnotemark 就在该处显示递增到当前的数字或字母编号,\footnotemark[number]则是在该处显示你人为定义的一个编号,它只能作为一个mark(标记)功能,没有注释功能。

如果使用 footnotemark而不使用可选参数,则它会增加脚注计数器;但若你用了可选参数number,那么它不会增加。这可产生几个连续的脚注标记指向同一个脚注。

请注意下例中,有注释功能的footnote函数,和没有注释功能、只有标号功能的footnotemark、footnotemark[number]函数的交错使用与编号序数的增加方式。

\begin{document}
    黄帝者,\footnote{【集解】徐廣曰:“號有熊。”}少典之子,\footnote{【集解】譙周曰:“有熊國君,
    少典之子也。”皇甫謐曰:“有熊,今河南新鄭是也。”}
    姓公孫,名曰軒轅\footnotemark。
    生\footnotemark[8]而神\footnotemark[6]靈,弱而能言\footnotemark,幼而徇
    齊,\footnote{【集解】徐廣曰:“墨子曰‘年踰十五,則聰明心慮無不徇通矣’。”}長而敦敏,成而聰明。
\end{document}

输出如下图:

img

footnotetext和footnote的区别

首先看看 footnotetext 命令的使用方式:

\footnotetext{text}\footnotetext[number]{text}

将文本放在页面底部作为脚注。这个命令可以在footnotemark 命令之后调用。 可选参数 number 会更改所显示内容的脚注编号。 footnotetext 命令必须出现在段外模式中。

footnotetext{text}和footnote{text}的区别是,后者会在文中显示编号,而前者不显示。

且 footnotetext 不会自动递增编号序号,而是重复上一个编号的序号。所以在某些特别环境,要自己定义编号序号的,就把 footnotetext 与 footnotemark 配合使用。前面提到我们可以用 footnotemark 和 footnotetext 联合制作自己的脚注,即此理。

先用 footnotemark 显示出这儿的脚注编号,接着立即再调用 footnotetext{text} 命令。这样,在正文文本中,就通过 footnotemark 函数显示出你想要的编号,而脚注中,因为 footnotetext{text} 有重复上一个编号序号的特性,脚注中也同步显示 footnotemark 的编号。

\begin{document}    黄帝者,\footnote{【集解】徐廣曰:“號有熊。”}少典之子,\footnotetext{【集解】譙周曰:“有熊國君,少典之子    也。”皇甫謐曰:“有熊,今河南新鄭是也。”}    姓公孫,名曰軒轅。生而神靈,弱而能言,幼而徇齊,\footnotemark\footnotetext{【集解】徐廣曰:“墨子曰‘年踰十五,    則聰明心慮無不徇通矣’。”}長而敦敏,成而聰明。    軒轅之時,神農氏世衰\footnote{【索隱】:世衰,謂神農氏後代子孫道德衰薄,非指炎帝之身,即班固所謂“參盧”,    皇甫謐所云“帝榆罔”是也。}。    諸侯相侵伐,暴虐百姓,而神農氏弗能征。    於是軒轅乃習用干戈,以征不享,諸侯咸來賓從。而蚩尤最為暴,莫能伐。\end{document}

输出效果为:

img

表格中的脚注使用

表格中脚注会失效,在table环境中,footnote 命令不起作用。 例如,若下面的代码单独出现,则脚注消失; 我们可以使用 minipage 来化解。

\begin{document}
\begin{center}
    \begin{minipage}{.5\textwidth}
    \begin{tabular}{l|l}
        \textsc{Ship} &amp;\textsc{Book} \\ \hline
        \textit{HMS Sophie} &amp;Master and Commander \\
        \textit{HMS Polychrest} &amp;Post Captain \\
        \textit{HMS Lively} &amp;Post Captain \\
        \textit{HMS Surprise} &amp;A number of books\footnote{Starting with
            HMS Surprise.}
        \end{tabular}
    \end{minipage}
    \end{center}
\end{document}

效果如下:

img

在序言中放置 usepackage{tablefootnote} 并使用显示的代码,则脚注命令改为 tablefootnote 将显示在底部,并与其他脚注一起按顺序编号。

\documentclass{ctexart}%
\usepackage{geometry}
\geometry{top=5cm,bottom=5cm}
\usepackage{tablefootnote}
\begin{document}
    \begin{table}
    \centering
    \begin{tabular}{l|l}
        \textsc{Date} &amp;\textsc{Campaign} \\ \hline
        1862 &amp;Fort Donelson \\
        1863 &amp;Vicksburg \\
        1865 &amp;Army of Northern Virginia\tablefootnote{Ending the war.}
    \end{tabular}
        \caption{Forces captured by US Grant}
    \end{table}
\end{document}

标题中加脚注

LaTeX 的默认设置限制了你可以使用 footnote 的位置; 例如,你不能在诸如 chapter、section 之类的章节命令的参数中使用它(它只能用于段外模式)。

\section{Full sets\footnote{This material due to ...}}

则会报错:

TeX capacity exceeded, sorry [input stack size=5000]...footnote{……}}

要在标题中添加脚注,可以使用 protect 保护一下如下:

\section{Full sets\protect\footnote{This material due to ...}}

这样使用的后遗症就是如果我们使用 tableofcontents 它也会出现在目录索引的底部,如下图:

img

那么目录索引不希望出现标号。要让它不出现在目录中,有两个方法,一个是起用 section 可选参数:

\section[Full sets]{Full sets\protect\footnote{This material due to ...}}

另一个就是使用带 stable 选项的包 footmisc,这样使用的另一个好处就是:你在标题中加脚注时,无需再写上 protect,你已可以直接 footnote 了。

\usepackage[stable]{footmisc}

多重脚注

在人文学科中,作者可以有多种脚注,包括脚注的脚注。 bigfoot包在许多方面扩展了 LaTeX 的默认脚注机制,包括允许二重脚注,如本例所示。

\documentclass[]{article}
\usepackage{bigfoot}
\title{脚注测试}
\author{yourgame}
    \DeclareNewFootnote{Default}
    \DeclareNewFootnote{from}[alph]
\begin{document}
    \maketitle
    The third theorem is a partial converse of the
second.\footnotefrom{First noted in Wilson.\footnote{Second edition only.}}
\end{document}

img

选自:http://www.zyourgame.com/archives/132

0 条评论

发布
问题