尾注的运行标题:第 xx-yy 页注释

尾注的运行标题:第 xx-yy 页注释

许多书都有页眉,你可以从中方便地找到尾注和它们引用的页面。它们可能位于每章的末尾,也可能位于书的末尾。页眉的形式为“第 xx-yy 页注释”。端头软件包允许运行这种形式的标题标准柯玛脚本, 和回忆录类。它以前在 memoir 上对我有用,但现在它坏了,并显示错误消息,未定义页面样式。当 endheads 包(及其支持命令)被激活时,此 mwe 会中断。有人能建议在使用时可以做些什么吗回忆录端头包来让它工作?

\documentclass[openany,oldfontcommands]{memoir}
\usepackage{endnotes}
\usepackage{ifthen}
\usepackage{endheads} % requires oldfontcommands option for memoir class    
    \setupendnoteheaders 
    \titleinnotestrue
    \setstyleforchapternotebegin{\begin{flushleft}\begin{bf}\normalsize}
    \setstyleforchapternoteend{\end{bf}\end{flushleft}}

\begin{document}
\chapter{One}
\resetendnotes
\setcounter{secnumdepth}{0}
Text for chapter one with an endnote.   \endnote{chp 1 fn 1}

\chapter{Two}
\resetendnotes
\setcounter{secnumdepth}{0}
This is a second endnote. It is the first endnote of chp. 2.
\endnote{chp 2 fn 1 or second fn of the book}. Here is a second endnote of chp. 2. \endnote{chp2 fn 2}

\newpage
\addcontentsline{toc}{chapter}{\protect\numberline{} \the\notescontentsname}
\theendnotes
\end{document}

答案1

样式文件中有一个错误endheads。它包含以下几行:

\@ifclassloaded{memoir}{
\makepagestyle{endnotesstyle}
\makeevenhead{endnotesstyle}{{\small\textrm{\thepage}}}{{\small{\em \the\notesheadername~\mymarks}}}{}
\makeoddhead{endnotesstyle}{}{{\small{\em \the\notesheadername~\mymarks}}}{{\small\textrm{\thepage}}}
\makeevenfoot{}{}{}
\makeoddfoot{}{}{}

这显然是错误的,因为\makeevenfoot和像和\makeoddfoot一样接受四个参数,第一个是页面样式的名称。\makeevenhead\makeoddhead

我不明白为什么这适用于旧版本的回忆录;-)

说实话,我认为这个错误一直存在,endheadsmemoir最近正在检查页面样式是否存在。由于默认为空,因此如果命令执行不正确,它不会造成太大错误。

无论如何,你应该向的维护者报告endheads

作为一个快速修复,您可以在加载之前禁用对\makeevenfoot和的错误调用,然后调用正确的调用,如下所示:\makeoddfootendheads

\let\origmakeevenfoot\makeevenfoot
\def\makeevenfoot#1#2#3{}
\let\origmakeoddfoot\makeoddfoot
\def\makeoddfoot#1#2#3{}
\usepackage{endheads} % requires oldfontcommands option for memoir class    
\let\makeevenfoot\origmakeevenfoot
\let\makeoddfoot\origmakeoddfoot
\makeevenfoot{endnotesstyle}{}{}{}
\makeoddfoot{endnotesstyle}{}{}{}

不幸的是,没有更干净的补丁,因为声明是在包中直接调用的,而不是作为可以修补的命令的一部分。

一旦软件包的正确版本发布,请务必立即删除此快速修复程序。

或者,您可以制作样式文件的本地副本并立即替换其中的错误声明。同样,请记住,一旦发布样式的修复版本,请立即删除本地副本。

答案2

我已经修复了错误,新版本的端头已发送到 CTAN。它应该会在一两天内上线。感谢大家的帮助!

相关内容