目录中包含双重名称

目录中包含双重名称

我正在用 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}

相关内容