PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : verschachtelte Aufzählung unterbrechen



zac
20-07-2011, 22:24
Ich würde gerne eine Aufzählung Unterbrechen und danach weiterzählen lassen. Da gibt es natürlich genug Lösungen im Internet, mein Problem ist aber, dass ich zwei verschachtelte Aufzählungen hab. Es soll in etwa so aussehen.

Anfang
1. erster Punkt
a) a-tens
b) b-tens
Mitte
c) c-tens
d) d-tens
2. zweiter Punkt

(also die Aufzählungen sollen immer eingerückt sein

Hat mir dafür einer eine Lösung, so dass TexnicCenter keine Fehler ausspuckt?

Mein Versuch:



\documentclass[a4paper]{scrartcl} %Dokumentklasse - für kürzere Artikel und Aufsätze
\usepackage[ansinew]{inputenc}
\usepackage{mdwlist}

%%%%%%%%%%%%%%%%%%%%%%Alphabetische Aufzählung%%%%%%%%%%%%%%%%%%%%%%%%
\newcounter{iabc}
\newenvironment{abcList}{\begin{list}
{\alph{iabc})}
{\usecounter{iabc}}
%\addtolength{\itemsep}{0.5ex}}
}{\end{list}}

\begin{document}
\section*{Anfang}
\begin{enumerate}
\item erster Punkt
\begin{abcList}
\item a-tens
\item b-tens
\suspend{abcList}
\suspend{enumerate}
\section*{Mitte}
\resume{enumerate}
\resume{abcList}
\item c-tens
\item d-tens
\end{abcList}
\item zweiter Punkt
\end{enumerate}
\end{document}


Das Ergebnis sieht zwar so aus, wie ich will, allerdings sind da zwei Fehler drin, da ich kein \item nach \resume{enumerate} habe.

raspittyplatsch
22-07-2011, 10:39
Was stört dich daran:


\documentclass[a4paper]{scrartcl} %Dokumentklasse - für kürzere Artikel und Aufsätze
\usepackage[ansinew]{inputenc}
\usepackage{mdwlist}

%%%%%%%%%%%%%%%%%%%%%%Alphabetische Aufzählung%%%%%%%%%%%%%%%%%%%%%%%%
%\newcounter{iabc}
%\newenvironment{abcList}{\begin{list}
% {\alph{iabc})}
% {\usecounter{iabc}}
%\addtolength{\itemsep}{0.5ex}}
% }{\end{list}}

\begin{document}
\section*{Anfang}
\begin{enumerate}
\item erster Punkt
\begin{enumerate}
\item a-tens
\item b-tens
\suspend{enumerate}
%\suspend{enumerate}
\section*{Mitte}
%\resume{enumerate}
\resume{enumerate}
\item c-tens
% \resume{abcList}
\item d-tens
% \end{abcList}
\end{enumerate}
\item zweiter Punkt
\end{enumerate}
\end{document}

zac
26-07-2011, 13:20
in deinem Beispiel ist "Mitte" eingerückt, das will ich aber nicht

u_fischer
26-07-2011, 14:13
Den Fehler bekommst du, weil ein leerer \item fehlt (den gäbe es auch ohne resume/suspend).

Allerdings auch damit funktioniert es nicht, weil mdwlist die Umgebung nur lokal speichert, die innere geht damit verloren. Das kannst du so korrigieren:




\documentclass[a4paper]{scrartcl}
\usepackage[ansinew]{inputenc}
\usepackage{mdwlist}
\makeatletter
\def\suspend@i[#1]#2{%
\edef\@tempa{%
\noexpand\end{#2}%
\gdef\expandafter\noexpand\csname resume.#1\endcsname{%<--
\csname c@\@listctr\endcsname\the\csname c@\@listctr\endcsname%
}%
}%
\@tempa%
}
\makeatother

\begin{document}
\section*{Anfang}
\begin{enumerate}
\item erster Punkt
\begin{enumerate}
\item a-tens
\item b-tens
\suspend[A]{enumerate}
\suspend{enumerate}
\section*{Mitte}
\resume{enumerate}
\item[]\resume[A]{enumerate}
\item c-tens
\item d-tens
\end{enumerate}
\item zweiter Punkt
\end{enumerate}
\end{document}