我想\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。