使用 titlesec 模拟书籍类别划分并进行修改

使用 titlesec 模拟书籍类别划分并进行修改

简而言之:

  • 先决条件:需要模拟书籍课程\part\chapter使用titlesec
  • 将两者更改为挂起,从同一页面开始
  • 添加titlerule\chapter

我想优化我那被黑的模板。

首先,由于无法在titlesec不定义整个章节标题/标题的情况下进行下面的更改,因此我需要它与标准类预定义的完全相同book。这需要作为起点。

然后我想使用titlesec来制作\part\chapter“挂起”(像\titleformat{\part}[hang])并在同一页面上显示以下章节文本:

不是这个:

      Part A     
     Parttitle

-------newpage--------
Chapter 1

Chaptertitle

但是这个:

A Parttitle

1 Chaptertitle

最后我需要替换以下新命令

\newcommand{\addchapterunderline}{\vspace{-4ex}\hrule height 1.5pt \vspace{7ex}\thispagestyle{empty}}

对于\chapterAND \chapter*,我至今为止是这样使用的:

\chapter[Test]{Test}
\addchapterunderline

最终结构应如下所示\titlerule[1.5pt]

A Parttitle

B Chaptertitle
________________________

Lorem ipsum ...

在这个例子中,我已经尽了最大努力(<-- 仍然是初学者)。但我无法证明这是否是book-class-like,仅凭我上面的更改,因为我无法在中找到标题定义book.cls

\documentclass{book}

        \usepackage[ngerman]{babel}             
        \usepackage[T1]{fontenc}
        \usepackage{lmodern}
        \usepackage[ansinew]{inputenc}      
        \usepackage{tgheros}                            
        \usepackage[expert]{mathdesign}     
        \usepackage{amssymb}                            
        \usepackage{ae,aecompl}                     
        \usepackage{charter}                            

%\newcommand{\addchapterunderline}{\vspace{-4ex}\hrule height 1.5pt \vspace{7ex}\thispagestyle{empty}} %I don't want to use this

\usepackage{titlesec}

\titleclass{\part}{top}
\titleformat{\part}[hang]
  {\usefont{T1}{qhv}{b}{n}\selectfont\huge} % global formatting (number and title) 
    {\thepart} 
    {20pt} %spacing between number and title
    {\huge}
\titlespacing*{\part}
   {0pt}% left
   {1cm}% before
   {1.2em}% after
\titleclass{\chapter}{straight}
\titleformat{\chapter}[hang]
  {\usefont{T1}{qhv}{b}{n}\selectfont\huge} % global formatting (number and title)
    {\thechapter}  % label: number and its formatting
    {20pt} %spacing between number and title
    {\huge}[\vspace{2ex}{\titlerule[1.5pt]}]
\titlespacing*{\chapter}
   {0pt}% left
   {1cm}% before
   {6.2em}% after



\begin{document}
\part{This is a Testpart}
\chapter{This is a Testchapter}
\chapter*{This is a unnumbered Testchapter}
\end{document}

答案1

没有关于同一部分中其他章节格式的信息,因此我假设它们都应该具有相同的行为(特别是,它们不应该从新的奇数页开始);也没有关于部分标题前垂直空间的信息,因此我假设了一些设置(如果需要,可以轻松更改)。以下是一种可能性:

\documentclass{book}
\usepackage{titlesec}

\renewcommand\thepart{\Alph{part}}
\titleclass{\part}{top}
\titleclass{\chapter}{straight}

\titleformat{\part}[hang]
  {\normalfont\huge\bfseries}{\thepart}
  {1em}{\Huge}
\titleformat{\chapter}[hang]
  {\normalfont\huge\bfseries}{\thechapter}
  {1em}{\Huge}[\vskip8pt{\titlerule[1.5pt]}]

\titlespacing*{\part}
  {0pt}{50pt}{40pt}
\titlespacing*{\chapter}
  {0pt}{0pt}{20pt}

\begin{document}

\part{Test Part One}
\chapter{Test Chapter One}

\end{document}

在此处输入图片描述

在对原始问题发表评论后,只有第一章应该具有所提到的行为;同一部分的其他章节应该\cleardoublepage从 book.cls 发出标准命令;这可以使用条件测试和etoolbox包自动实现:

\documentclass{book}
\usepackage{titlesec}
\usepackage{etoolbox}

\renewcommand\thepart{\Alph{part}}
\titleclass{\part}{top}
\titleclass{\chapter}{straight}

\titleformat{\part}[hang]
  {\normalfont\huge\bfseries\raggedright}{\thepart}
  {1em}{\Huge}
\titleformat{\chapter}[hang]
  {\normalfont\huge\bfseries\raggedright}{\thechapter}
  {1em}{\Huge}[\vskip8pt{\titlerule[1.5pt]}]

\titlespacing*{\part}
  {0pt}{50pt}{40pt}
\titlespacing*{\chapter}
  {0pt}{0pt}{20pt}

\pretocmd{\chapter}{\ifnum\value{chapter}>0 \newpage\thispagestyle{plain}\cleardoublepage\else\fi}{}{}{}

\begin{document}

\part{Charakterisierung des französischen Automobilwesens in Berlin} \chapter{Charakterisierung des französischen Automobilwesens in Berlin} \chapter{Charakterisierung des französischen Automobilwesens in Berlin}

\end{document}

包含部分标题的第一页图像:

在此处输入图片描述

相关内容