在 \part 之后立即将页码添加到偶数页

在 \part 之后立即将页码添加到偶数页

朋友们,我以前从未使用过\part{},所以请忍耐一下。=)

考虑以下代码:

\documentclass[twoside]{book}
\usepackage{lipsum}

\begin{document}

\pagestyle{empty}
\begin{titlepage}
My title page.
\end{titlepage}

\cleardoublepage
\pagestyle{plain}

\frontmatter
\tableofcontents
\clearpage
\mainmatter

\part{Hello World}
\chapter{Test one}
\lipsum[1]
\section{My section one}
\lipsum[1]

\part{Goodbye World}
\chapter{Test two}    
\lipsum[1]
\section{My section two}
\lipsum[1]

\end{document}

我希望在偶数页后面紧接着第十部分标题。这将是我示例中的第 6 页和第 10 页。

页面

我可以重新定义empty页面样式,使其充当plain,但我不想这样做。事实上,我试过这样做 - 并且成功了 - 但我empty的原始文档中也需要页面样式。

我认为\part它就像一个图书分类,所以它应该看起来像另一个“封面”(这可以解释为什么封面上没有数字)...页面背面)。就我而言,我需要该号码在那里。

有人有想法吗?

答案1

但是您可以重新定义empty页面样式,plain并使用 , 在本地执行此操作\begingroup\endgroup例如(只有第一部分之后的页面才会收到编号):

\documentclass[twoside]{book}
\usepackage{lipsum}

\begin{document}

\pagestyle{empty}

\begin{titlepage}
My title page.
\end{titlepage}

\cleardoublepage

\pagestyle{plain}

\frontmatter

\tableofcontents

\clearpage

\mainmatter

\begingroup
\makeatletter
\let\ps@empty\ps@plain
\makeatother

\part{Hello World}

\endgroup\chapter{Test one}
\lipsum[1]

\section{My section one}
\lipsum[1]

\part{Goodbye World}

\chapter{Test two}    
\lipsum[1]

\section{My section two}
\lipsum[1]

\end{document}

评论:

作为弗兰克·米特尔巴赫在他的评论中说,引入跨LaTeX概念的分组可能“很危险”。在这个特定情况下,没有什么危害,但在章节和节的情况下,可能已经看到了副作用(例如,缩进不再被抑制)。

答案2

这是一个补丁etoolbox对于部分页面之后的编号页面:

\usepackage{etoolbox}
\makeatletter
\patchcmd{\@endpart}{empty}{plain}
\makeatother

该宏\@endpart导致了empty页面样式问题,已被plain本补丁所取代。

答案3

\@endpart您还可以从文件中重新定义宏book.cls,如下所示:

\def\@endpart{\vfil\newpage
          \if@twoside
           \if@openright
            \null
            \thispagestyle{empty}% the instruction I believe you want to remove
            \newpage
           \fi
          \fi
          \if@tempswa
            \twocolumn
          \fi}

如果我正确理解了您的解释,您所需要的就是抑制指令\thispagestyle{empty}。这可以通过以下方式实现:(i) 在文件中注释掉此指令book.cls并将类文件保存到新文件(例如“mybook.cls”)-请注意,将更改保存在现有文件名下非常违反 LPPL - 或 (ii) 通过在文档的序言中提供此宏的修改定义,夹在\makeatletter\makeatother指令之间:

\makeatletter
\def\@endpart{\vfil\newpage
          \if@twoside
           \if@openright
            \null
            %%\thispagestyle{empty}% this instruction is now commented out
            \newpage
           \fi
          \fi
          \if@tempswa
            \twocolumn
          \fi}
\makeatother

另请参阅@StefanKottwitz 的回答,了解使用该软件包的工具实现此目标的方法etoolbox

答案4

在 中memoir,这非常简单(这就是为什么我 memoir)在序言中:

\aliaspagestyle{afterpart}{plain}  % (Instead of plain, whatever you want)

相关内容