如何在 KOMA-Script 中将第一段缩进一次

如何在 KOMA-Script 中将第一段缩进一次

我想\indent在我的 KOMA-Script 文章中使用命令“手动”缩进第一段(scrartcl) 在文档中的某个特定位置,同时保持其他第一段不缩进。

因此我不想使用先缩进包裹。

MWE 在这里:

\documentclass{scrartcl}
\begin{document}
 \section{Test 1}
  \indent First paragraph, \verb|\indent| seems to be ignored ...

  Next paragraph, some text ...

 \section{Test 2}
  Some text ... 

  \noindent Next paragraph, \verb|\noindent| works, ...
\end{document}

为什么 KOMA 忽略\indent命令以及如何缩进段落?

答案1

正如 David 在评论中解释的那样,通常会停用节标题后第一段的缩进。而且由于\indent只添加当前激活的缩进,因此使用此命令无济于事。相反,您需要使用显式的\hspace*{\parindent}

关于此点有两点需要注意:

  • KOMA-Script 类和标准类的行为在这里是相同的。
  • 后面不能有多余的空格、换行符或空行\hspace*{\parindent}

另一个建议是暂时停用\@afterindentfalse。这里有一个示例,它适用于 KOMA-Script 类以及大多数其他类(如标准类):

% \documentclass{scrartcl}
\documentclass{article}% Problem is not really KOMA-Script related.
\makeatletter
\let\orig@afterindentfalse\@afterindentfalse
\AddToHook{cmd/@afterheading/before}{%
  \let\@afterindentfalse\orig@afterindentfalse
}%
\NewDocumentCommand \sectionwithafterindent { sO{#3}m }
  {%
    \let\@afterindentfalse\@afterindenttrue
    \IfBooleanTF{#1}{\section*{#3}}{\section[{#2}]{#3}}%
  }
\makeatother
\begin{document}
 \sectionwithafterindent{Test 1}
  First paragraph, no \verb|\indent| needed \dots

  Next paragraph, some text \dots

 \section{Test 2}
  Some text \dots

  \noindent Next paragraph, \verb|\noindent| works, \dots
\end{document}

第一节后的段落缩进

注意:由于使用通用cmd/…/before钩子,您至少需要 LaTeX 2021-11-15。

相关内容