Ao ajudar uma amiga com sua tese, me deparei com um problema estranho com o itemize. Ela precisa usar alguma imagem pequena como rótulo para seu item, e eu sugeri usar \item[\includegraphics{xx}]
. Entretanto, descobrimos que usar o argumento opcional for para \includegraphics
definir algum parâmetro da figura (ou seja, o tamanho) faz com que a compilação falhe.
Em vez disso, se eu criar um comando auxiliar que receba apenas um argumento, a compilação prosseguirá sem problemas.
Alguém pode me dar uma dica de por que isso acontece? E talvez onde procurar para entender o que está acontecendo aqui? Muito obrigado!
Aqui um MWE, requer a imagem example.png
em seu diretório de trabalho:
\documentclass{article}
\usepackage{graphicx}
\newcommand{\imagebullet}[1]{\includegraphics[width=0.5cm]{#1}}
\begin{document}
\begin{itemize}
\item[\imagebullet{example.png}] This works
\item[\includegraphics[width=0.5cm]{example.png}] This does not!
\end{itemize}
\end{document}
Responder1
O TeX não rastreia o aninhamento de colchetes como faz com colchetes.
Quando você aninha chaves
{.... { .... } ....}
1 2 2 1
então o TeX sabe quais pares pertencem um ao outro. Isso não acontece com colchetes. Aqui o código simplesmente procura o próximo colchete de fechamento. Então o TeX irá emparelhá-los assim
\item[\includegraphics[width=0.5cm]{example.png}]
1 2 1
e seu comando é interrompido. Para evitar isso, você pode ocultar o colchete interno em um grupo de chaves:
\item[{\includegraphics[width=0.5cm]{example.png}}]
1{ 2 2 }1
Responder2
Como você usa a mesma imagem em todos os itens, pode ser mais fácil modificar a \imagebullet
macro como desejar, bastando inserir o arquivo [\imagebullet]
.
\documentclass{article}
\usepackage{graphicx}
\newcommand{\imagebullet}{$\vcenter{\hbox{\includegraphics[width=0.5cm]{example-image}}}$}
\begin{document}
\begin{itemize}
\item[\imagebullet] This works
\item[\imagebullet] This also works
\end{itemize}
\end{document}