我想在子部分的数字前放置一些字符串,因此它应该看起来像这样
示例 1.1.1:求和文本
练习 1.1.2:向量文本
字符串总是不同的,但不会超过 10 个字符,实际上到目前为止有 3 个不同的字符串。我想象\renewcommand\subsubsection{...}
我可以像这样使用 2 个参数,\section{Example}{Sum}
或者第一个参数可能是可选的。可能吗?如果不行,我可以定义一个新的计数器并使用包 enumitem 创建一个新环境,是否可以在那里的数字前面创建变量字符串?真的不想创建 3 个新环境。
最好是适合scrartcl
班级。
答案1
您可以重新定义\sectionlinesformat
以添加前缀。为此,前缀必须存储在之前的单独宏中。这可以通过在插入正常标题之前存储前缀来\subsubsection
实现:\subsubsection
\documentclass{scrartcl}
\let\originalsectionlinesformat\sectionlinesformat
\let\originalsubsubsection\subsubsection
\renewcommand\sectionlinesformat[4]{%
\expandafter\if\csname#1prefix\endcsname\relax\relax%
\originalsectionlinesformat{#1}{#2}{#3}{#4}%
\else%
\originalsectionlinesformat{#1}{#2}{\csname#1prefix\endcsname~#3}{#4}%
\fi%
}
\renewcommand\subsubsection[1][]{%
\def\subsubsectionprefix{#1}\originalsubsubsection
}
\begin{document}
\section{Section}
\subsection{Subsection}
\subsubsection[Example]{Subsubsection}
Actual text
\end{document}
如果使用接缝标题,则linesformat
必须将“every”替换为“” catchphraseformat
。
答案2
这是另一个建议,为分段命令和修补的可选参数定义一个新键\subsubsectionformat
:
\documentclass[
headings=optiontoheadandtoc
]{scrartcl}
\newcommand*\currentprefix{}
\FamilyStringKey[.section]{KOMAarg}{prefix}{\currentprefix}
\usepackage{xpatch}
\xpretocmd\subsubsectionformat
{\ifstr{\currentprefix}{}{}{\currentprefix\ }}
{}{\PatchFailed}
\xapptocmd\subsubsectionformat
{\gdef\currentprefix{}}
{}{\PatchFailed}
\RedeclareSectionCommand[
afterskip=-.25\baselineskip
]{subsubsection}
\usepackage{blindtext}
\begin{document}
\tableofcontents
\section{Section}
\subsection{Subsection}
\subsubsection[prefix=Example,tocentry={Title in TOC}]{Subsubsection}
\blindtext
\subsubsection[Next Title in TOC]{Next Subsubsection}
\blindtext
\end{document}
答案3
我会使用类似定理的环境。
\documentclass{scrartcl}
\usepackage{amsthm}
\usepackage{thmtools}
\makeatletter
% some small coercion on thmtools ;-)
\newcommand{\reformatNOTE}{\def\thmt@space##1(##2){##2}}
\makeatletter
\declaretheoremstyle[
headfont=\sffamily\bfseries,
bodyfont=\normalfont,
headformat={\NAME\ \NUMBER: \NOTE},
]{ex}
\declaretheorem[
preheadhook=\reformatNOTE,
style=ex,
parent=subsection,
name=Exercise,
]{exercise}
\declaretheorem[
preheadhook=\reformatNOTE,
style=ex,
numberlike=exercise,
name=Example
]{example}
\begin{document}
\section{Section}
\subsection{Subsection}
\begin{example}[Sum]
Text for the example
\end{example}
\begin{exercise}[Vector]
Text for the exercise
\end{exercise}
\end{document}