Manyfoot 撰写回忆录

Manyfoot 撰写回忆录

到目前为止,我已经article使用manyfoot和其perpage选项输入了一个文档,我想将其添加到memoir类日志中,以及其他作者的更多贡献。当按原样使用该文档时,我第一次编译它时,它会Counter too large多次在脚注命令处停止并出现错误,之后我必须再运行它四五次,直到它不再给我Label(s) may have changed. Rerun to get cross-references right.-warnings。现在,当我将文档类型更改为memoir类时,第一次运行时没有出现任何错误,但是标签警告,即使在运行十次后也不会停止。该文档使用\footnote(大约 25 次,可能不相关(?)),\footnoteA(大约 50)和\footnoteB(大约 250),设置如下:

\usepackage[perpage,ruled,para]{manyfoot}
\DeclareNewFootnote{A}[alph]
\DeclareNewFootnote[para]{B}

在 MWE 中,这个问题没有出现,可能需要相当多的脚注才会出现。manyfoot 和 memoir 之间是否存在已知的不兼容性?我是否应该切换到另一个包来处理脚注,或者memoir内置的脚注是否就足够了?

我在这里担心的另一点是脚注设置在序言中完成。由于我正在处理更多贡献,其他人也使用 manyfoot,据我所知,这将使他们每个人都无法拥有他们需要的自己的脚注设置,除非我先单独编译它们并将它们粘合在一起pdfpages,这又会使目录和页码编号更加困难。我想这是一个影响脚注以外的其他方面的一般问题...

答案1

问题的原因是\alphLaTeX 中定义了分页符。如果您尝试使用超过 26 个不同的字母,则会出错。如果您有每页脚注,LaTeX 不知道页面的结束位置,直到它收集了太多材料而无法在页面上容纳。第一次运行后,“每页”选项会记住分页符的位置,因此脚注标记会稳定到其最终值。

想必memoir这样做比 更聪明一些article + manyfoot

一个解决方法是重新定义\alph以消除错误,然后生成一些明显错误的内容(所以如果你真的试图在一页上放置超过 26 个脚注,你会注意到它!)

\makeatletter
\def\@alph#1{%
  \ifcase#1\or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or
   k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or
    y\or z\else ?a?\fi}
\def\@Alph#1{%
  \ifcase#1\or A\or B\or C\or D\or E\or F\or G\or H\or I\or J\or
   K\or L\or M\or N\or O\or P\or Q\or R\or S\or T\or U\or V\or W\or X\or
    Y\or Z\else ?A?\fi}
\def\@fnsymbol#1{\ensuremath{\ifcase#1\or *\or \dagger\or \ddagger\or
   \mathsection\or \mathparagraph\or \|\or **\or \dagger\dagger
   \or \ddagger\ddagger \else ???\fi}}
\makeatother

这样将为您提供序列 abc ... xyz ?a? ?a? ?a? ...,大写字母也是如此,而??? 则表示太多脚注符号。

一个更简单的解决方法是将错误消息更改为警告,但这样做意味着没有什么出现在应该打印错误计数器的文档中。

\makeatletter
\gdef\@ctrerr{%
  \@latex@warning{Counter too large}}
\makeatother

相关内容