Ich möchte die folgenden Elemente organisieren:
- Abschnitt a
- Kategorie 1
- Punkt 1.1
- Punkt 1.2
- Kategorie 2
- Ziffer 2.1
- Kategorie 1
- Abschnitt b
- Kategorie 1
- Punkt 1.3
- Punkt 1.4
- Kategorie 2
- Ziffer 2.2
- Ziffer 2.3
- Kategorie 1
- Abschnitt C
- Kategorie 1
- Punkt 1.5
- Kategorie 2
- Ziffer 2.4
- Ziffer 2.5
- Ziffer 2.6
- Kategorie 1
mit einem Code wie:
\section{A}
\resetcategories
\nextcategory
\myitem{}
\myitem{}
\nextcategory
\myitem{}
\section{B}
\resetcategories
\nextcategory
\myitem{}
\myitem{}
\nextcategory
\myitem{}
\myitem{}
\section{C}
\resetcategories
\nextcategory
\myitem{}
\nextcategory
\myitem{}
\myitem{}
\myitem{}
Daher gibt es innerhalb jeder dynamischen Kategorie einen dynamischen Artikelzähler, dessen Wert jedoch gespeichert wird und auch dann fortgesetzt werden kann, wenn der Kategoriezähler zurückgesetzt wird.
Gibt es eine gute Möglichkeit, dies mit benutzerdefinierten Zählern oder Variablen zu erreichen?
Antwort1
Die übliche Manipulation mit TeX-Registern sieht folgendermaßen aus:
\newcount\catnum
\expandafter \newcount\csname itemnum1\endcsname
\expandafter \newcount\csname itemnum2\endcsname
\def\inum{itemnum\the\catnum}
\def\bull#1{\noindent\hskip#1\parindent
\hangindent=#1\parindent
\llap{$\bullet$\ }\ignorespaces
}
\def\section#1{\par\bull1 \catnum=0 section #1}
\def\nextcategory{\par\advance\catnum by1 \bull2 category \the\catnum}
\def\myitem{\par
\advance\csname\inum\endcsname by1 \bull3
item \the\catnum.\expandafter\the\csname\inum\endcsname}
\let\resetcategories=\relax
\section{A}
\resetcategories
\nextcategory
\myitem{}
\myitem{}
\nextcategory
\myitem{}
\section{B}
\resetcategories
\nextcategory
\myitem{}
\myitem{}
\nextcategory
\myitem{}
\myitem{}
\section{C}
\resetcategories
\nextcategory
\myitem{}
\nextcategory
\myitem{}
\myitem{}
\myitem{}
\bye
Antwort2
Vielleicht so etwas wie dies mithilfe von „Fortsetzungslisten“ enumitem
?
\documentclass{article}
\usepackage{enumitem}
\newlist{sectionlist}{enumerate}{3}
\setlist[sectionlist,1]{label={\Alph*}}
\setlist[sectionlist,2]{label={\arabic*}}
\setlist[sectionlist,3]{label*={.\arabic*}}
\begin{document}
\begin{sectionlist}
\item Section
\begin{sectionlist}
\item Category
\begin{sectionlist}[series=first]
\item Foo
\item Other Foo
\end{sectionlist}
\item Category
\begin{sectionlist}[series=second]
\item Foo
\item Other Foo
\end{sectionlist}
\end{sectionlist}
\item Section
\begin{sectionlist}
\item Category
\begin{sectionlist}[resume=first]
\item Foo
\item Other Foo
\end{sectionlist}
\item Category
\begin{sectionlist}[resume=second]
\item Foo
\item Other Foo
\item Yet another foo
\end{sectionlist}
\end{sectionlist}
\item Section
\begin{sectionlist}
\item Category
\begin{sectionlist}[resume=first]
\item Foo
\item Other Foo
\item Yet another foo
\end{sectionlist}
\item Category
\begin{sectionlist}[resume=second]
\item Foo
\item Other Foo
\item Yet another foo
\item Even yet another foo
\end{sectionlist}
\end{sectionlist}
\end{sectionlist}
\end{document}