キーと値の順序に依存する \includegraphics エラー: ! パッケージ グラフィックス エラー: 0 による除算

キーと値の順序に依存する \includegraphics エラー: ! パッケージ グラフィックス エラー: 0 による除算

次のコード

\documentclass{article}
\usepackage{graphicx}
\begin{document}
  \includegraphics[angle=180,width=10cm,height=1cm]{example-image-a}
\end{document}

次のエラーが発生します

! 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}

? 

これは予想通りですか? そうであれば、その理由は? そうでない場合、なぜ起こるのですか?

これはもともと私の質問ではありません。私の生徒の一人が尋ねたのですが、私は

\documentclass{article}
\usepackage{graphicx}
\begin{document}
  \includegraphics[width=10cm,height=1cm,angle=180]{example-image-a}
\end{document}

期待通りにコンパイルされます。

答え1

この質問はコメントで解決されました。しかし、ここで(5 か月後)、MWE を使って、他の読者のために問題点を視覚的に説明します。最初の行では、ベースラインと、中心を 90 度回転した 2 つの画像をプロットします。最初の画像は に指定されheight=1cm、2 番目の画像は に指定されます。totalheight=1cmここで、 はtotalheight画像の高さと奥行きの合計になります。

ここで理解できることは、 がheight=1cmベースラインからの高さの量を明確に参照しているということです。そして、これが OP の呼び出しの失敗を理解する鍵です\includegraphics[angle=180,width=10cm,height=1cm]{example-image-a}。ディレクティブは左から右に処理されます。出力の 2 行目に示すように、180 度回転した画像は、ベースラインからの高さがゼロです。したがって、結果の画像がベースラインからの高さを示すようにスケーリングできる有限レベルはありません1cm。この無制限のスケーリングの試みが、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}

ここに画像の説明を入力してください

関連情報