El siguiente código
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\includegraphics[angle=180,width=10cm,height=1cm]{example-image-a}
\end{document}
produce el siguiente error
! Package graphics Error: Division by 0.
See the graphics package documentation for explanation.
Type H <return> for immediate help.
...
l.148 ...0,width=10cm,height=1cm]{example-image-a}
?
¿Se espera esto? Si es así, ¿por qué? Si no, ¿por qué sucede?
Esta no es originalmente mi pregunta. Uno de mis alumnos lo preguntó y no pude responder más allá de sugerir el uso de
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\includegraphics[width=10cm,height=1cm,angle=180]{example-image-a}
\end{document}
que se compila como se esperaba.
Respuesta1
La duda se resolvió en comentarios. Pero aquí (5 meses después) explico visualmente cuál era el problema para los demás lectores, a través de MWE. En la primera línea, trazo la línea de base y dos imágenes rotadas 90 grados alrededor de su centro. El primero se especifica para height=1cm
, mientras que el segundo se especifica para totalheight=1cm
, dondetotalheight
constituye la suma de la altura más la profundidad de la imagen.
Lo que quitamos aquí es que height=1cm
se refiere explícitamente a la cantidad de altura por encima de la línea de base. Y esta es la clave para comprender el fracaso de la invocación del OP \includegraphics[angle=180,width=10cm,height=1cm]{example-image-a}
. Las directivas se procesan de izquierda a derecha. Una imagen girada 180 grados, como se muestra en la segunda línea del resultado, tiene una altura cero por encima de la línea base. Por lo tanto, no existe un nivel finito de escala que pueda ocurrir para hacer que la imagen resultante presente una 1cm
elevación por encima de la línea base. Este intento de escalar sin límites es lo que provoca el error de División por 0.
\documentclass{amsart}
\usepackage{graphicx}
\begin{document}
\leavevmode\rlap{\rule{3in}{.5pt}}
\raisebox{.4cm}{1cm}%
\rule{1pt}{1cm}
\includegraphics[origin=center,angle=90,height=1cm]{example-image}
\includegraphics[origin=center,angle=90,totalheight=1cm]{example-image}
\rule[-7.2pt]{1pt}{1cm}%
\raisebox{.25cm}{1cm}
\bigskip
Height is zero
\leavevmode\rlap{\rule{3in}{.5pt}}
\includegraphics[angle=180,width=1cm]{example-image}
scaling it by $\infty$\\ still has zero height
\end{document}