
Во многих книгах есть колонтитулы, из которых можно легко найти концевые сноски и страницы, к которым они относятся. Они могут быть в конце каждой главы или в конце книги. Для концевых сносок колонтитулы имеют вид «Примечания к стр. 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. Она должна появиться примерно через день. Спасибо всем за помощь!