В настоящее время у меня возникли проблемы с изменением вертикального интервала между заголовком абзаца и последующим основным текстом. Я хочу иметь новую строку после заголовка абзаца. Как я понял, new \RedeclareSectionCommand
применяет afterskip=1sp
новую строку (одинарный интервал) между разделом абзаца и его основным текстом. Почему-то это работает не так, как я хочу. Мой код сейчас выглядит примерно так (MWE):
\documentclass[12pt,english,parskip=half*,listof=nochaptergap,final]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage{setspace}
\RedeclareSectionCommands[
beforeskip=-3.25ex plus -1ex minus -0.2ex,
afterskip=1sp,
%indent=0pt
]{paragraph,subparagraph}
\onehalfspacing
\begin{document}
\paragraph{Test paragraph}
Test test test test test \\
Test test test test test
\end{document}
Мне бы хотелось иметь новую строку после абзаца и, если возможно, возможность самостоятельно настраивать вертикальный интервал.
--- РЕШЕНИЕ ---
На всякий случай, если кто-то такой же странный, как я, просто удалите parskip=half*
из параметров документа, и все готово! СПАСИБО @esdd!!!
решение1
Обновлять
KOMA-Script версия 3.26вводит два новых ключа для \RedeclareSectionCommand
и \RedeclareSectionCommands
: runin
и afterindent
. Возможные значения для обоих ключей bysign
, true
и false
. Для получения дополнительной информации см. документацию KOMA-Script или напримерНастройка интервала вокруг заголовков разделов/подразделов с помощью koma-script.
Используя новый ключ runin
со значением false
¹, можно удалить \parskip
между заголовком и последующим текстом afterskip=-\parskip
.
Пример:
\documentclass[12pt,english,parskip=half*,listof=nochaptergap,final]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[onehalfspacing]{setspace}
\RedeclareSectionCommands[
beforeskip=-3.25ex plus -1ex minus -0.2ex,
runin=false,
afterskip=-\parskip
]{paragraph,subparagraph}
\usepackage{blindtext}
\begin{document}
\paragraph{Test paragraph}
\Blindtext[2]
\end{document}
¹ Значение по умолчанию — это runin=bysign
то же самое поведение, что и в исходном ответе.
Оригинальный ответ
Вертикальное пространство между заголовком и последующим текстом по крайней мере такое же, как пространство между двумя абзацами в тексте. Это означает, что если вы используете parskip вместо parindent (из-за parskip=half*
), пространство между заголовком и последующим текстом по крайней мере такое же, как этот parskip.
Код:
\documentclass[12pt,english,parskip=half*,listof=nochaptergap,final]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[onehalfspacing]{setspace}
\RedeclareSectionCommands[
beforeskip=-3.25ex plus -1ex minus -0.2ex,
afterskip=1sp,% smallest possible positive value
]{paragraph,subparagraph}
\usepackage{blindtext}
\begin{document}
\paragraph{Test paragraph}
\Blindtext[2]
\end{document}
Положительное значение afterskip
для команды раздела увеличивает вертикальный пропуск на это значение. При отрицательном значении afterskip
текст начинается в той же строке, что и заголовок, а значение afterskip
используется как горизонтальный пропуск.
Код:
\documentclass[12pt,english,parskip=half*,listof=nochaptergap,final]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[onehalfspacing]{setspace}
\RedeclareSectionCommands[
beforeskip=-3.25ex plus -1ex minus -0.2ex,
afterskip=-1em,% works as horizontal skip of 1em
]{paragraph,subparagraph}
\usepackage{blindtext}
\begin{document}
\paragraph{Test paragraph}
\Blindtext[2]
\end{document}
Так что удалите parskip=half*
из своих параметров класса. Тогда parindent используется вместо parskip и только положительное значение afterskip
используется как вертикальный пропуск между заголовком и последующим текстом.
Код:
\documentclass[12pt,english,
%parskip=half*,% <- commented, so parskip=false is used
listof=nochaptergap,final
]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[onehalfspacing]{setspace}
\RedeclareSectionCommands[
beforeskip=-3.25ex plus -1ex minus -0.2ex,
afterskip=1sp,
]{paragraph,subparagraph}
\usepackage{blindtext}
\begin{document}
\paragraph{Test paragraph}
\Blindtext[2]
\end{document}
Если вы действительно хотите или вам нужно parkip=half
удалить парскип между paragraph heading
вы можете использовать
\documentclass[12pt,english,parskip=half,listof=nochaptergap,final]{scrreprt}
\usepackage[utf8]{inputenc}
\RedeclareSectionCommands[
beforeskip=-3.25ex plus -1ex minus -0.2ex,
afterskip=1sp,
%indent=0pt
]{paragraph,subparagraph}
\usepackage{xpatch}
\xapptocmd{\sectionlinesformat}{%
\ifstr{#1}{paragraph}{\vspace*{-\parskip}}{}%
\ifstr{#1}{subparagraph}{\vspace*{-\parskip}}{}%
}{}{}
\usepackage{blindtext}
\begin{document}
\paragraph{Test paragraph}
\Blindtext[2]
\end{document}
Но я не рекомендую этого делать, поскольку обычно между заголовком и последующим текстом не бывает меньшего расстояния, чем между двумя абзацами в основном тексте.