章の見出しのフォーマットを保存および復元する方法

章の見出しのフォーマットを保存および復元する方法

私は大学から提供されたテンプレートを使用して論文を書いています。レポート クラスを使用する必要があります。前文の見出しをフォーマットするには、パッケージを使用して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

関連情報