脚注の見出し: pp. xx–yy の注記

脚注の見出し: pp. xx–yy の注記

多くの本には、巻末の注とそれが参照するページを簡単に見つけることができるランニングヘッダーがあります。各章の終わりや本の終わりにある場合があります。巻末の注のランニングヘッダーは、「pp. xx–yyへの注」という形式です。エンドヘッドパッケージでは、この形式のヘッダーの実行を許可します。標準コマ文字、 そして伝記クラス。しばらく前にmemoirで動作しましたが、今は壊れていてエラーメッセージが表示されます。未定義のページスタイルこのmweは、endheadsパッケージ(およびそのサポートコマンド)がアクティブになっているときに壊れます。伝記そしてそのエンドヘッドそれを動作させるためのパッケージですか?

\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に 4 つの引数を取り\makeevenhead\makeoddhead最初の引数はページスタイルの名前です。

なぜこれが古いバージョンのメモワールで機能するのか理解できません ;-)

正直に言うと、バグは常に存在していたと思いますendheadsが、memoir最近はページスタイルが存在するかどうかをチェックしています。空がデフォルトなので、コマンドが適切に実行されなくても大きな問題は発生しません。

とにかく、 のメンテナーに報告する必要があります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 に送信しました。1 日かそこらで公開されるはずです。ご協力いただいた皆様、ありがとうございました。

関連情報