![使用 titlesec 和 topsection 创建自定义章节标题](https://linux22.com/image/442561/%E4%BD%BF%E7%94%A8%20titlesec%20%E5%92%8C%20topsection%20%E5%88%9B%E5%BB%BA%E8%87%AA%E5%AE%9A%E4%B9%89%E7%AB%A0%E8%8A%82%E6%A0%87%E9%A2%98.png)
尝试格式化我的笔记,这些笔记被分成几个小模块,但属于一个主题/课程的一部分。我希望能够快速滚动到某个模块并从那里查看所有内容,并使用描述该模块的自定义标题来分隔模块。
首先,是否可以使用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
为了制作较小的图片。