[enumitem] Wiederholung eines /items mit gleicher Nummer

Schriftbild, Absätze und Auflistungen einstellen


C_wie_ZDU
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Mi 27. Jul 2011, 00:30

[enumitem] Wiederholung eines /items mit gleicher Nummer

Beitrag 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

Hagbard Celine
Forum-Century
Forum-Century
Beiträge: 152
Registriert: Mi 23. Feb 2011, 22:13
Wohnort: Halle (Saale)

Beitrag 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 "--".

Xenara
Forum-Meister
Forum-Meister
Beiträge: 682
Registriert: Mi 25. Nov 2009, 09:41

Beitrag 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}

C_wie_ZDU
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Mi 27. Jul 2011, 00:30

Beitrag 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.

Hagbard Celine
Forum-Century
Forum-Century
Beiträge: 152
Registriert: Mi 23. Feb 2011, 22:13
Wohnort: Halle (Saale)

Beitrag 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).

C_wie_ZDU
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Mi 27. Jul 2011, 00:30

Beitrag 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

Xenara
Forum-Meister
Forum-Meister
Beiträge: 682
Registriert: Mi 25. Nov 2009, 09:41

Beitrag 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} 

C_wie_ZDU
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Mi 27. Jul 2011, 00:30

Beitrag 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.

Xenara
Forum-Meister
Forum-Meister
Beiträge: 682
Registriert: Mi 25. Nov 2009, 09:41

Beitrag 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} 


C_wie_ZDU
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Mi 27. Jul 2011, 00:30

Beitrag 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.

Antworten