Верхние колонтитулы для концевых сносок: Примечания к стр. xx–yy

Верхние колонтитулы для концевых сносок: Примечания к стр. xx–yy

Во многих книгах есть колонтитулы, из которых можно легко найти концевые сноски и страницы, к которым они относятся. Они могут быть в конце каждой главы или в конце книги. Для концевых сносок колонтитулы имеют вид «Примечания к стр. xx–yy».конечные головкипакет позволяет запускать заголовки этой формы длястандартный,комаскрипт, имемуарыклассы. Это работало для меня некоторое время назад с мемуарами, но теперь это сломано и выдает сообщение об ошибке,Неопределенный стиль страницы. Этот 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принимают четыре аргумента, как \makeevenheadи и \makeoddhead, первый из которых — имя стиля страницы.

Я не могу понять, почему это работает со старой версией мемуаров ;-)

Честно говоря, я предполагаю, что ошибка была всегда, endheadsно memoirнедавно проверила, существует ли pagestyle. Поскольку пустота установлена ​​по умолчанию, она не делает много плохого, если команды не выполняются должным образом.

В любом случае вам следует сообщить об этом разработчику endheads.

В качестве быстрого решения вы можете отключить неправильные вызовы перед \makeevenfootзагрузкой \makeoddfoot, endheadsа затем вызывать правильные, например, так:

\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

Я исправил ошибку, и новая версия endheads была отправлена ​​в CTAN. Она должна появиться примерно через день. Спасибо всем за помощь!

Связанный контент