BOOK 类中每个部分的“摘要”

BOOK 类中每个部分的“摘要”

\part有没有办法在书籍类中每个章节的开头添加一个小段落(一种摘要) ?我知道有很多方法可以做到这scrreprt一点,但我需要保留我的书籍类...如果可能的话,我希望将此段落与部分标题放在同一页上。

提前感谢您的回答

布赖斯

答案1

您可以定义一个partwithabstract环境:

\documentclass[oneside]{book}

\usepackage{xpatch}

\makeatletter
\xpatchcmd{\part}{\null\vfil}{\vspace*{.1\textheight}}{}{}

\providecommand{\abstractname}{Abstract}
\newenvironment{partwithabstract}
  {\begingroup\let\@endpart\relax\part@withabstract}
  {\endquotation\endgroup\@endpart}
\newcommand{\part@withabstract}{\@dblarg\part@@withabstract}
\def\part@@withabstract[#1]#2{%
  \part[#1]{#2}%
  \vfil
  \begin{center}\bfseries\abstractname\vspace{-.5em}\vspace{\z@}\end{center}
  \quotation
}
\makeatother

\usepackage{lipsum}

\begin{document}

\tableofcontents

\begin{partwithabstract}{First Part}
\lipsum[1-2]
\end{partwithabstract}

\begin{partwithabstract}[Second for the TOC]{Second Part}
\lipsum[2]
\end{partwithabstract}

\end{document}

在此处输入图片描述

主要的变化是标题设置在从顶部开始的固定高度;摘要在剩余空间中垂直居中(您有责任使其适合)。

\vfil如果在\vfill的定义中改为\part@@withabstract,即

\def\part@@withabstract[#1]#2{%
  \part[#1]{#2}%
  \vfill
  \begin{center}\bfseries\abstractname\vspace{-.5em}\vspace{\z@}\end{center}
  \quotation
}

摘要将与底部边距齐平。

在此处输入图片描述

\abstractname如果愿意,您可以删除相关位:要删除的代码是

  \begin{center}\bfseries\abstractname\vspace{-.5em}\vspace{\z@}\end{center}

技术文档oneside只是为了并排显示两个部分页面。

答案2

abstract从课堂上复制了定义article并做了一些修改,也定义了\abstractname

此外,还有一个命令\injectabstract在之前生效\@endpart,即在部分标题排版之后。

\injectabstract检查是否\@localabstract已定义,并相应地排版摘要,如果未定义,则不执行任何操作。

\localabstract是一个包装命令,用于存储下一个摘要的内容。

对于每个部分都应该有这样的摘要\localabstract和其使用的相关内容。

\documentclass[notitlepage]{book}

\usepackage{xpatch}

\makeatletter

\newcommand{\abstractname}{Abstract}
\if@titlepage
\newenvironment{abstract}{%
  \null\vfil
  \@beginparpenalty\@lowpenalty
  \begin{center}%
        \bfseries \abstractname
        \@endparpenalty\@M
      \end{center}}%
     {\par\vfil\null\endtitlepage}
\else
  \newenvironment{abstract}{%
      \if@twocolumn
        \section*{\abstractname}%
      \else
        \small
        \begin{center}%
          {\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}%
        \end{center}%
        \quotation
      \fi}
      {\if@twocolumn\else\endquotation\fi}
\fi

\newcommand{\localabstract}[1]{%
  \def\@localabstract{#1}%
}

\newcommand{\injectabstract}{%
  \@ifundefined{@localabstract}{%
  }{%
    \begin{abstract}
      \@localabstract%
  \end{abstract}%
  }
  \let\@localabstract\relax%
}

\xpretocmd{\@endpart}{%
  \injectabstract\par%
}{}{}

\makeatother

\usepackage{blindtext}

\begin{document}
\localabstract{\blindtext}
\part{Foo}

\part{Foobar}
\end{document}

在此处输入图片描述

答案3

很简单的:

\documentclass{book}
\usepackage{xpatch}
\makeatletter
\xpretocmd{\@endpart}{%
  \ifx\@abstract\@empty\else
    \bigskip
    \begin{quote}\@abstract\end{quote}
    \global\let\@abstract\@empty
  \fi
}{}{}
\newcommand{\partabstract}[1]{%
  \renewcommand{\@abstract}{#1}%
}
\newcommand{\@abstract}{}
\makeatother
\usepackage{lipsum}

\begin{document}
\partabstract{\lipsum[1-2]}
\part{First Part}

\chapter{First Chapter}
\lipsum

\partabstract{\lipsum[3]}
\part{Second Part}

\chapter{Second Chapter}
\lipsum

\part{Third Part}
\chapter{Third Chapter}
\lipsum

\end{document}

相关内容