KOMA-Script и вертикальный интервал после заголовка абзаца

KOMA-Script и вертикальный интервал после заголовка абзаца

В настоящее время у меня возникли проблемы с изменением вертикального интервала между заголовком абзаца и последующим основным текстом. Я хочу иметь новую строку после заголовка абзаца. Как я понял, 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}

введите описание изображения здесь

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

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