
Я хочу написать двусторонний текст с помощью шаблона elegantbook. Кажется, в шаблоне есть ошибка. Когда я выбираю опцию twoside, elegantbook пишет словопреждеглавана каждой пустой странице.
Как я могу это исправить?
Вот минимальный пример кода:
\documentclass[12pt,twoside]{elegantbook}
\begin{document}
\maketitle
\frontmatter
\tableofcontents
\mainmatter
\chapter{xy}
\chapter{yz}
\end{document}
решение1
Я думаю, что elegantbook
класс документа, который был распространен с MiKTeX, глючит. На CTAN класс отмечен как устаревший, поэтому мне неясно, каков текущий статус или последняя версия этого класса документа.
В любом случае, в последней версии, которая распространяется с MiKTeX (т.е. 2022/04/09 v4.3), мы можем найти следующие строки (строка 1387 и далее в elegantbook.cls
);
\renewcommand*{\cleardoublepage}{\clearpage\if@twoside \ifodd\c@page\else
\hbox{}%
\thispagestyle{empty}%
beforechap\newpage%
\if@twocolumn\hbox{}\newpage\fi\fi\fi}
Я не могу точно сказать, что именно намеревался сделать автор класса документа, но при twoside
активации этой опции на каждой странице будет выводиться слово «beforechap».
Минимально инвазивным исправлением было бы поместить это в начало вашего документа и таким образом удалить раздражающее слово:
\makeatletter
\renewcommand*{\cleardoublepage}{\clearpage\if@twoside \ifodd\c@page\else
\hbox{}%
\thispagestyle{empty}%
\newpage%
\if@twocolumn\hbox{}\newpage\fi\fi\fi}
\makeatother
Обратите внимание, что существует более новая версия.на GitHubв котором эта ошибка, по-видимому, была исправлена. Тем не менее, я не уверен в статусе обслуживания этого класса документа, поэтому я бы предпочел не использовать его.