Ich habe erfolgreich \newlistof{listofA}{A}{List of As}
und verwendet \newlistentry{mycounter}{A}{0}
, um eine Liste von A zu erstellen, deren Inhalt mit hinzugefügt wird \addcontentsline{A}{mycounter}{\protect\numberline{\themycounter}...}
. Jetzt möchte ich eine Liste von B haben, die den Zähler gemeinsam hat mycounter
. Ich habe \newlistof{listofB}{B}{List of Bs}
.
\newlistentry{mycounter}{B}{0}
schlägt bei einigen fehl Command ... already defined
. Ohne , mit \addcontentsline{B}{mycounter}{...}
,
beideListen sind leer. Was mache ich falsch?
Antwort1
Mit dem xassoccnt
Paket ist es möglich, mehrere Zähler zu koppeln, das heißt, wenn einer der Zähler hochgefahren wird, werden auch die anderen hochgefahren.
Deklarieren Sie eine Zählergruppe mit einem beliebigen Namen und weisen Sie ihr die relevanten Zähler zu.
Die Verwendung desselben Zählers ist nicht möglich, da \newlistof
beispielsweise ein nicht vorhandener Zähler erwartet wird foo
und aus dem Zählernamen eine Reihe von Befehlen generiert.
\documentclass{article}
\usepackage{tocloft}
\usepackage{xassoccnt}
\usepackage{blindtext}
\newcommand{\listoffooname}{List of foo environments}
\newcommand{\listoffoobarname}{List of foobar environments}
\newlistof[section]{foo}{foo}{\listoffooname}
\newlistof[section]{foobar}{foobar}{\listoffoobarname}
\DeclareCoupledCountersGroup{foofoobar}
\DeclareCoupledCounters[name=foofoobar]{foo,foobar}
% Dummy usage of the counter and generating a 'ToC' entry
\newenvironment{foo}[1]{%
\refstepcounter{foo}
\par\noindent\textbf{Foo \thefoo. #1}
\addcontentsline{foo}{foo}{\protect\numberline{\thefoo} #1}\par%
}{\hrule}
\newenvironment{foobar}[1]{%
\refstepcounter{foobar}
\par\noindent\textbf{Foobar \thefoobar. #1}
\addcontentsline{foobar}{foobar}{\protect\numberline{\thefoobar} #1}\par%
}{\hrule}
\begin{document}
\listoffoo
\listoffoobar
\section{Where foo starts}
\begin{foo}{A nice foo}
\blindtext[2]
\end{foo}
\begin{foobar}{A nice foobar}
\blindtext[2]
\end{foobar}
\begin{foo}{A nice foo again}
\blindtext[2]
\end{foo}
\begin{foo}{A nice foo again}
\blindtext[2]
\end{foo}
\begin{foobar}{A nice foobar again}
\blindtext[2]
\end{foobar}
\section{Where foo ends}
\begin{foo}{Another nice foo too}
\blindtext[1]
\end{foo}
\begin{foobar}{Another nice foobar}
\blindtext[2]
\end{foobar}
\end{document}