删除章节编号中的零

删除章节编号中的零

我有一行代码可以隐藏“章节”,并且只以 格式显示每个章节的标题"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

请注意,我使用了\bfserieslong,而不是 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}

输出:目录:

目录

第一章包含一些盲文:

第1章

答案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}

在此处输入图片描述

相关内容