我希望文档中的段落用小写字母编号,后面跟着一个句号。因此,我在文档中添加了一行\renewcommand{\theparagraph}{\alph{paragraph}}
,创建了我想要的编号。但是这样做的副作用是,句号也出现在标签中的章节/部分/浮点数后面(但不是它们的引用!)。
梅威瑟:
\documentclass{scrartcl}
\renewcommand{\theparagraph}{\alph{paragraph}}
\setcounter{secnumdepth}{4}
\begin{document}
\section{Foo}\label{sec:foo}
\ref{sec:foo}
\paragraph{Bar}\label{sec:bar}
\end{document}
生成:
\theparagraph
我注意到,如果我用重新定义,则不会添加这个额外的句点\arabic
。此外,它仅在文档第二次编译后出现。
非常感谢任何关于如何摆脱它们的建议。
答案1
这是 KOMA Script 的一个功能,只要在某个级别出现非阿拉伯数字,就会在(所有部分)数字后添加一个句点。引用文档(2021-06-25 第 99-100 页)
根据 DUDEN,如果仅使用阿拉伯数字对章节标题进行编号,则德国的惯例是末尾没有点(参见 [DUD96, R3])。另一方面,如果编号中出现罗马数字或字母,则编号末尾应该有一个点(参见 [DUD96, R4])。KOMA-Script 有一种机制试图自动执行这个有点复杂的规则。结果是通常在分段命令
\part
和\appendix
编号之后切换到使用结尾点。此信息保存在文件中.aux
并在下次运行 LaTeX 时生效。有时放置或省略结尾点的机制可能会失败。有时其他语言有不同的规则。因此,您可以使用选项强制使用结尾点
numbers=endperiod
或使用禁止使用结尾点numbers=noendperiod
。请注意,此机制仅在下一次 LaTeX 运行中生效。因此,在尝试使用这些选项强制使用正确的编号格式之前,您应该始终在不修改文档的情况下执行另一次 LaTeX 运行。
如果你想遵守杜登规则,你就什么都不要做。
如果你想去掉句点,可以使用numbers=noendperiod
。
如果要保留段落标题的句号,您可以另外重新定义\paragraphformat
并替换\autodot
为.
以强制使用句号。
\documentclass[numbers=noendperiod]{scrartcl}
\renewcommand*{\theparagraph}{\alph{paragraph}}
\renewcommand*{\paragraphformat}{\theparagraph.\enskip}
\setcounter{secnumdepth}{4}
\begin{document}
\section{Foo}\label{sec:foo}
\ref{sec:foo}
\paragraph{Bar}\label{sec:bar}
\end{document}
答案2
article
那么用代替怎么样scrartcl
?
%\documentclass{scrartcl}
\documentclass{article}
\renewcommand{\theparagraph}{\alph{paragraph}}
\setcounter{secnumdepth}{4}
\begin{document}
\section{Foo}\label{sec:foo}
\ref{sec:foo}
\paragraph{Bar}\label{sec:bar}
\paragraph{Barr}\label{sec:barr}
Paragraph~\ref{sec:bar} gives the proof.
Paragraph~\ref{sec:barr} gives an example.
\end{document}