Elegantbook模板双面

Elegantbook模板双面

我想用 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}

我真的不能说出文档类的作者在这里想要做什么,但是当该选项处于活动状态时,这会在每一页上打印单词“beforechap” twoside

一个侵入性最小的修补程序是将其放置在文档的开头,这样就可以删除烦人的单词:

\makeatletter
  \renewcommand*{\cleardoublepage}{\clearpage\if@twoside \ifodd\c@page\else
  \hbox{}%
  \thispagestyle{empty}%
  \newpage%
  \if@twocolumn\hbox{}\newpage\fi\fi\fi}
\makeatother

请注意,存在更新版本在 GitHub 上其中这个错误显然已经修复。不过,我不确定这个文档类的维护状态,所以我建议不要使用它。

相关内容