ToC-标题格式问题

ToC-标题格式问题

我对 Latex 还比较陌生,遇到了一个自己无法解决的问题。我从朋友那里得到了一些用于格式化章节标题的命令,这些命令效果很好,但不幸的是,它不适用于目录标题和带有星号 ( \chapter*{}) 的章节。有人能帮忙解决这个问题吗?

    \documentclass{book}

    \makeatletter
    \renewcommand{\@makechapterhead}[1]{%
    \vspace*{1 pt}%
    {\setlength{\parindent}{0pt} \raggedright \normalfont
    \bfseries\LARGE\thechapter.\ #1
    \par\nobreak\vspace{20 pt}}}
    \makeatother

    \begin{document}
    \tableofcontents
    \chapter*{Abstract}
    \chapter{Introduction}
    \section{abc}
    \section{def}
    \chapter{Results}
    \section{ABC}
    \end{document}

答案1

相应地重新定义\@makeschapterhead(注意“s”)。

\documentclass{book}

\makeatletter

\renewcommand{\@makechapterhead}[1]{%
\vspace*{1 pt}%
{\setlength{\parindent}{0pt} \raggedright \normalfont
\bfseries\LARGE\thechapter.\ #1
\par\nobreak\vspace{20 pt}}}

\renewcommand{\@makeschapterhead}[1]{%
\vspace*{1 pt}%
{\setlength{\parindent}{0pt} \raggedright \normalfont
\bfseries\LARGE#1
\par\nobreak\vspace{20 pt}}}

\makeatother

\begin{document}
\tableofcontents
\chapter*{Abstract}
\chapter{Introduction}
\section{abc}
\section{def}
\chapter{Results}
\section{ABC}
\end{document}

答案2

让 ”标题安全« 完成这项工作。它将需要对编号和未编号章节进行设置。

\documentclass[11pt]{book}
\usepackage[T1]{fontenc}

\usepackage{titlesec}
\titleformat{\chapter}[block]
{\normalfont\LARGE\bfseries}
{\thechapter.}
{1em}
{\LARGE}

\titleformat{name=\chapter,numberless}[block]
{\normalfont\LARGE\bfseries}
{}
{0pt}
{\LARGE}

\usepackage{blindtext}

\begin{document}
  \tableofcontents

  \blinddocument
\end{document}

相关内容