Estou tentando fazer uma enumerate
lista que contenha os números dentro de um círculo colorido. Para os círculos estou usando o tikz
pacote e o color
pacote. Defino um círculo no preâmbulo e depois redefino os itens da 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}
O problema é que em vez de imprimir os números da lista, ele apenas imprime um arquivo enumi
. Estou seguindo o Wikibooks nopersonalizando listas enumeradas. Acho que deveria haver uma maneira de fazer funcionar sem adicionar pacotes extras, mas não sei como.
Se não acabar enumi
,como devo acessar o número da lista?
Saúde!
Responder1
Você devenãodigamos \textbf#1
, mas \bfseries#1
ou \textbf{#1}
. Também deveria ser \arabic{enumi}
, não : com o seu código que enumi
você está passando enumi
como , e não com a instrução que imprime o valor do contador.\circled
#1
No entanto, sugiro 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}
Você pode personalizar todos enumerate
os ambientes de primeiro nível para usar \circled
com
\setlist[enumerate,1]{label=\circled{\arabic*},ref=\arabic*}
no preâmbulo e você não precisará de nenhum argumento opcional para \begin{enumerate}
.
Se você não quiser pacotes extras, mas não sei por que, então o método de redefinição \labelenumi
funcionará, desde que seja
\renewcommand{\labelenumi}{\protect\circled{\arabic{enumi}}}
No entanto, lembre-se que na definição de \circled
vocêdevefaça um \bfseries#1
ou \textbf{#1}
, porque \textbf#1
está errado e produzirá erros inescrutáveis.
Por que você deveria querer carregar enumitem
? Simples; se você fizer
\item\label{foo} text
e tente \ref{foo}
, você receberá um número circulado no texto, que não parece correto. Com o código acima enumitem
, usar \ref{foo}
apenas imprimirá um número sem adornos.