
Quero escrever um texto frente e verso com o modelo elegantebook. Parece que há um bug no modelo. Quando escolho a opção de dois lados, o elegantebook escreve a palavraantesem cada página vazia.
Como posso consertar isso?
Aqui está o exemplo de código mínimo:
\documentclass[12pt,twoside]{elegantbook}
\begin{document}
\maketitle
\frontmatter
\tableofcontents
\mainmatter
\chapter{xy}
\chapter{yz}
\end{document}
Responder1
Acho que a elegantbook
classe de documento que foi distribuída com o MiKTeX tem bugs. No CTAN, a classe está marcada como obsoleta, portanto não está claro para mim qual é o status atual ou a versão mais recente desta classe de documento.
De qualquer forma, na versão mais recente distribuída com o MiKTeX (ou seja, 2022/04/09 v4.3) podemos encontrar as seguintes linhas (linha 1387 e seguintes elegantbook.cls
);
\renewcommand*{\cleardoublepage}{\clearpage\if@twoside \ifodd\c@page\else
\hbox{}%
\thispagestyle{empty}%
beforechap\newpage%
\if@twocolumn\hbox{}\newpage\fi\fi\fi}
Na verdade, não posso dizer o que o autor da classe do documento pretendia fazer aqui, mas isso imprimirá a palavra "beforechap" em todas as páginas quando a twoside
opção estiver ativa.
Um hotfix minimamente invasivo seria colocar isso no pramble do seu documento e assim excluir a palavra irritante:
\makeatletter
\renewcommand*{\cleardoublepage}{\clearpage\if@twoside \ifodd\c@page\else
\hbox{}%
\thispagestyle{empty}%
\newpage%
\if@twocolumn\hbox{}\newpage\fi\fi\fi}
\makeatother
Observe que existe uma versão mais recenteno GitHubem que este bug aparentemente foi corrigido. Ainda assim, não tenho certeza sobre o status de manutenção desta classe de documento, então prefiro sugerir não usá-la.