lscapeを使うと、指定外の回転しない部分でno bounding boxとなる

lscapeを使うと、指定外の回転しない部分でno bounding boxとなる

- DAIKAKU KATO の投稿
返信数: 2
jsbookでlscape.styを使ってあるページだけを横回転したいと考えています。
基本的には問題なくこれが実現できているのですが、横回転しない、つまり
\begin{landscape}xxx\end{landscape}
で囲んでいない部分に、画像があるとコンパイルした際に
! LaTeX Error: Cannot determine size of graphic in sample.pdf (no BoundingBox).
のエラーが出てしまいます。

\usepackageからlscapeを削除すれば、もちろん横回転はできませんが、
エラーは出ません。逆に\begin{figure}xxx\end{figure}を削除すれば、
横回転は無事できます。

指定部分を回転させ、非指定部分に画像を含む文書を作成したいです。
お知恵をお借りできれば幸いです。どうぞよろしくお願いいたします。

\documentclass[12pt]{jsbook}
\usepackage{okumacro,booktabs,longtable,lscape}
\usepackage[dvipdfmx,hiresbb]{graphicx}
\begin{document}
あいう
\begin{figure}[!bht]
\centering
\includegraphics[width=36zw]{sample.pdf}\\
\caption{sample}
\end{figure}

\clearpage
\begin{landscape}
aiueo
\end{landscape}
\end{document}

DAIKAKU KATO への返信

Re: lscapeを使うと、指定外の回転しない部分でno bounding boxとなる

- aminophen の投稿
lscape.sty は graphicx.sty に依存しています。
したがって、lscape を \usepackage した時点で graphicx が読み込まれるのですが、
この時点で graphicx がまだ読み込まれていないためドライバ指定がデフォルトのままになります。
すなわち dvips という誤ったドライバが指定されたのと同じ状態になっています。

このことは、\documentclass よりまえに \listfiles というコマンドを追加してタイプセットすると
(エラーが出たらそのまま無視して Enter で継続してください)、ログに lscape.sty より手前の
時点で graphicx.sty と dvips.def が読まれていることから確認できます。

解決法は、lscape より前の段階で「dvipdfmx ドライバ指定をした graphicx を \usepackage すること」です。

\listfiles % これをつけると読まれたファイルの一覧が表示される;デバッグ時以外は除いて良い
\documentclass[12pt]{jsbook}
\usepackage[dvipdfmx,hiresbb]{graphicx}
\usepackage{okumacro,booktabs,longtable,lscape}
\begin{document}
あいう
\begin{figure}[!bht]
\centering
\includegraphics[width=36zw]{sample.pdf}\\
\caption{sample}
\end{figure}

\clearpage
\begin{landscape}
aiueo
\end{landscape}
\end{document}

このような思いがけない「ドライバ詐称」を避けるために、常日頃からドライバオプションをクラスオプションで
指定しておくとよいかもしれません。すなわち

\documentclass[dvipdfmx,12pt]{jsbook}

のようにします。これと同じ原因(意図に反して dvips.def が読まれる)の graphicx 周りのトラブルは

-https://okumuralab.org/tex/mod/forum/discuss.php?d=1594
-https://okumuralab.org/tex/mod/forum/discuss.php?d=1606

などでも出たことがあります。
aminophen への返信

Re: lscapeを使うと、指定外の回転しない部分でno bounding boxとなる

- DAIKAKU KATO の投稿
アセトアミノフェンさん、ありがとうございました。
迅速にお返事をくださり、感動しているところです。

おっしゃるやり方で、うまく行きました。
lscapeで事例を検索していたので、おっしゃる解法に
到達できなかったのですね。graphicxで調べてみることに
頭が回りませんでした。dvipdfmxをクラスオプションにして
おくアイディアなど、勉強になりました。

とても参考になりました。重ねて、御礼申し上げます。
ありがとうございました。