格式部分,在数字前放置不同的字符串

格式部分,在数字前放置不同的字符串

我想在子部分的数字前放置一些字符串,因此它应该看起来像这样

示例 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}

在此处输入图片描述

相关内容