Я пишу свою диссертацию, используя шаблон, предоставленный университетом. Он требует использования класса 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