压缩连续的脚注标记

压缩连续的脚注标记

这个问题导致了一个新的方案的出现:
footnoterange

我有一系列连续编号的脚注,显示为 (1,2,...,N)。我希望将它们压缩为仅包含系列 (1–N) 的第一个和最后一个成员的带连字符的系列,类似于 和 包citenatbib行为连续编号的书目参考文献。我已经加载了该包footmisc以便能够正确显示连续的脚注,但该包似乎只支持脚注列表的逗号划分(而不是连字符)(参见footmisc手动的)。

编辑:我添加了三个 MWE 来明确我的意图。MWE1 显示了默认的 LaTeX 行为。MWE2 显示了调用 所带来的改进\usepackage[multiple]{footmisc}。MWE3 显示了期望的结果。

MWE1(默认):

在此处输入图片描述

MWE2(脚部杂项):

在此处输入图片描述

MWE3(期望):

在此处输入图片描述

源代码包含在这里:

MWE1(默认):

\documentclass{article}
\usepackage[hmargin=1in,vmargin=4.75in]{geometry}
\begin{document}
This text bears a multiplicity of footnotes%
\footnote{Lorum}\footnote{ipsum}\footnote{dolor}%
\footnote{sit}\footnote{amet,}\footnote{consectetur}%
\footnote{adipisicing}\footnote{elit}.%
\end{document}

MWE2(脚部杂项):

\documentclass{article}
\usepackage[hmargin=1in,vmargin=4.75in]{geometry}
\usepackage[multiple]{footmisc}
\begin{document}
This text bears a multiplicity of footnotes%
\footnote{Lorum}\footnote{ipsum}\footnote{dolor}%
\footnote{sit}\footnote{amet,}\footnote{consectetur}%
\footnote{adipisicing}\footnote{elit}.%
\end{document}

MWE3(期望):

\documentclass{article}
\usepackage[hmargin=1in,vmargin=4.75in]{geometry}
\begin{document}
This text bears a multiplicity of footnotes$^{1\textrm{--}8}.$%
\footnotetext[1]{Lorum}\footnotetext[2]{ipsum}\footnotetext[3]{dolor}%
\footnotetext[4]{sit}\footnotetext[5]{amet,}\footnotetext[6]{consectetur}%
\footnotetext[7]{adipisicing}\footnotetext[8]{elit}%
\end{document}

答案1

如果你想给出对一系列脚注的引用,footnoterange那么footnoterange包是显而易见的选择:

\documentclass{article}
% load hyperref or footmisc or other packages here
% hyperref-option hyperfootnotes=true or =false as you like
% if you use the cleverref package:
%  it must be loaded after hyperref, never before hyperref
\usepackage{footnoterange}
\begin{document}
This text bears a multiplicity of footnotes%
\begin{footnoterange}%
\footnote{Lorum}\footnote{ipsum}\footnote{dolor}%
\footnote{sit}\footnote{amet,}\footnote{consectetur}%
\footnote{adipisicing}\footnote{elit}%
\end{footnoterange}%
 which are referenced as one footnoterange.
\end{document}

footnoterange*如果您使用hyperref带有选项的包 ,但又不想要超链接脚注,请使用环境hyperfootnotes=true。[至于真正自动化的解决方案,不需要\begin{footnoterange}\end{footnoterange}:抱歉!那是棘手。另请参阅 footmisc-option multiple 与 hyperref 不兼容要求更多自动脚注处理。

答案2

我建议你看看聪明人包及其命令\crefrange\cref。前一个命令有两个参数,即要交叉引用的一系列项目的第一个和最后一个标签;使用第二个命令,您只需指定要交叉引用的所有标签,包就会自动对列表进行排序,如果可能的话,还会压缩列表。命令的参数\cref甚至不需要按任何顺序排列。

以下 MWE 说明了如何做到这一点。

\documentclass{article}
\usepackage[para]{footmisc} % since you mention that you use this package
\usepackage{cleveref}
  \newcommand\crefrangeconjunction{--}      % default: " to "
  \newcommand{\creflastconjunction}{, and } % default: " and ", i.e., without the comma
\begin{document}
\section{Hey, let's create some footnotes}
Once\footnote{A \label{fn:A}} upon\footnote{B \label{fn:B}} a\footnote{C \label{fn:C}} time,\footnote{D \label{fn:D}} there\footnote{E \label{fn:E}} was\footnote{F \label{fn:F}} \ldots

\section{Now let's cross-reference these footnotes}   
As is demonstrated in \crefrange{fn:A}{fn:F}, \ldots

\noindent
As additionally noted in \cref{fn:F,fn:A,fn:D,fn:E,fn:B}, \ldots
\end{document}

在此处输入图片描述 在此处输入图片描述

当然,该cleveref软件包的交叉引用命令不仅适用于脚注,还适用于几乎所有可以给出的项目label- 方程式,章节,图表,表格,算法等等。

最后,请确保您的系统上有最新版本的cleveref软件包,因为软件包的作者最近对其进行了重大更新和升级。例如,\creflastconjunction除非您有最新版本的软件包,否则 MWE 中使用的宏可能无法工作。

答案3

从版本 1.0(2021/01/21)开始,fnpct原生支持多个脚注的范围¹:

\documentclass{article}
\usepackage{fnpct}
\setfnpct{ranges}
\begin{document}
This text bears a multiplicity of footnotes%
\footnote{Lorum}\footnote{ipsum}\footnote{dolor}%
\footnote{sit}\footnote{amet,}\footnote{consectetur}%
\footnote{adipisicing}\footnote{elit}
 which are referenced as one footnoterange.
\end{document}

在此处输入图片描述

在此处输入图片描述


  1. 致谢坦率为了之前曾建议过这个功能

相关内容