自动在所有章节末尾添加装饰

自动在所有章节末尾添加装饰

接受的答案这个问题得到了我想要的答案的一半。我想为我的所有(许多)章节自动实现这种章节结尾装饰。MWE 基于提供的解决方案图哈米

\documentclass{book}
\usepackage{kantlipsum}
\begin{document}
\chapter{Chapter one}
\kant[1-3]

%\decoration
\ifdim\dimexpr\pagegoal-\pagetotal-\baselineskip\relax>.05\textheight
\begin{center}
\rule{3cm}{0.5pt}
\end{center}
\fi
\chapter{Chapter two}
\kant[1-3]

\end{document}

只有在这个例子中,这才会在第 1 章的结尾产生装饰,而不是第 2 章的结尾 -\relax我相信这不是因为值。我希望我的所有章节(不包括前言和后记)都有这种装饰。我真的需要在每章末尾手动输入这个或自定义宏吗?

答案1

此代码将在每章末尾添加装饰。

\makedecoration在每个 之前执行\chapter,修饰前一章,如果 backmater 不存在,则在文档末尾执行,以修饰最后一章。如果未编号的章节后面跟着编号的章节,则也适用于未编号的章节。

前言材料(例如\tableofcontents或章节)将不会被装饰;后记也不会被装饰。

\documentclass{book}
\usepackage{kantlipsum}

%%**************************************************** added <<<<<<<<<<<<
\usepackage{etoolbox}% needed <<<<<<<<<<<<<

\newcommand{\insertdecoratation}{% define the decoration
    \begin{center}
        \rule{3cm}{0.5pt}
\end{center}}

\newcommand{\makedecoration}{%
    \ifnum\value{chapter}>1%% decorate from chapter 2 to before last
    \ifdim\dimexpr\pagegoal-\pagetotal-\baselineskip\relax>.05\textheight%
        \insertdecoratation%
    \fi\fi%
    \ifnum\value{chapter}=1%decorate  chapter 1 
    \ifdim\dimexpr\pagegoal-\pagetotal-\baselineskip\relax>.05\textheight%
        \insertdecoratation%
    \fi\fi%
}
\makeatletter
\renewcommand\mainmatter{%
        \pretocmd{\chapter}{\makedecoration}{}{}% decorate previous chapter
        \AtEndDocument{\makedecoration}% decorate the last chapter if no back matter
    \cleardoublepage
    \@mainmattertrue
    \pagenumbering{arabic}}
   \renewcommand\backmatter{%
    \makedecoration % decorate last chapter of mainmatter
    \renewcommand{\makedecoration}{}% now do nothing
    \if@openright
    \cleardoublepage
    \else
    \clearpage
    \fi
    \@mainmatterfalse}
\makeatother

%%************************************************
    
\begin{document}
    
    \frontmatter
    
    \tableofcontents
    
    \chapter{Introduction}
    \kant[1-2]
    
    \mainmatter
    \chapter{Chapter One}
    \kant[1-3]
    
    \chapter{Chapter Two}
    \kant[1-3]
    
    \chapter{Chapter Three}
    \kant[1-3]
    
    \chapter*{Chapter Four}
    \kant[1-2]
        
    
    %   BACK MATTER
    \backmatter     
    \chapter{Appendix}
    \kant[1-2]
    
\end{document}

在此处输入图片描述

相关内容