Texで論文を書く際に、以下のようなelsarticle.clsというクラスを使用する機会がありました。(Elsevierが提供する論文投稿に適したフォーマット)
\documentclass[preprint,5p,fleqn,sort&compress,number,times,twocolumn]{elsarticle}
この時に発生していた、pdfなどのBounding Boxが自動読み込みされない問題について触れています。
使用していたのはTexLive2019で、platex2pdfでコンパイルしていました。
#発生していた問題
問題としてはコンパイル時に、
LaTeX Error: Cannot determine size of graphic in ../figure/Figure1.pdf (no Bo
undingBox).
のようなエラーが出るという単純なものです。
このエラーログ自体は、挿入したいファイルのbounding boxが分からないというエラーです。解決策としては、確かTexLive2015以降のversionだと、プリアンブルで
\usepackage{graphicx}[dvipdfmx]
というようにパッケージを導入することで、自動でbounding boxがファイルから読み込まれて上手くいきます。従って、普段Texで文章を書くときは、おまじないのように上記のパッケージを書いています。
しかし、どうもelsarticleのクラスは上述のパッケージと衝突し、この方法では上手くコンパイルできないようです。
#解決策
##×良くない方
とりあえず、調べてもいまいち良い解決策が見つからなかったので手動でBounding Boxを書いていました。
ちなみに、Bounding Boxは単なるピクセルサイズじゃないんで、extractbbのコマンドを使って調べてました。(面倒くさいんでお勧めしないです)
##◎良い方
結論だけいうと、コードの先頭に"\PassOptionsToPackage{dvipdfmx}{graphicx}"を一文追加するだけで治りました。
%修正前
\documentclass[preprint,5p,fleqn,sort&compress,number,times,twocolumn]{elsarticle}
\usepackage{graphicx}[dvipdfmx]
%修正後
\PassOptionsToPackage{dvipdfmx}{graphicx}
\documentclass[preprint,5p,fleqn,sort&compress,number,times,twocolumn]{elsarticle}
\usepackage{graphicx}[dvipdfmx]
#最後に
正直"\PassOptionsToPackage"が何をしているのかが良く分からないんで勉強中ですが、packegeのoption関係を調べれば分かるんですかね?
ご存知の方がいれば、治る理由が知りたいですね。