将章节编号后的“.”替换为“)”

将章节编号后的“.”替换为“)”

我正在使用 KOMA 脚本的scrartcl类并自定义了部分编号,如以下 MWE 所示:

\documentclass{scrartcl}
\begin{document}
    \renewcommand{\thesection}{\alph{section}}
    \section{Introduction}
\end{document}

这给了我输出:
a. 简介

现在我想用右括号(“)”替换节号后的点字符(“。”)。到目前为止,我发现的最佳解决方案是:

\renewcommand\sectionformat{\thesection)\enskip}

结果是
a) 简介

但是,我想知道这种方法是否值得推荐,或者是否有更规范的方法来实现这一点。特别是,我只想更改相关字符而不触及水平间距或前缀,在最好的情况下,我希望能够一次更改多个级别(部分、小节、段落等)。

答案1

komascript 类提供了在所有部分编号后是否加句号的选择。默认情况下,它们遵循 Duden 的建议,即所有数字标签后都不加句号,非数字标签后加句号。

至少这是手册上所说的,但实际情况并非如此:也许我没有正确阅读手册。

如果你够大胆,你可以重新定义 的含义\autodot

\makeatletter
\renewcommand*\autodot{\if@altsecnumformat)\fi}
\makeatother

完整示例。

\documentclass{scrartcl}

\renewcommand{\thesection}{\alph{section}}
\makeatletter
\renewcommand*\autodot{\if@altsecnumformat)\fi}
\makeatother

\begin{document}

\section{Title}

\subsection{Another}

\end{document}

在此处输入图片描述

但真正的解决方案确实是使用\sectionformat。您可以在手册(当前版本的第 110 页)中看到,所有章节标题(从\section下往上)的标准格式是\enspace在数字(可能后跟句点)和标题之间有。

确实如此

\sectionformat{\thesection)\enspace}

才是出路。你需要改变全部但是,没有通用设置。

答案2

您所做的还可以,但也许您需要改变更多级别,如果是的话,您可能需要一个目录等等。

因此,让我们使用 blindtext 包将您的 MWE 扩展到整个文档:

\documentclass[ngerman, numbers=nodotatend]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{blindtext, lmodern}

\renewcommand{\thesection}{\alph{section})}
%\renewcommand\sectionformat{\thesection)\enskip}


\begin{document}
\tableofcontents{}

\blinddocument

\end{document}

结果(仅第一页部分): 页面图片

renewcommand 只会将“)”添加到标题,而不会添加到目录中。

如果您需要重新定义更多标题,请仔细查看手册第 21.8 节有关“\DeclareSectionCommand[Einstellungen ]{Name }”的内容(德语版本、texdoc scrguide命令行、英语版本texdoc scrguien)。

相关内容