使用 titlesec 和 topsection 创建自定义章节标题

使用 titlesec 和 topsection 创建自定义章节标题

尝试格式化我的笔记,这些笔记被分成几个小模块,但属于一个主题/课程的一部分。我希望能够快速滚动到某个模块并从那里查看所有内容,并使用描述该模块的自定义标题来分隔模块。

首先,是否可以使用titlesec\topsection(如果不可以,那么是否可以使用section*)?

如果可以使用titlesec,那么有人可以帮忙格式化它吗 - 我有一个大致的想法和来自文档的代码titlesec,但需要更多的帮助来编辑它,以便它适合我正在处理的文档。

以下是我想做的事情的总体想法: 在此处输入图片描述

以下是文档中的代码titlesec

\titleformat{\chapter}[display]
{\bfseries\Large}
{\filleft\MakeUppercase{\chaptertitlename} \Huge\thechapter}
{4ex}
{\titlerule
\vspace{2ex}%
\filright}
[\vspace{2ex}%
\titlerule]

简而言之:

  • 代码需要大量编辑吗section?如果需要,需要编辑哪些内容?
  • 如何将“章节”文本编辑为“模块”?
  • 为了跟踪模块的数量,我是否只需定义一个计数器?
  • 是否可以在左侧显示模块标题文本并在右侧显示简短描述?

如果有人能提供一些见解,并提供一个我可以使用的基本示例,那就太好了。谢谢!

答案1

您可以定义自己的命令,\module并将描述作为尾随可选参数。

\documentclass[a4paper,oneside]{book}
\usepackage{titlesec}

\NewDocumentCommand{\module}{O{#2}mO{}}{\chapter[#1]{{#3}{#2}}}

\NewDocumentCommand{\makemoduletitle}{m}{%
  \makemoduletitleaux#1%
}
\NewDocumentCommand{\makemoduletitleaux}{mm}{%
  #2\hfill\normalfont\footnotesize\begin{tabular}{@{}l@{}}#1\end{tabular}%
}

\titleformat{\chapter}[display]
  {\bfseries\Large}
  {\filleft\MakeUppercase{Module} \Huge\thechapter}
  {4ex}
  {\titlerule\vspace{2ex}\filright\makemoduletitle}
  [\vspace{3ex}\titlerule]

\titleformat{name=\chapter,numberless}[display]
  {\bfseries\Large}
  {}
  {4ex}
  {\titlerule\vspace{2ex}\filright}
  [\vspace{2ex}\titlerule]

\begin{document}

\tableofcontents
\clearpage

\thispagestyle{plain}
\begingroup
\let\clearpage\relax\let\cleardoublepage\relax

\module{The title} % no description

\module{The title}[This is the description \\ of this module]

\endgroup

\end{document}

示例中的附加代码只是为了在同一页面上显示两个标题。也只是oneside为了制作较小的图片。

在此处输入图片描述

相关内容