Ich versuche, eine enumerate
Liste zu erstellen, die die Zahlen in einem farbigen Kreis enthält. Für die Kreise verwende ich das tikz
Paket und das color
Paket. Ich definiere einen Kreis in der Präambel und definiere dann die Listenelemente neu:
\documentclass{report}
\usepackage{color}
\usepackage{tikz}
% Defining the circle:
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
\node[shape=circle,draw,inner sep=2pt,fill=lightgray,lightgray] (char) {\color{gray}\textbf#1};}}
% Redefining the list items
\renewcommand{\labelenumi}{\protect\circled{enumi}}
\begin{document}
\begin{enumerate}
\item foo
\item bar
\end{enumerate}
\end{document}
Das Problem ist, dass statt der Listennummern nur ein gedruckt wird enumi
. Ich folge den Wikibooks aufAnpassen von Aufzählungslisten. Ich denke, es sollte eine Möglichkeit geben, es zum Laufen zu bringen, ohne zusätzliche Pakete hinzuzufügen, aber ich weiß nicht wie.
Wenn es nicht durch ist enumi
,Wie kann ich auf die Nummer der Liste zugreifen??
Prost!
Antwort1
Du solltestnichtsagen wir \textbf#1
, aber \bfseries#1
oder \textbf{#1}
. Außerdem sollte es heißen \arabic{enumi}
, nicht enumi
: Mit Ihrem Code übergeben Sie enumi
an \circled
als #1
, nicht an die Anweisung, die den Wert des Zählers ausgibt.
Ich schlage jedoch vor, Folgendes zu verwenden enumitem
:
\documentclass{report}
\usepackage{color}
\usepackage{tikz}
\usepackage{enumitem}
% Defining the circle:
\DeclareRobustCommand*\circled[1]{%
\tikz[
baseline=(char.base)
]{%
\node[
shape=circle,
draw,
inner sep=2pt,
fill=lightgray,
lightgray
] (char) {\color{gray}\bfseries#1};%
}%
}
\begin{document}
\begin{enumerate}[label=\circled{\arabic*},ref=\arabic*]
\item foo
\item bar
\end{enumerate}
\end{document}
Sie können alle enumerate
Umgebungen der ersten Ebene für die Verwendung \circled
mit anpassen
\setlist[enumerate,1]{label=\circled{\arabic*},ref=\arabic*}
in der Präambel und Sie benötigen kein optionales Argument für \begin{enumerate}
.
Wenn Sie keine zusätzlichen Pakete möchten (ich bin mir aber nicht sicher, warum), \labelenumi
funktioniert die Methode der Neudefinition, vorausgesetzt, sie ist
\renewcommand{\labelenumi}{\protect\circled{\arabic{enumi}}}
Denken Sie jedoch daran, dass in der Definition von \circled
SiemussMachen Sie entweder das eine \bfseries#1
oder das andere \textbf{#1}
, denn \textbf#1
das ist falsch und führt zu unerklärlichen Fehlern.
Warum sollten Sie laden wollen enumitem
? Ganz einfach: Wenn Sie
\item\label{foo} text
und dann versuchen Sie \ref{foo}
, erhalten Sie eine eingekreiste Zahl im Text, die nicht korrekt erscheint. Mit dem obigen Code wird bei Verwendung von enumitem
nur \ref{foo}
eine schmucklose Zahl gedruckt.