Seite 1 von 1
[enumitem] Wiederholung eines /items mit gleicher Nummer
Verfasst: Do 18. Aug 2011, 16:39
von C_wie_ZDU
Hallo,
ich nutze die Auflistung per enumerate global, weil ich nicht weiß, wie ich das Zählerformat so hinbekomme, ich es momentan ist.
Nun kommt es vor, dass ich ein Beispiel wieder verwenden möchte und es daher erneut anführe, weil es bereits ein paar Seiten her ist.
Ich möchte aber, dass trotzdem die "alte" Nummer verwendet wird und keine neue. Wie mache ich das? Statt "resume" kann ich "start=54" verwenden, doch, was trage ich statt der "54" ein, damit die die Nummer des entsprechenden Beispiels verwendet wird?
Kann ich irgendwie einen Anker setzen und auf diesen dann verweisen?
\documentclass{scrartcl}
\usepackage{enumitem}
\begin{document}
Text
\begin{enumerate}[label={(}\arabic*{)},resume]
\item Frauen verdienen weniger als ihre Kollegen
\end{enumerate}
Text Text Text
\begin{enumerate}[label={(}\arabic*{)},resume]
\item Bill Clinton - ein Sonntagskind wird 65
\end{enumerate}
Text
\begin{enumerate}[label={(}\arabic*{)},start=]
\item Frauen verdienen weniger als ihre Kollegen
\end{enumerate}
\end{document}
Aussehen sollte das alles so:
Text
(1) Frauen verdienen weniger als ihre Kollegen
Text Text Text
(2) Bill Clinton - ein Sonntagskind wird 65
Text
(1) Frauen verdienen weniger als ihre Kollegen
Verfasst: Do 18. Aug 2011, 23:42
von Hagbard Celine
Hallo,
ich habe für die Zählerfortsetzung zwei Möglichkeiten gefunden. Man kann das natürlich den Zählerwert speichern und dann als Wert für label angeben (siehe oben im Beispiel). Es gibt aber auch das Paket mdwlist (kannte ich auch noch nicht), das die Befehle \suspend und \resume bereitstellt, die man anstelle von \end bzw. \begin bei den jeweiligen enumerate-Umgebungen nutzen kann.
Bei beiden Lösungen kann man auch zwischendrin noch "unbeteiligte" enumerate-Umgebungen nutzen, also welche mit unabhängiger Nummerierung, nutzen.
Für die Label-Definition habe ich den Zähler umdefiniert. Allerdings habe ich noch nicht rausgefunden, wie man den Punkt hinter dem Label wegkriegt.
So, hier das Beispiel:
\documentclass{scrartcl}
\usepackage{enumitem}
\usepackage{mdwlist} % stellt die Befehle \suspend und \resume bereit
\renewcommand{\theenumi}{(\arabic{enumi})} % definiert die den Labelzähler um
\newcounter{nummer} % Zähler zum speichern der aktuellen Nummer
\newcommand{\sichern}{\setcounter{nummer}{\value{enumi}}\stepcounter{nummer}} % Befehl, der die aktuelle Nummer (bzw. die aktuelle Nummer plus eins) im Zähler nummer speichert
\newcommand{\nummer}{\value{nummer}} % gibt den im Zähler nummer gesicherten Wert aus
\begin{document}
Text
\begin{enumerate}
\item Frauen verdienen weniger als ihre Kollegen
\sichern % aktuelle Nummer merken
\end{enumerate}
Text Text Text
\begin{enumerate}[start=\nummer] % einen höher starten, als wir bei \sichern waren
\item Bill Clinton -- ein Sonntagskind wird 65
\end{enumerate}
Text
\begin{enumerate}
\item Frauen verdienen weniger als ihre Kollegen
\end{enumerate}
\vspace*{3cm}
alternativ (mit dem Paket mdwlist):\par
Text
\begin{enumerate}
\item Frauen verdienen weniger als ihre Kollegen
\suspend{enumerate} % aktuellen Wert merken
Text Text Text
\resume{enumerate} % Zählung fortsetzen
\item Bill Clinton -- ein Sonntagskind wird 65
\end{enumerate}
Text
\begin{enumerate}
\item Frauen verdienen weniger als ihre Kollegen
\end{enumerate}
\end{document}
Gruß,
Jonas
PS: Der Gedankenstrich (Halbgeviertstrich) ist in LaTeX "--".
Verfasst: Fr 19. Aug 2011, 08:47
von Xenara
Wie wärs mit der Verwendung von \ref?
\documentclass{scrartcl}
\usepackage{enumitem}
\usepackage{nameref}
\renewcommand{\labelenumi}{(\arabic{enumi})}
\begin{document}
Text
\begin{enumerate}[resume]
\item Frauen verdienen weniger als ihre Kollegen \label{item:frauen}
\end{enumerate}
Text Text Text
\begin{enumerate}[resume]
\item Bill Clinton - ein Sonntagskind wird 65
\end{enumerate}
Text
\begin{enumerate}[label={(\ref{item:frauen})}]
\item Frauen verdienen weniger als ihre Kollegen
\end{enumerate}
\end{document}
Leider habe ich keine Methode analog zu \nameref gefunden, die auch gleich den Text wieder mit ausgibt. Da was zu basteln bekomme ich nicht hin.
EDIT:
So gehts doch: Man kann mittels label und neuem Befehl einfach den "Block" wiederholen:
\documentclass{scrartcl}
\usepackage{enumitem}
\usepackage{nameref}
% nach http://tex.stackexchange.com/questions/4611/nameref-how-to-get-counters-label-value-instead-of-section-name
\makeatletter
\newcommand{\myitem}[1]{%
\item \def\@currentlabelname{#1}%
#1
}
\makeatother
\newcommand{\refenum}[1]{%
\begin{enumerate}
\item[(\ref{#1})] \nameref{#1}
\end{enumerate}
}
\renewcommand{\labelenumi}{(\arabic{enumi})}
\begin{document}
Text
\begin{enumerate}[resume]
\myitem{Frauen verdienen wenger als ihre Kollegen}\label{frauen}
\end{enumerate}
Text Text Text
\begin{enumerate}[resume]
\myitem{Bill Clinton - ein Sonntagskind wird 65}
\end{enumerate}
Text
\refenum{frauen}
\end{document}
Verfasst: Fr 19. Aug 2011, 13:47
von C_wie_ZDU
Xenara, danke. Das ist noch natürlich noch besser, wenn ich kein einziges Zeichen noch mal schreiben muss.
Aber: Es gibt ein Problem. Alle folgenden Beispiele werden mit oder ab der in \label{frauen} vergebenen Nummer nummeriert.
(Das gleiche Problem gibt es auch in der Lösung von Hagbard Celine
Er sollte aber einfach die Nummerierung vom Beispiel vorher fortgesetzt werden.
Verfasst: Fr 19. Aug 2011, 13:57
von Hagbard Celine
Was heißt denn "mit oder ab"? Kannst du dazu ein Beispiel geben?
Vielleicht löst für meinen Vorschlag ein Weglassen des \stepcounter{nummer} in der Definition von \sichern das Problem.
Im Allgemeinen ist jedoch Xenaras Vorschlag sicherlich der bessere (elegantere).
Verfasst: Fr 19. Aug 2011, 14:00
von C_wie_ZDU
So sieht es aus:
Text
(1) Frauen verdienen weniger als ihre Kollegen
Text Text Text
(2) Bill Clinton - ein Sonntagskind wird 65
Text
(1) Frauen verdienen weniger als ihre Kollegen
(2) Neues Beispiel. hier sollte mit der Nummer 3 weiternummeriert werden
Text
(3) Nummer vier
und so sollte es aussehen:
Text
(1) Frauen verdienen weniger als ihre Kollegen
Text Text Text
(2) Bill Clinton - ein Sonntagskind wird 65
Text
(1) Frauen verdienen weniger als ihre Kollegen
(3) Neues Beispiel. hier sollte mit der Nummer 3 weiternummeriert werden
Text
(4) Nummer vier
Verfasst: Fr 19. Aug 2011, 14:04
von Xenara
Verflixt, das hatte ich vergessen zu testen.
Ich hatte die resume-Option in der enumerate-Umgebung im newcommand nicht berücksichtigt.
\documentclass{scrartcl}
\usepackage{enumitem}
\usepackage{nameref}
% nach http://tex.stackexchange.com/questi.....e-instead-of-section-name
\makeatletter
\newcommand{\myitem}[1]{%
\item \def\@currentlabelname{#1}%
#1
}
\makeatother
\newcommand{\refenum}[1]{%
\begin{enumerate}[resume]
\item[(\ref{#1})] \nameref{#1}
\end{enumerate}
}
\renewcommand{\labelenumi}{(\arabic{enumi})}
\begin{document}
Text
\begin{enumerate}[resume]
\item item
\myitem{Frauen verdienen wenger als ihre Kollegen}\label{frauen}
\item item
\end{enumerate}
Text Text Text
\begin{enumerate}[resume]
\myitem{Bill Clinton - ein Sonntagskind wird 65}
\item item
\end{enumerate}
Text
\refenum{frauen}
Text
\begin{enumerate}[resume]
\item Hier sollts weiternummeriert werden.
\end{enumerate}
\end{document}
Verfasst: Fr 19. Aug 2011, 14:28
von C_wie_ZDU
Leider immer noch nicht. Wenn ich das nämlich in meinem Dokument anwende, dann wird unter /refenum die section- oder subsection-Überschrift ausgegeben und nicht das Beispiel.
Verfasst: Fr 19. Aug 2011, 14:32
von Xenara
Kann ich nicht nachvollziehen:
\documentclass{scrartcl}
\usepackage{enumitem}
\usepackage{nameref}
% nach http://tex.stackexchange.com/questi.....e-instead-of-section-name
\makeatletter
\newcommand{\myitem}[1]{%
\item \def\@currentlabelname{#1}%
#1
}
\makeatother
\newcommand{\refenum}[1]{%
\begin{enumerate}[resume]
\item[(\ref{#1})] \nameref{#1}
\end{enumerate}
}
\renewcommand{\labelenumi}{(\arabic{enumi})}
\begin{document}
\section{Section }
Text
\begin{enumerate}[resume]
\item item
\myitem{Frauen verdienen wenger als ihre Kollegen}\label{frauen}
\item item
\end{enumerate}
\subsection{Subsection}
Text Text Text
\begin{enumerate}[resume]
\myitem{Bill Clinton - ein Sonntagskind wird 65}
\item item
\end{enumerate}
Text
\section{Section}
\refenum{frauen}
Text
\begin{enumerate}[resume]
\item Hier sollts weiternummeriert werden.
\end{enumerate}
\end{document}
Verfasst: Fr 19. Aug 2011, 15:14
von C_wie_ZDU
Hmm....da scheint mir irgendwas zu kollidieren. Ich werde mir das nachher mal etwas genauer ansehen. Jetzt muss erst inhaltlich vorankommen.