在我的 中scrartcl
,我想将小节编号修改为UNIT I
,而不在前面加上节编号。我该怎么做?
MWE 是:
\documentclass{scrartcl}
\begin{document}
\section{Hello}
\subsection{World}
Instead of \textbf{1.1 World}, I want \textbf{Unit I. World}
\end{document}
答案1
我字面上地在谷歌上搜索“koma latex change subsection”并使用首次命中:)。
\documentclass{scrartcl}
% https://tex.stackexchange.com/questions/353008
\renewcommand*\thesubsection{Unit \Roman{subsection}}
\begin{document}
\section{Hello}
\subsection{World}
\end{document}
答案2
如果你的用例不需要你创建对“单位”的交叉引用,@Dr.ManuelKuehner 的回答简单明了就完全足够了。
但是,如果你预见到需要创建单位的交叉引用,最好不是将单词“Unit”直接合并到宏中\thesubsection
。相反,最好使用低级 LaTeX 命令\@seccntformat
;请参阅下文以了解此想法的实现。如果您采用这种方法,作为额外的好处,您可以利用软件包的交叉引用功能cleveref
,例如,使用\cref
或\Cref
命令一次性创建对多个对象的交叉引用调用。
顺便说一句,该方法对于 Koma-Script 文档类和“基本” LaTeX 文档类( 、和)\@seccntformat
同样适用。article
report
book
\documentclass{scrartcl}
% Method proposed in "The LaTeX Companion", 2nd ed.:
\makeatletter
\def\@seccntformat#1{\@ifundefined{#1@cntformat}%
{\csname the#1\endcsname\space}% default
{\csname #1@cntformat\endcsname}}% enable individual control
\newcommand\subsection@cntformat{Unit \thesubsection\@.\space} % subsection level
\makeatother
\renewcommand\thesubsection{\Roman{subsection}}
\usepackage{cleveref} % for \cref and \Cref macros
\crefname{subsection}{unit}{units} % label to be used in cross-references
\begin{document}
\section{Hello} \label{sec:hello}
\subsection{World} \label{sec:world}
\subsection{Solar System} \label{sec:system}
\subsection{Galaxy} \label{sec:galaxy}
\subsection{Universe} \label{sec:universe}
As required, the first subsection header says \textbf{Unit I\@. World}.
\medskip
\noindent
As shown in \Cref{sec:world,sec:galaxy,sec:universe} of \Cref{sec:hello}, \dots
\end{document}