我有一行代码可以隐藏“章节”,并且只以 格式显示每个章节的标题"ChapterNumber" + "." + "ChapterTitle"
。但是,目录假定为"Chapter 0"
,因此显示"0. Contents"
。有没有办法隐藏这个“0”,以便仅显示“目录”?
使用的代码:
\documentclass[a4paper,12pt,twoside]{report}
\usepackage[utf8]{inputenc}
\usepackage{titlesec}
\newcommand{\sectionbreak}{\clearpage}
\titleformat{\chapter}{}{}{0em}{\bf\LARGE\thechapter.~}
答案1
请注意,我使用了\bfseries
long,而不是 long,long 已弃用\bf
并用于\arabic{chapter}
格式化数字,您可能还想尝试\Roman{chapter}
一下。
更新:第二个版本(感谢 egreg)
由于这个答案是经过检查的答案,我将包含更正确的答案,它正确使用了的可能性\titleformat
,它有 4 个强制参数:
\titleformat{<command>}{<format>}{<label>}{<sep>}{<before-code>}
<command>
是您的情况下想要更改的分段命令\chapter
。<format>
要应用的文本格式命令是您想要使用的\bfseries\Large
<label>
如果章节有编号,则格式化标签,否则省略。您需要\arabic{chapter}.~
<sep>
<label>
是与实际标题之间的 hspace ,将其设置为{0pt}
<before-code>
是应该在标题排版之前调用的任意代码
所以你的版本\titleformat
应该是:
\titleformat{\chapter}{\bfseries\Large}{\arabic{chapter}.~}{0pt}{}
第一个版本,你不应该使用这个:
您可以检查是否\thechapter
大于零:
\documentclass[a4paper,12pt,twoside]{report}
\usepackage{titlesec}
\titleformat{\chapter}{}{}{0em}{\bfseries\LARGE\ifnum\value{chapter}>0\relax\arabic{chapter}.~\fi}
\begin{document}
\tableofcontents
\chapter{Test I}
\chapter{Test II}
\end{document}
输出:目录:
第一章包含一些盲文:
答案2
您想要以不同的方式使用\titleformat
。第三个强制参数指定\titleformat
用于编号章节的内容,而最后一个参数指定适当的标题;在这种情况下,除了打印标题之外,不应执行任何操作。
\documentclass[a4paper,12pt,twoside]{report}
\usepackage{titlesec}
\titleformat{\chapter}{\LARGE\bfseries}{\thechapter.\ }{0em}{}
\begin{document}
\tableofcontents
\chapter{Test I}
\chapter{Test II}
\end{document}