Archiv verlassen und diese Seite im Standarddesign anzeigen : Makro in paralist
Hallo,
mit dem package paralist kann die Listennummerierung optional angegeben werden. Also bei
\begin{enumerate}[(a)] ...
wird
(a)
(b)
(c) ... gesetzt.
Jedoch kann hier offenbar kein Makro verwendet werden. Im Beispiel wird dann
(a)
(a)
(a) gesetzt
weis hier jemand Abhilfe?
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{paralist} % erweitert enumerate um eigene Symbole
\newcommand{\absfmt}{(a)}
\begin{document}
\begin{enumerate}[§1]
\item Erster Punkt
\begin{enumerate}[\absfmt]
\item bla
\item bla bla
\item bla bla bla
\end{enumerate}
\item Zweiter Punkt
\end{enumerate}
\end{document}
mechanicus
02-06-2012, 14:32
Hi,
abgesehen davon, dass ich zu enumitem rate, musst du sicherstellen, dass das Makro vor der Übergabe expandiert wird:
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{paralist} % erweitert enumerate um eigene Symbole
\newcommand{\absfmt}{(a)}
\begin{document}
\begin{enumerate}[§1]
\item Erster Punkt
\begingroup
\edef\x{\endgroup\noexpand\begin{enumerate}[\absfmt]}\x
\item bla
\item bla bla
\item bla bla bla
\end{enumerate}
\item Zweiter Punkt
\end{enumerate}
\end{document}
Marco
Hallo,
o.k. vielen Dank.
mit enumitem funktioniert auch das Makro ohne dass vorher explizit expandiert wird.
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{enumitem}
\newcommand{\absfmt}{(\roman*)}
\begin{document}
\begin{enumerate}[label=§\arabic*]
\item Erster Punkt
\begin{enumerate}[label=\absfmt]
\item bla
\item bla bla
\item bla bla bla
\end{enumerate}
\item Zweiter Punkt
\begin{enumerate}[label=\absfmt]
\item a
\item b
\end{enumerate}
\end{enumerate}
\end{document}
mau
kitkat
mechanicus
02-06-2012, 15:51
mit enumitem funktioniert auch das Makro ohne dass vorher explizit expandiert wird.
Es hat niemand das Gegenteil behauptet.
Marco
sommerfee
02-06-2012, 18:08
musst du sicherstellen, dass das Makro vor der Übergabe expandiert wird:
Ich halte das für einen Bug in paralist, sollte man IMHO dem Autor melden.
mechanicus
02-06-2012, 19:27
Ich halte das für einen Bug in paralist, sollte man IMHO dem Autor melden.
Dann muss aber mehr geändert werden:
\makeatletter
\def\@enumlabel@#1[#2]{%
\@plmylabeltrue
\@tempcnta0
\pl@lab{}%
\let\pl@the\pl@qmark
\expandafter \expandafter \expandafter\pl@loop\@gobble#2\@@@
\ifnum\@tempcnta=1\else
\PackageWarning{paralist}{Incorrect label; no or multiple
counters.\MessageBreak The label is: \@gobble#2}%
\fi
\expandafter\edef\csname label\@enumctr\endcsname{\the\pl@lab}%
\expandafter\let\csname the\@enumctr\endcsname\pl@the
#1}
\makeatother
Das wäre die richtige Definition.
Wird paralist überhaupt noch gepflegt?
Marco
sommerfee
02-06-2012, 22:17
Wird paralist überhaupt noch gepflegt?
Laut http://ctan.org/author/id/schandl ja, was aber nicht viel sagen muß...
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.