Tikzを使うとGraphicxの画像が消える


LaTexでTikzをusepackageするとそれまで描画されていたgraphicxの画像が消えてしまいます。

TikzとGraphicxは同時に使えないのでしょうか。  
以下にコードを示します。  
ちなみにコンパイルは成功します。画像部分だけが消えてcaptionは残ります。

usepackage部分

[code]

    \usepackage[dvipdfmx]{graphicx}
    \usepackage{graphicx}
    \usepackage{float}
    \usepackage{tikz}
    \usetikzlibrary{chains}
    \usepackage{epstopdf}
    
[/code]

画像描画部分

[code]

    \begin{figure}[H]
      \centering
      \includegraphics[width=10cm]{images/hoge.png}
      \caption{hoge}
    \end{figure}
    
[/code]




`tikz` パッケージは内部で `color` パッケージをロードします。`color` パッケージと `graphicx`
パッケージはともに「ドライバ依存」（ドライバとは例えば dvipdfmx や dvips
などのデバイスのこと）であり、なおかつ、その「ドライバ依存のコードを定義したファイル」を共有しています。したがって、`\usepackage[dvipdfmx]{graphicx}`
の時点で正しいドライバ定義ファイル `dvipdfmx.def` を読み込んでいても、その後で `\usepackage{color}`
した際に「デフォルトのドライバ定義ファイル」である `dvips.def` が読み込まれて定義の上書きが起きてしまいます。`dvips.def` は EPS
以外の画像形式をサポートしないので、この上書きにより PNG などの他の形式の画像が取り込まれなくなります。そこで、

[code]

    \documentclass[a4j,dvipdfmx]{jarticle}
    
[/code]

のようにクラスファイルを指定する際に「グローバルなドライバ指定」をするか、

[code]

    \usepackage[dvipdfmx]{color}
    \usepackage{tikz}
    
[/code]

のように事前に `color` パッケージをドライバ指定付きで読み込んでおきます。全体としては以下の様になるかと思います。

[code]

    \documentclass[a4j,dvipdfmx]{jarticle}
    
    \usepackage{float}
    \usepackage{graphicx}
    \usepackage{tikz}
    \usetikzlibrary{chains}
    \usepackage{epstopdf}
    
    \begin{document}
    
    \begin{figure}[H]
      \centering
      \includegraphics[width=10cm]{images/hoge.png}
      \caption{hoge}
    \end{figure}
    
    \end{document}
    
[/code]




`tikz` パッケージは内部で `color` パッケージをロードします。`color` パッケージと `graphicx`
パッケージはともに「ドライバ依存」（ドライバとは例えば dvipdfmx や dvips
などのデバイスのこと）であり、なおかつ、その「ドライバ依存のコードを定義したファイル」を共有しています。したがって、`\usepackage[dvipdfmx]{graphicx}`
の時点で正しいドライバ定義ファイル `dvipdfmx.def` を読み込んでいても、その後で `\usepackage{color}`
した際に「デフォルトのドライバ定義ファイル」である `dvips.def` が読み込まれて定義の上書きが起きてしまいます。`dvips.def` は EPS
以外の画像形式をサポートしないので、この上書きにより PNG などの他の形式の画像が取り込まれなくなります。そこで、

[code]

    \documentclass[a4j,dvipdfmx]{jarticle}
    
[/code]

のようにクラスファイルを指定する際に「グローバルなドライバ指定」をするか、

[code]

    \usepackage[dvipdfmx]{color}
    \usepackage{tikz}
    
[/code]

のように事前に `color` パッケージをドライバ指定付きで読み込んでおきます。全体としては以下の様になるかと思います。

[code]

    \documentclass[a4j,dvipdfmx]{jarticle}
    
    \usepackage{float}
    \usepackage{graphicx}
    \usepackage{tikz}
    \usetikzlibrary{chains}
    \usepackage{epstopdf}
    
    \begin{document}
    
    \begin{figure}[H]
      \centering
      \includegraphics[width=10cm]{images/hoge.png}
      \caption{hoge}
    \end{figure}
    
    \end{document}
    
[/code]

