KOMA-Script 和段落標題後的垂直間距

KOMA-Script 和段落標題後的垂直間距

我目前在將垂直間距從段落標題更改為後續正文時遇到問題。我想要的是段落標題後的換行符。據我了解,新的在段落部分及其正文之間\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 腳本版本 3.26\RedeclareSectionCommand為和引入了兩個新鍵\RedeclareSectionCommandsruninafterindent。這兩個鍵的可能值為bysigntruefalse。有關更多信息,請參閱 KOMA-Script 文件或例如使用 koma-script 調整節/小節標題周圍的間距

runin使用帶有值1 的新鍵,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}

螢幕截圖

1 預設設定會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之間的 parskipparagraph 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}

在此輸入影像描述

但我不建議這樣做,因為標題和以下文字之間的間距小於文字正文中兩個段落之間的間距是不常見的。

相關內容