如何儲存和復原章節標題格式

如何儲存和復原章節標題格式

我正在使用大學提供的範本撰寫論文。它需要使用報告類別。為了格式化前文中的標題,它使用了titlesec套件並重新定義了格式(\titleformat, \titlespacing)。然而,這也改變了主要內容中章節標題的格式,這是我不喜歡的。我嘗試使用\newenvironment定義一個環境preliminary來包裝前面的內容,並僅在本地重新定義標題的格式。然而它沒有起作用。

我的問題是:是否可以在本地更改標題格式?如果不是,如何保存預設格式並在前面的事情之後恢復它?

我想我總是可以在前面的內容之後重新定義格式,但我想保留預設值。

答案1

您可以titlesec在任何地方使用 的命令,它們的效果將僅限於包含它們的群組或環境。以下文件適用於章節和章節的變更。為了方便說明,我只展示了部分內容;使用命令取消註釋正文中的行\chapter,以查看它們是否也起作用。

\documentclass{report}
\usepackage{titlesec}
\titleformat{\section}{\normalfont\Large\itshape}{\thesection}{1em}{}{}

\newenvironment{alttitles}{\titleformat{\chapter}[display]%
{\normalfont\huge\itshape}{\chaptertitlename\ \thechapter}{20pt}{\Huge}%
\titleformat{\section}{\normalfont\Large\scshape}{\thesection}{1em}{}{}}{}

\begin{document}

%\chapter{First chapter}
\section{A section}

\begin{alttitles}
%\chapter{Next chapter}
\section{Another section}

\end{alttitles}

\section{A last section}

\end{document}

樣本輸出

當嘗試用您自己的樣式實現此功能時,我建議您首先在單獨的文檔中獲取全域工作的 titlesec 命令以幫助調試。之後,如果您願意,您可以將它們建置到環境中,或者只是將它們包含在適當的群組中,例如

{
\titleformat{\section}{\normalfont\Large\scshape}{\thesection}{1em}{}{}
\section{A small caps section}

Text.

}

答案2

無法在本地更改它們。但是,您可以在文件中的任何位置(即在命令內部)恢復為「原始」\mainmatter,如下所示。titlesec手冊中描述了定義原始標題的正確方法。這是您的文檔序言:

\makeatletter
\g@addto@macro{\mainmatter}{
  \titleformat{\chapter}[display]
    {\normalfont\huge\bfseries}{\chaptertitlename\ \thechapter}{20pt}{\Huge}
  \titleformat{\section}
    {\normalfont\Large\bfseries}{\thesection}{1em}{}
  \titleformat{\subsection}
    {\normalfont\large\bfseries}{\thesubsection}{1em}{}
  \titleformat{\subsubsection}
    {\normalfont\normalsize\bfseries}{\thesubsubsection}{1em}{}
  \titleformat{\paragraph}[runin]
    {\normalfont\normalsize\bfseries}{\theparagraph}{1em}{}
  \titleformat{\subparagraph}[runin]
    {\normalfont\normalsize\bfseries}{\thesubparagraph}{1em}{}
  \titlespacing*{\chapter}{0pt}{50pt}{40pt}
  \titlespacing*{\section}{0pt}{3.5ex plus 1ex minus .2ex}{2.3ex plus .2ex}
  \titlespacing*{\subsection}{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}
  \titlespacing*{\subsubsection}{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}
  \titlespacing*{\paragraph}{0pt}{3.25ex plus 1ex minus .2ex}{1em}
  \titlespacing*{\subparagraph}{\parindent}{3.25ex plus 1ex minus .2ex}{1em}
}
\makeatother

相關內容