我目前在將垂直間距從段落標題更改為後續正文時遇到問題。我想要的是段落標題後的換行符。據我了解,新的在段落部分及其正文之間\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
為和引入了兩個新鍵\RedeclareSectionCommands
:runin
和afterindent
。這兩個鍵的可能值為bysign
、true
和false
。有關更多信息,請參閱 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}
但我不建議這樣做,因為標題和以下文字之間的間距小於文字正文中兩個段落之間的間距是不常見的。