章节标题居中

章节标题居中

在下面的 MWE 中。将标题居中放置最方便的方法是什么前言抽象的,而不是将它们设置得与左对齐?

\documentclass{book}
\begin{document}

\chapter*{Preface}
\chapter*{Abstract}

\chapter{Introduction}
\chapter{Body}
\chapter{Conclusion}

\end{document}

答案1

由于这只涉及\chapter*两个标题(摘要和前言)的命令,因此\chapter*{\centering Abstract}将等称为命令就足够了。这被分组在内部命令中\@makeschapterhead——它不会对其他隐式使用的命令产生副作用\chapter*,例如\tableofcontents

\blindtext以及Some text不居中,因此只要不需要进入 ToC,参数\centering内部就是安全的(事实并非如此,正如我们正在谈论的)\chapter*\chapter*

如果所有\chapter*\chapter标题都应水平居中,\xpatchcmd则方法更有用。(请参阅此答案底部的编辑)

\documentclass{book}



\usepackage{blindtext}

\begin{document}

\chapter*{\centering Preface}
\blindtext

Some text
\chapter*{\centering Abstract}


\chapter{Introduction}
\chapter{Body}
\chapter{Conclusion}

\end{document}

在此处输入图片描述

编辑

此代码将所有章节标题居中(无论\chapter*是否\chapter水平

\documentclass{book}

\usepackage{xpatch}
\usepackage{blindtext}


\makeatletter

\xpatchcmd{\@makeschapterhead}{%
  \Huge \bfseries  #1\par\nobreak%
}{%
  \Huge \bfseries\centering #1\par\nobreak%
}{\typeout{Patched makeschapterhead}}{\typeout{patching of @makeschapterhead failed}}


\xpatchcmd{\@makechapterhead}{%
  \huge\bfseries \@chapapp\space \thechapter
}{%
  \huge\bfseries\centering \@chapapp\space \thechapter
}{\typeout{Patched @makechapterhead}}{\typeout{Patching of @makechapterhead failed}}

\makeatother

\begin{document}
\tableofcontents

\chapter*{Preface}
\blindtext

Some text
\chapter*{Abstract}
\blindtext


\chapter{Introduction}
\blindtext

Another text


\chapter{Body}
\blindtext

\chapter{Conclusion}
\blindtext


\end{document}

答案2

我使用了\hfillbefore 和 after 来完成这个技巧,但是,titlesec 包也需要

\phantomsection
\chapter*{\hfill{\centering Certificate}\hfill}

完整工作示例

\documentclass{book}
\usepackage[showframe]{geometry}%optional
%titlesec is also required with these commands
\usepackage{titlesec}
\titleformat{\chapter}[display]
{\normalfont\huge\bfseries}{\chaptertitlename\ \thechapter}{20pt}{\Huge}
\titlespacing*{\chapter} {0pt}{50pt}{40pt}
%
\begin{document}
\chapter*{\hfill{\centering Certificate}\hfill}
\end{document}

答案3

这是一个对我有用的解决方案

\titleformat{\chapter}[display]
  {\normalfont\huge\bfseries\centering}{\centering\chaptertitlename\ \thechapter}{20pt}{\Huge}
\titlespacing*{\chapter} 
  {0pt}{50pt}{40pt}

来自以下链接

将章节标题居中

答案4

与 user31729 的答案相比,下面是一种默认将所有章节标题居中的非常简单的方法:

\usepackage{titlesec}
\titleformat{\chapter}[display]
  {\centering \normalsize \huge  \color{black}}{\thechapter}{10pt}{}

现在,

\chapter*{Curriculum Vitae}

生产

在此处输入图片描述

\chapter{Curriculum Vitae}

生产

在此处输入图片描述

相关内容