章节末尾的文字

章节末尾的文字

每个部分都从新页面开始。我想在部分末尾绘制一些形状(放置文本或图像)。这没关系。为了清晰起见,\char"2055如果到页面末尾有足够的可用空间(超过 80 毫米),请绘制较大的部分

哪个脚本在该部分结束时运行?

我怎么知道我有足够的可用空间来结束?

\newcommand{\sectionbreak}{
\clearpage\thispagestyle{headings}\vspace*{1pc}
}

将代码放在这里而不是那个。这会在第一部分开始前调用,如果新部分开始则不会调用。

答案1

您可以使用领导者。

\sectionbreak命令检查可用空间是否大于设置的最小值(此处为 2cm)。如果是,它会添加一团胶水,它实际上是一个装有装饰物的盒子,高度与可用空间一样高,这样我们就可以将装饰物放在其中居中。

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{fix-cm}

\usepackage{adforn} % for ornaments

\usepackage{lipsum} % for mock text

\newlength{\ornamentheight}
\newcommand{\sectionbreak}{%
  \par
  \setlength{\ornamentheight}{\dimexpr\pagegoal-\pagetotal\relax}%
  \ifdim\ornamentheight>2cm
    \cleaders\vbox to \ornamentheight{
      \vfill
      \centering
      \fontsize{30}{30}\selectfont
      \adforn{21}\quad\adforn{11}\quad\adforn{49}
      \vfill}%
    \vskip\ornamentheight
  \fi
  \clearpage
}

\begin{document}

\section{First}

\lipsum[1-4]

\sectionbreak
\section{Second}

\lipsum[1-5]

\sectionbreak
\section{Third}

\lipsum[2]

\sectionbreak

\end{document}

在此处输入图片描述

答案2

以下代码提供了两件事:(1)mysection用于部分的环境表单()和(2)计算页面上剩余的空间(\calcspaceleft)以及它们的使用示例。

 % secprob.tex  SE 524061 Text at end of section
\documentclass{article}
\usepackage{lipsum}
\usepackage{ifmtarg}
\makeatletter
% calculate the space left (\spaceleft) on the page
\newlength{\spaceleft}
\newcommand{\calcspaceleft}{\par \penalty-100
  \setlength{\spaceleft}{\pagegoal} 
  \addtolength{\spaceleft}{-\pagetotal}}
\newcommand{\printlogo}{\calcspaceleft\ifdim\spaceleft>1in
                        \center LOGO \par \fi}

% an environmental form for \section
\newenvironment{mysection}[2][]%
  {\@ifmtarg{#1}{\section{#2}}{\section[#1]{#2}}}%
  {\printlogo}
\makeatother


\begin{document}
\tableofcontents

\begin{mysection}{First}
  \lipsum[1]
\calcspaceleft Space left is \the\spaceleft.
\end{mysection}

\begin{mysection}[Short]{Long}
%\begin{mysection}{Long}
  \lipsum[2]
\calcspaceleft Space left is \the\spaceleft.
\end{mysection}

\begin{mysection}{Third}
  \lipsum[3]
\calcspaceleft Space left is \the\spaceleft.
\end{mysection}

\end{document}

您可以用来\calcspaceleft ... \spaceleft决定是否在您的部分的“末尾”添加一些内容(甚至将其添加到环境定义的末尾)mysection

\calcspaceleft宏基于needspace包代码。

相关内容