現在、段落の見出しからそれに続く本文までの垂直間隔を変更するのに問題があります。段落の見出しの後に改行を入れたいのですが、新しい行は段落セクションとその本文の間に改行 (シングルスペース)\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
。両方のキーに可能な値はbysign
、true
とですfalse
。詳細については、KOMA スクリプトのドキュメントまたは次の URL を参照してください。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
元の回答と同じ動作になります。
元の回答
見出しとそれに続くテキスト間の垂直方向のスペースは、テキスト本体の 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 つの段落間のスペースよりも狭いのは珍しいため、これはお勧めしません。