我正在用 LaTeX 写一份期末报告。我有一个代码可以让章节标题显示在页面中央(感谢朱博布斯):
\titleformat{\section}
{\vspace*{\fill}\centering\normalfont\Large\bfseries}
{\thesection}
{1em}
{\Large}
[\vspace*{\fill}\newpage]
不幸的是,这会在目录页中创建两个条目。删除此代码可以解决目录问题,但我仍然希望章节标题位于页面中央。如何解决这个问题?
分数维:
\documentclass{article}
\usepackage{enumerate,a4wide,graphicx,pdfpages,titlesec}
\title{Final Report}
\setcounter{secnumdepth}{0}
\begin{document}
\titleformat{\section}
{\vspace*{\fill}\centering\normalfont\Large\bfseries}
{\thesection}
{1em}
{\Large}
[\vspace*{\fill}\newpage]
\begin{titlepage}
\begin{center}
\includegraphics[scale=0.15]{name}\\[0.2cm]
{\Large XYZ}\\[0.2cm]
{\Large ABC}\\[2.5cm]
{\huge \textbf{Final Report}}\\[5cm]
\end{center}
\begin{minipage}{0.5\textwidth}
\begin{flushleft}
\emph{ABC :} \\
\textbf{ABC} \\ ~\\
\emph{XYZ : }\textbf{ABC}
\end{flushleft}
\end{minipage}
\begin{minipage}{0.5\textwidth}
\begin{flushright}
\emph{XYZ :}\\
\textbf{ABC} \\
\emph{XYZ :} \\
\textbf{ABC} \\
\end{flushright}
\end{minipage}
\vfill
\begin{center}
\today
\end{center}
\end{titlepage}
\tableofcontents
\newpage
\section{Test Section}
Test.
\newpage
\section{Test Section 2}
This is a filler.
\newpage
\end{document}
答案1
您可以更改类以\section
确保page
标题位于其自己的页面上;我还建议您定义一个命令,以便在排版特殊未编号部分(例如 ToC、LoF、LoT)后应用修改;类似于以下内容:
\documentclass{article}
\usepackage{titlesec}
\setcounter{secnumdepth}{0}
\newcommand\sectformat{%
\titleclass{\section}{page}
\titleformat{\section}
{\vfill\centering\normalfont\Large\bfseries}
{}{0em}
{}[\vfill]%
}
\newcommand\sectionbreak{\clearpage}
\begin{document}
\tableofcontents
\sectformat
\section{Test Section One}
Test.
\section{Test Section Two}
Test.
\end{document}
答案2
罪魁祸首似乎是\newpage
这段话中的:
\titleformat{\section}
{\vspace*{\fill}\centering\normalfont\Large\bfseries}
{\thesection}
{1em}
{\Large}
[\vspace*{\fill}\newpage]
删除后问题就消失了。请考虑以下示例(我还删除了许多非 MWE 内容 - 实际上有很多):
\documentclass{article}
\usepackage{titlesec}
\title{Final Report}
\setcounter{secnumdepth}{0}
\titleformat{\section}
{\vspace*{\fill}\centering\normalfont\Large\bfseries}
{\thesection}
{1em}
{\Large}
[\vspace*{\fill}]
\begin{document}
\tableofcontents
\newpage
\section{Test Section}
\newpage
Test.
\newpage
\section{Test Section 2}
\newpage
This is a filler.
\end{document}
现在您可能仍想让章节标题出现在单独的页面上(例如\part
)。有几种方法可以做到这一点。例如,您可以查看页面,它允许您在每个 前面etoolbox
添加和附加。\newpage
\section
答案3
我将titlesec
定义移到前面\begin{document}
,并为带星号的部分版本提供定义,该定义将应用于目录本身,正如 Gonzalo 所建议的那样。由于您不需要部分编号,我直接在定义处删除了它们\titleformat
,并将其设置secnumdepth
为 1,这样就可以区分普通部分和目录部分。
\documentclass{article}
\usepackage{enumerate,a4wide,graphicx,pdfpages,titlesec}
\title{Final Report}
\setcounter{secnumdepth}{1}
\titleformat{\section}
{\vspace*{\fill}\centering\normalfont\Large\bfseries}
{} % no section number
{1em}
{\Large}
[\vspace*{\fill}\newpage]
%% For the ToC
\titleformat{name=\section,numberless}
{\normalfont\Large\bfseries}
{}
{0em}
{}
\begin{document}
\tableofcontents
\newpage
\section{Test Section}
Test.
\newpage
\section{Test Section 2}
This is a filler.
\newpage
\end{document}