Latex で画像位置がずれる問題へ対処した話
経緯
lab メンが某会議への論文投稿でハマっていたのをみんなで解決した.ググってもなかなかドンピシャの解決にたどり着けなかったので記事に残す.
想定する読者
- 論文の投稿を dvi + eps 形式で行うように指定されている人
- Overleaf のプレビューでは正しいのに,dvi を出力してコンパイルすると画像位置がどうしてもずれてしまう人
- matplotlib で eps 形式の図を出力して latex に includegraphics しようとしている人
発生した問題
ことの経緯を以下にまとめる.
- モデル図はパワポで作って eps 形式で保存
- グラフは python の matplotlib.pyplot で描画して eps 形式で保存
- Overleaf でこれらの eps ファイルを includegraphics
- コンパイラを latex に設定してコンパイル
- Overleaf のプレビューで正しくコンパイルできていることを確認
- Overleaf のドキュメントに従って dvi 形式でダウンロード
- eps ファイルたちと dvi ファイルを一つのフォルダにまとめて zip
- 某会議に zip ファイルを提出
- 某会議のシステムで pdf にコンパイルされ,その結果がこちらに届く
- 届いたものを確認するとグラフの表示位置がずれている
似たような状況として以下がある.ただしこちらの解決策は今回通用しなかった.
私たちが dvi 形式に疎く,また某会議がわのコンパイル環境がわからなかったこともあり,対処が難航した.Overleaf で出ているエラーを解決したり,includegraphics のオプションで重複のある部分を取り除いたり,利用 OS の種類を某会議への提出時に選択するのだが,それを変えてみたり....
対処
調査の結果,上記と同じことが起きていたっぽいことがわかった.matplotlib でグラフを保存する際 pdf 形式を選択し,ImageMagic で eps に変換することで解決した.
eps にはいろんな情報が含まれているっぽい.今回は一部の余分な情報が悪さをしてて,pdf にすることでそいつを落としたら解決したのかな,と理解した.知らんけど.
あとがき
Overleaf の問題なのか,某会議の方の問題なのか,ビューワーの問題なのかがわからなくて苦労した.Overleaf で直接 pdf をダウンロードできるので,私含めみんなが dvi を意識したことがなかったのも足を引っ張った.
私含め 5 人でこの問題に対処したのだが,結果的に解決に繋がらなかった方法も含めて,それぞれが鋭い着想に基づいた方法で lab メンつおいってなった.eps 全てではなく,グラフだけがずれていることに着目した lab メンがこの方法を提案し,それを聞いた私が上の記事を見つけた.ちゃんとした位置に図が配置されている pdf を見たときは歓声が上がった.みんなで課題解決するの楽しい.
ちなみに今回は eps 形式という指定があったからそうしたが,選べるのなら eps 形式ではなく pdf 形式で図を入れたほうが安定だと思う.こことかにそう書いてある.
何はともあれ無事投稿できたようで安心.通っているといいな.