2015年6月8日

この話,割と面倒だなぁと思う.原因はtikzが呼び出しているxcolorパッケージのドライバが指定されていないので,dvipsと仮定される→xcolorパッケージとドライバ指定を共有するgraphicxのドライバもdvipsになっちゃうということ.うー,面倒だ.とりあえずxcolorにドライバを指定すればよいので,別途\usepackage[dvipdfmx]{xcolor}するか,読まれるパッケージ全体に伝わるように\documentclassにdvipdfmxを指定するかとすればともかく解決する.

しかし最初のソース,一見すると「tikzのドライバ指定がない」のでそれがまずそうではある.しかし事情はもうちょっと面倒だ.例えばこんなソース.

\documentclass{jsarticle}
\usepackage[dvipdfmx]{graphicx}
\def\pgfsysdriver{pgfsys-dvipdfmx.def}
\usepackage{tikz}
\begin{document}
\includegraphics{img.jpg}
\end{document}
graphicxには正しいドライバ指定がされているし,tikzも正しい指定方法だと思うが,やはりこれでも駄目だ.実は最初のソースでもtikzはドライバ指定がされていて,graphicxのドライバ指定を受け継いでいる.(だから\pgfsysdriverの行はあってもなくても変わらない.)つまり,自分で\usepackageしているパッケージには全て正しくドライバ指定をしているのに駄目な例なのである.ひ,酷い…….

と言うわけで,platex + dvipdfmxで動いているときはもう何も考えずに\documentclassのオプションにdvipdfmxを常にあたえればいいんじゃなかと思った.パッケージごとにドライバを指定する現段階での利点ってなんだろう?dvipdfmx用のくせにdvipdfmxという名前じゃなかったりする時?

ただ,手元のpgfmanualを眺めてみたけど,ドライバ指定の方法は\pgfsysdriverしか書かれていないような気がしてならない.\documentclassにあたえる方法とか,graphicxから受け継がせる方法とかどこに書いてあるんだろう…….

0 件のコメント:

コメントを投稿

コメントの追加にはサードパーティーCookieの許可が必要です