2015年7月3日金曜日

LaTeXとの格闘(png貼り付け編)

LaTeXに貼りつける図はこれまでほとんどepsファイルだったのですが、
面倒なのでpngファイルを貼りつけたいなと思いました。

これまでもチャレンジに失敗していて放置していましたが、
今後のことも考えてこの問題に取り組むことにしました。

環境は、Windows7 と 8.1、texはW32Tex、エディタはTeXstudioです。


TeXwikiのページ(リンク)を見ると、
ほとんど何も設定せずにできるみたいに書いてあります。

\includegraphics[オプション]{file.png}

これだけです。あとは\usepackage[dvipdfmx]{graphicx}ぐらいで
そんなに凝ったものがあるわけでなく。

でも、できませんでした。

ログのエラーメッセージを見ると、
「no BoundingBox」
バウンディングボックスが無いらしい。
そんな設定がいるとか聞いていませんが。

メッセージをみると、どうやらバウンディングボックスを作るコマンド
extractbbがうまく動いていないらしい。さらに
「上記の現在ディレクトリでCMD.EXEを開始しました。
 UNCパスはサポートされていません。Windowsディレクトリを規定で使用します。」

???
意味が分からない。

意味が分からないながら、ソースファイルと画像をCドライブに移してみました。

・・・できました。。。


原因は、
・uplatex実行時に自動的にextractbb.exeが実行される
・extractbb.exeはCMD.EXE(コマンドプロンプト)で実行される
・コマンドプロンプトではUNCパスがサポートされていない
 (UNCパス:\\server\folderのようなパス)
・ファイルがネットワークディスクにあったためextractbb.exeが失敗

の合わせ技です。



対処は、
・コマンドプロンプトでUNCパスが使えるように(?)レジストリを変更
http://futuremix.org/2009/10/unc-support-for-cmd
 \HKEY_CURRENT_USER\Software\Microsoft\Command Processor にDisableUNCCheck という DWORD 値を作成し 1 をセットします
です。普通にコマンドプロンプトでネットワークディスクに移動する方法は、
pushdを使う方法があるみたいです。
ただ、自動的に実行されるextractbbに対してどうしたらいいか分からず、
レジストリの変更は怖いのでやりたくないですが仕方なくやってみました。



ということで、いいやり方かどうかは分かりませんが、
pngファイルをLaTeXに貼りつけることができました。
ファイルがローカルディスク上にあれば苦労することは無いはずです。。。

0 件のコメント:

コメントを投稿