Как сохранить и восстановить формат заголовка главы

Как сохранить и восстановить формат заголовка главы

Я пишу свою диссертацию, используя шаблон, предоставленный университетом. Он требует использования класса report. Для форматирования заголовков в вводной части он использует пакет titlesecи переопределяет формат ( \titleformat, \titlespacing). Однако это также меняет формат заголовков глав в основной части, что мне не нравится. Я пробовал использовать , \newenvironmentчтобы определить среду preliminaryдля обертывания вводной части и переопределять формат заголовков только локально. Однако это не сработало.

У меня такие вопросы: можно ли локально изменить формат заголовков? Если нет, то как сохранить формат по умолчанию и восстановить его после вводной части?

Думаю, я всегда смогу переопределить формат после вступительной части, но я хочу сохранить формат по умолчанию.

решение1

Вы можете использовать titlesecкоманды 's в любом месте, и их эффект будет ограничен группой или средой, содержащей их. Следующий документ работает с изменением разделов и глав. Для иллюстрации я продемонстрировал только разделы; раскомментируйте строки в теле с \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

Связанный контент