Названия глав с одинарным интервалом и двойным интервалом в документе

Названия глав с одинарным интервалом и двойным интервалом в документе

Я набираю диссертацию с использованием этого bookкласса и мне нужно, чтобы названия глав были набраны через одинарный интервал, а основной текст — через двойной.

Вставка \singlespacingперед текстом в определении главы приводит к ! Missing control sequence inserted. <inserted text> \inaccessibleошибкам при компиляции, а также вставляет ложный символ новой строки между номерами глав и названиями в оглавлении.

Вот минимальный рабочий пример:

\documentclass[12pt,oneside]{book}
\usepackage{lipsum} % included only to generate example text
\usepackage{setspace} % set double vs single spacing
\begin{document}
\clearpage
\doublespacing
\chapter{I need singlespace titles, doublespace text.}
\section{Section headers should also be single-spaced, but I could adjust titles to fit on one line}
\lipsum[4] % generate some filler text
\end{document}

Это не дубликатэтот вопрос, так как ответы на этот вопрос подразумевают либо определенные хаки для \sectionкоманд, либо titlesecпакет, который выдает ошибку, ! Package titlesec Error: Not allowed in 'easy' settings.когда я пытаюсь использовать его с bookклассом.

Редактировать: оказывается, это sectstyне подходит для моих нужд, так как это нарушает форматирование в другом месте и взаимодействует с doublespacingдругим, чем при использовании titlesecрешения. Например,

\documentclass[12pt,oneside]{book}
\usepackage{lipsum}
\setcounter{secnumdepth}{3}
\usepackage{sectsty}
\usepackage{setspace} % set double vs single spacing
\allsectionsfont{\singlespacing}
\begin{document}
\doublespacing
\chapter{Singlespace titles, doublespace text.}
\section{Section headers should \\also be single-spaced}
\subsubsection{The \texttt{sectsty} package interacts with \texttt{doublespacing}, adds too much space below this header}
\paragraph{The \texttt{sectsty} package causes this paragraph to be indented}
\lipsum[4]
\end{document}

решение1

Вы можете добавить следующие инструкции в преамбулу документа (после загрузки пакета setspace):

\usepackage{sectsty}
\allsectionsfont{\singlespacing}

Полный MWE (минимальный рабочий пример):

\documentclass[12pt,oneside]{book}
\usepackage{lipsum}   % for filler text
\usepackage{setspace} 
\doublespacing

\usepackage{sectsty}
\allsectionsfont{\singlespacing}

\begin{document}

\chapter{I need singlespace titles, doublespace text.}

\section{Section headers should also be single-spaced, but I could adjust titles to fit on one line}

\lipsum[4] % filler text
\end{document}

решение2

Сопутствующий вопросимеет решение для заголовков разделов с использованием titlesecпакета. Однако, если этот ответ скопировать и наивно изменить для заголовков глав, это приведет к ошибке ! Package titlesec Error: Not allowed in 'easy' settings. Ошибка возникает из-за того, чтоПакет titlesec работает с главами немного иначе, чем с разделами.. Заклинание для глав и заголовков разделов с одинарным интервалом с использованием titlesecпакета выглядит следующим образом:

\usepackage{titlesec}
\titleformat{\chapter}[display]{\normalfont\huge\bfseries\singlespacing}{\chaptertitlename\ \thechapter}{40pt}{\huge}
\titleformat{\section}{\singlespacing\normalfont\Large\bfseries}{\thesection}{1em}{}
\titleformat{\subsection}{\singlespacing\normalfont\large\bfseries}{\thesubsection}{1em}{}
\titleformat{\subsubsection}{\singlespacing\normalfont\normalsize\bfseries}{\thesubsubsection}{1em}{}

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