Mientras ayudaba a una amiga con su tesis, me encontré con un problema extraño con itemize. Ella necesita usar alguna imagen pequeña como etiqueta para su artículo, y le sugerí usar \item[\includegraphics{xx}]
. Sin embargo, descubrimos que usar el argumento opcional for para \includegraphics
establecer algún parámetro de la figura (es decir, el tamaño) hace que la compilación falle.
En cambio, si creo un comando auxiliar que solo toma un argumento, la compilación avanza sin problemas.
¿Alguien puede darme una pista de por qué sucede esto? ¿Y tal vez dónde mirar para entender lo que está sucediendo aquí? ¡Muchas gracias!
Aquí un MWE, requiere la imagen example.png
en su directorio de trabajo:
\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}
Respuesta1
TeX no rastrea el anidamiento de corchetes como lo hace con las llaves.
Cuando anidas llaves
{.... { .... } ....}
1 2 2 1
entonces TeX sabe qué pares van juntos. Esto no sucede con los corchetes. Aquí el código simplemente busca el siguiente corchete de cierre. Entonces TeX los emparejará así
\item[\includegraphics[width=0.5cm]{example.png}]
1 2 1
y tu mando se rompe. Para evitar esto, puede ocultar el soporte interior en un grupo de llaves:
\item[{\includegraphics[width=0.5cm]{example.png}}]
1{ 2 2 }1
Respuesta2
Dado que utiliza la misma imagen en todos los elementos, puede ser más fácil modificar la \imagebullet
macro como desee y luego simplemente insertarla [\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}