我对 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}