在 KOMA-Script 中每个段落的名称中添加一个点

在 KOMA-Script 中每个段落的名称中添加一个点

我目前正在(尝试)让 KOMA-Script 在每个段落名称后添加一个点。这意味着,如果我写\paragraph{Test} Lorem Ipsum,那么这应该会导致 LaTeX 将其排版为Test. Lorem Ipsum,但当然会使用正确的字体和 的所有内容Test

阅读 KOMA-Script 指南后,我发现应该能够通过重新定义来获得此结果\paragraphformat(参见位于 KOMA-Script 文档第 110 页顶部)。然而,KOMA-Script 似乎完全忽略了我重新定义的\paragraphformat

我在以下 MWE 中重现了该问题:

\documentclass{scrbook}

\renewcommand*{\paragraphformat}{\theparagraph.\enskip}

\begin{document}
\paragraph{Test} Lorem Ipsum

\end{document}

然后我得到以下结果(我期望后面有一个点测试): MWE 结果

另外,我尝试用未定义的命令替换点,但什么也没发生。因此我猜想 LaTeX 完全忽略了我重新定义这个命令。

编辑:正如 campa 在评论中巧妙指出的那样,\paragraphformat仅定义编号的格式。由于段落(至少在我的 MWE 中)没有编号,因此重新定义没有效果。看来\DeclareSectionCommand和相关命令是用于我正在尝试做的事情。但是,虽然有很多选项可以配置,但在每个段落名称末尾添加一个点似乎不是其中之一。由于我目前没有太多时间,我采用了以下重新定义命令的 hacky 解决方案paragraph

\let\oldparagraph\paragraph
\renewcommand{\paragraph}[1]{\oldparagraph{#1.}}

答案1

您可以使用

\AddtoDoHook{heading/endgroup/paragraph}{\headingdot}
\newcommand*{\headingdot}[1]{.}

例子:

\documentclass{scrbook}

\AddtoDoHook{heading/endgroup/paragraph}{\headingdot}
\newcommand*{\headingdot}[1]{.}

\begin{document}
\paragraph{Test} Lorem Ipsum
\subparagraph{Foo} Text
\end{document}

在此处输入图片描述

或者你可以重新定义\sectioncatchphraseformat

\renewcommand*\sectioncatchphraseformat[4]{%
  \hskip #2#3#4\Ifstr{#1}{paragraph}{.}{}%
}

例子:

\documentclass{scrbook}

\renewcommand*\sectioncatchphraseformat[4]{%
  \hskip #2#3#4\Ifstr{#1}{paragraph}{.}{}%
}

\begin{document}
\paragraph{Test} Lorem Ipsum
\subparagraph{Foo} Text
\end{document}

结果和上面一样。

相关内容