KOMA スクリプトと段落見出し後の垂直間隔

KOMA スクリプトと段落見出し後の垂直間隔

現在、段落の見出しからそれに続く本文までの垂直間隔を変更するのに問題があります。段落の見出しの後に改行を入れたいのですが、新しい行は段落セクションとその本文の間に改行 (シングルスペース)\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とに 2 つの新しいキーが導入されました\RedeclareSectionCommands:runinと ですafterindent。両方のキーに可能な値はbysigntrueとですfalse。詳細については、KOMA スクリプトのドキュメントまたは次の URL を参照してください。koma-script を使用してセクション/サブセクションのタイトルの周囲の間隔を調整する

runin値 ¹ を持つ新しいキーを使用すると、見出しとそれに続くテキストの間のfalseを削除することができます。\parskipafterskip=-\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元の回答と同じ動作になります。


元の回答

見出しとそれに続くテキスト間の垂直方向のスペースは、テキスト本体の 2 つの段落間のスペースと少なくとも同じです。つまり、 parindent の代わりに parskip を使用している場合 ( のため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*クラス オプションから削除します。すると、 parskip の代わりに parindent が使用され、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}

ここに画像の説明を入力してください

しかし、見出しと次のテキストの間のスペースが、テキスト本文の 2 つの段落間のスペースよりも狭いのは珍しいため、これはお勧めしません。

関連情報