![有人可以告诉我这个命令是如何工作的吗?](https://linux22.com/image/306981/%E6%9C%89%E4%BA%BA%E5%8F%AF%E4%BB%A5%E5%91%8A%E8%AF%89%E6%88%91%E8%BF%99%E4%B8%AA%E5%91%BD%E4%BB%A4%E6%98%AF%E5%A6%82%E4%BD%95%E5%B7%A5%E4%BD%9C%E7%9A%84%E5%90%97%EF%BC%9F.png)
我正在尝试使我的章节不被标记为“第 1 章”、“第 2 章”等。我只希望它有编号,没有“章节”。我希望“章节”一词消失。快速的 Google 搜索向我展示了如何使用该titlesec
包实现这一点,即
\usepackage{titlesec}
\titleformat{\chapter}{}{}{0em}{\bf\LARGE}
这对我来说很管用。但是,我不喜欢不理解代码就直接使用,有人能告诉我这是什么意思吗?我试着通读了文档但我不明白为什么上述代码会导致章节前的“章节号”被省略。
答案1
由于您使用了空的第三个参数,因此不使用标签;特别是,不会使用字符串“Chapter”(或“Appendix”)作为章节标题,也不会出现计数器;但请注意,计数器不会打印在标题中,但“它仍然存在”(例如,它将显示在目录中)。
您的定义中也没有使用可选的第一个参数,因此<shape>
将默认为hang
,这是标准类中的章节标题使用的形状。
在您的描述中,您说您只想隐藏字符串“Chapter”(或“Appendix”)但保留编号,因此更好的选择是使用类似
\titleformat{\chapter}
{\bfseries\LARGE}
{\thechapter}
{0.5em}
{}
请注意,我添加了\thechapter
第三个强制参数,因此计数器将被排版,并且我\bfseries\LARGE
从第五个强制参数移动到第二个参数;这样,格式将影响标签(在本例中为计数器)和标题;使用您的设置(用于第五个参数),它只会影响标题而不会影响标签。
完整示例:
\documentclass{book}
\usepackage{titlesec}
\titleformat{\chapter}
{\bfseries\LARGE}
{\thechapter}
{0.5em}
{}
\begin{document}
\chapter{Test chapter}
Some test text
\end{document}
结果:
附带说明一下,\bf
这是一个 TeX 命令,不应在 LaTeX 文档中使用;\bfseries
而应在 LaTeX2e 文档中使用。
titlesec 的文档在第 4 页解释了 的一般语法和参数的含义\titleformat
。我认为没有必要在这里重复那里出现的内容。
答案2
就在我开始回答这个问题的时候,我看到 Gonzalo 提到了文档第 4 页,我正准备在这里重复并注释。哦,好吧。
您找到的代码:
\titleformat{\chapter}{}{}{0em}{\bf\LARGE}
从第 4 页开始文档titlesec
:
\titleformat{command}[shape]{format}{label}{sep}{before-code}[after-code]
您的示例中省略了可选参数shape
和after-code
,因此您实际上运行了
\titleformat{command}{format}{label}{sep}{before-code}
带有,且command
为空,和(应该是chapter
format
label
sep
0em
before-code
\bf\LARGE
\bfseries\LARGE
自 1994 年左右以来)。
format
对应于用于格式化整个分区的命令。在您的例子中,它是空的,或者可以将\bfseries\LARGE
源before-code
移动到那里。label
对应于命令排版部门标签和编号。您的命令为空以隐藏标签和编号,但您可以使用任何带有\titlechaptername
、\thechapter
或其他命令或文本的宏。sep
是文档分部标签和文档分部标题之间的间距。在您的情况下,0em
请将其与正文的左边距对齐。其他章节形状可能会使用此间距来控制标签和标题之间的垂直间距。before-code
是部门标题前面的代码。您的是\bf\LARGE
,但它可能包含装饰性规则、垂直空格或其他命令。如果您将格式命令放在参数中,它也可以为空format
。