在章节末尾添加装饰

在章节末尾添加装饰

章节末尾的半页很好地表明了章节的结束。但是,有时章节的最后一页如果只有 5-10 行,看起来会有点太空。在一些较旧的书中,你会发现章节末尾的空白处被某种装饰线填充,如下图所示。

在此处输入图片描述

有没有办法定义一个命令,测量fill章节最后一页的长度,如果长度超过一定长度,就添加装饰.7\textwidth

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

%\decoration

\chapter{Chapter two}
\kant[1-3]

\end{document}

答案1

这是一个解决方案

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

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

\end{document}

答案2

以下使用 x,y 坐标标签/标记来测量章节末尾的填充,当剩余\chapterdecoration部分超过 70% 时插入(您可以更改它)\textheight

在此处输入图片描述

\documentclass{book}
\usepackage{kantlipsum}
\usepackage{eso-pic,zref-savepos}
\AtBeginDocument{%
  \AddToShipoutPictureFG*{%
    \AtTextLowerLeft{%
      \zsaveposy{page-bottom}% Save text lower y coordinate
    }%
  }%
}
\let\oldchapter\chapter
\renewcommand{\chapter}{%
  \ifnum\value{chapter}>0\relax
    \unskip
    \zsaveposy{chap-\thechapter-y}% Save chapter's last line y coordinate
  \fi
  \insertchapterdecoration
  \oldchapter
}
\AtEndDocument{%
  \zsaveposy{chap-\thechapter-y}% Save last chapter's last line y coordinate
  \insertchapterdecoration}

\newcommand{\insertchapterdecoration}{%
  \ifdim\dimexpr\zposy{chap-\thechapter-y}sp-\zposy{page-bottom}sp+\baselineskip>.7\textheight
    \chapterdecoration
  \fi
}
\newcommand{\chapterdecoration}{%
  \vfill
  \noindent\makebox[\textwidth]{\rule{.3\textwidth}{5pt}}\par%
  \vfill
}
\begin{document}

\chapter{Chapter one}
\kant[1-3]

\chapter{Chapter two}
\kant[1-4]

\end{document}

相关内容