
Я набираю диссертацию с использованием этого 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}{}