如何让 LaTeX 在 99 之后重置编号?

如何让 LaTeX 在 99 之后重置编号?

我正在写一本书,里面有很多脚注。它们超过了 99 个,所以我有 3 位数字的脚注,这很尴尬。我怎样才能让 LaTeX 在 99 个之后重置编号?

答案1

包裹alphalph通过方法支持这种编号wrap。以下示例定义了一个格式化命令\twodigitwrap,它将编号换行为在 99 之后显示 1。脚注值不变,只是外观改变:

\documentclass{article}
\usepackage{alphalph}

\makeatletter
% \@twodigitwrap defines the symbols for \twodigitwrap
\newcommand*{\@twodigitwrap}[1]{%
  \ifnum#1<100 %
    \number#1%
  \else
    \@ctrerr
  \fi
}
\newalphalph{\twodigitwrap}[wrap]{\@twodigitwrap}{}
\makeatother

\renewcommand*{\thefootnote}{\twodigitwrap{\value{footnote}}}

\begin{document}
  Lorem\footnote{Lorem}
  ipsum\footnote{ipsum}
  dolor\footnote{dolor}
  \addtocounter{footnote}{94}
  \dots\space
  Donec\footnote{Donec}
  varius\footnote{varius}
  orci\footnote{orci}
  eget\footnote{eget}
  risus\footnote{risus}.
\end{document}

结果

答案2

您可以按页或按章设置脚注编号,以免读者感到困惑。对于每页,您必须显示文档类别。

\documentclass{article}
\usepackage[perpage]{footmisc}

\begin{document}
  \footnote{Some footnote}
  text here
  \clearpage
  \footnote{Some footnote}
  text here
  \clearpage
  \footnote{Some footnote}
  text here
  \clearpage
\end{document}

答案3

我认为这种疯狂行为的背后是有某种方法的……

下面我使用字符串比较(通过\pdfstrcmp;需要 e-TeX)来检查计数器的步进是否已完成footnote。如果是,则执行另一项检查以重置计数器。

在此处输入图片描述

\documentclass{article}

\makeatletter
% Taken from latex.ltx and modified
\def\stepcounter#1{%
  \ifnum\pdfstrcmp{#1}{footnote}=0 % Check if counter is footnote
    \ifnum\value{footnote}=99 % Check if value should be reset
      \setcounter{footnote}{0}% Reset footnote counter
    \fi
  \fi
  \addtocounter{#1}\@ne
  \begingroup
  \let\@elt\@stpelt
  \csname cl@#1\endcsname
  \endgroup}
\makeatother

\usepackage[margin=1.5in,paper=a6paper]{geometry}

\begin{document}

First\footnote{First}. % 1
Second\footnote{Second}. % 2
\setcounter{footnote}{97}%
Third\footnote{Third}. % 98
Fourth\footnote{Fourth}. % 99
Fifth\footnote{Fifth}. % 1

\end{document}

相关内容