Estoy intentando hacer una enumerate
lista que tenga los números dentro de un círculo de color. Para los círculos estoy usando el tikz
paquete y el color
paquete. Defino un círculo en el preámbulo y luego redefino los elementos de la lista:
\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}
El problema es que en lugar de imprimir los números de la lista, simplemente imprime un archivo enumi
. Estoy siguiendo los Wikilibros enpersonalizar listas enumeradas. Creo que debería haber una manera de hacerlo funcionar sin agregar paquetes adicionales, pero no sé cómo.
Si no ha terminado enumi
,¿Cómo debo acceder al número de la lista??
¡Salud!
Respuesta1
Deberíanodecir \textbf#1
, pero \bfseries#1
o \textbf{#1}
. También debería ser \arabic{enumi}
, no : con el código al que enumi
estás pasando enumi
como , no la instrucción que imprime el valor del contador.\circled
#1
Sin embargo sugiero usar 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}
Puede personalizar todos enumerate
los entornos de primer nivel para \circled
utilizarlos
\setlist[enumerate,1]{label=\circled{\arabic*},ref=\arabic*}
en el preámbulo y no necesitará ningún argumento opcional para \begin{enumerate}
.
Si no desea paquetes adicionales, pero no estoy seguro de por qué, entonces el método de redefinición \labelenumi
funcionará, siempre que sea
\renewcommand{\labelenumi}{\protect\circled{\arabic{enumi}}}
Sin embargo recuerda que en la definición de \circled
tidebehaga cualquiera de los dos \bfseries#1
o \textbf{#1}
porque \textbf#1
está mal y producirá errores inescrutables.
¿Por qué deberías querer cargar enumitem
? Simple; si lo haces
\item\label{foo} text
y luego inténtalo \ref{foo}
, obtendrás un número encerrado en un círculo en el texto, que no parece correcto. Con el código anterior usando enumitem
, \ref{foo}
simplemente imprimirá un número sin adornos.