2015年2月23日月曜日

LaTeXでepsやらjpgやらpngやらを貼る

LaTeXでの図の貼り方について、僕の変遷をまとめておく。

1.jpg, png -> eps
EPS-convなどの変換ソフトを使ってjpgやpngからepsに変換して貼り付ける。
キャプチャ画像や、PowerPoint/Wordで作った図表をjpgやpngで保存したはいいものの、texの参考書や説明サイトではepsというよく分からん拡張子の画像を扱っているので、「jpg eps 変換」とかでググって出てきた変換ソフトを用いてなんとかしていた、という段階。
\usepackage[dvipdfm]{graphicx}

\begin{figure}[!tp]
  \centering
  \includegraphics[width=0.7\columnwidth]{img/image1.eps}
  \caption{caption1}
  \label{fig:image1}
\end{figure}

2.jpg, png
dvipdfmxを使うことでjpgやpngをそのまま貼り付ける。
画像をいちいち変換するの面倒だなどうにかならんのか?と思って、「tex jpg 貼り付け」あたりでググってみたところ、なんと当たり前のようにjpgやpngが貼れると知って唖然とした。
\usepackage[dvipdfmx]{graphicx}

\begin{figure}[!tp]
  \centering
  \includegraphics[width=0.7\columnwidth]{img/image2.png}
  \caption{caption2}
  \label{fig:image2}
\end{figure}
3.eps
仮想プリンタを経由してepsを直接生成して貼り付ける。
jpgやpngで貼っていると解像度が残念だなと思うことがあって、どうすればいいのかしばらく調べてみたところ、epsが結局ベストなのだろうという結論に至った。そもそもepsはベクタ型の画像の拡張子なのであって本来どんな大きさでも滑らかに描画される。これはPowerPointのオートシェイプやexcelのグラフと同じなので、作った図表をjpg等を介さずに直接的にepsにできればどんなに大きくしても滑らかな図表が貼り付けられるという寸法である。
  1. 仮想プリンタを作る
  2. 縦置きにしたPowerPointファイルで図表を作成する
  3. 仮想プリンタで印刷しepsファイルを生成する
  4. トリミング(のような処理)を施す
  5. 貼り付ける
という手順で行っていく。

1. 仮想プリンタを作る
・「コントロールパネル」 -> なんやかんや -> 「プリンタの追加」
・「ローカルプリンタ」 -> 「LPT1ポート」
・ドライバにはPSと名のついた適当なプリンタを指定(Xeroxとか)
・適当なプリンタ名(ForEPS等)を入力してNo共有No通常使用で完了
・登録したプリンタの「印刷設定」 -> 「詳細設定」
・「PostScript出力オプション」を「EPS」に設定


・(「TrueTypeフォント」を「ソフトウェアフォントとしてダウンロード」に設定)
・(「TrueTypeフォントダウンロードオプション」を「アウトライン」に設定)

下2つはフォントの埋め込みに関する設定で、pdf等に出力した際にeps中のフォントを埋め込んでくれます。

2. 縦置きにしたPowerPointファイルで図表を作成する
・図表作成用のPowerPointファイルの「デザイン」 -> 「スライドの向き」を「縦」に変更
・1スライドに1つ図表を作成する

スライドの向きが横向きのままだと出力時に図表が途切れる恐れがある(なぜかは知らない)。また、1スライドに複数の図表を作成してもよいが、後のトリミング(のような処理)を手動で行う必要がある。

3. 仮想プリンタで印刷しepsファイルを生成する
・「ファイル」 -> 「印刷」でさっき作った仮想プリンタを指定する
・「ファイルへ出力」にチェックを入れ、「現在のスライドを印刷」にする
・印刷するとファイル名を聞かれるので、「ファイルの種類」を「すべてのファイル」にしてから適当な名前を付けてeps形式で保存する(中間ファイル)

4. トリミング(のような処理)を施す
・作成した中間ファイルをGSviewで開く
・(初回: 「Options」 -> 「Show Bounding Box」にチェックを入れる)
・「File」 -> 「PS to EPS」
・「Automatically calculate Bounding Box」にチェックを入れて「Yes」
・ファイル名を聞かれるのでしっかりと名前を付けて保存する

「Show Bounding Box」で見える破線がトリミング(のような処理)を施す範囲で、「Automatically calculate Bounding Box」をOnにして保存すると適切に破線の位置を設定して保存してくれるという仕組み。自動設定に不満があったり1スライドで複数の図表を作成した場合は、epsファイルをメモ帳で開いて「Bounding Box」の値(6行目付近)を直接指定すればよい。指定方法は、左下が原点の座標系で、トリミング位置の左下の座標 ->右上の座標の順番。座標はGSviewでマウスカーソルを持っていくと簡単に読める。

5. 貼り付ける
・\includegraphicsのオプションに「clip」をつける以外は変わっていない
\usepackage[dvipdfmx]{graphicx}

\begin{figure}[!tp]
  \centering
  \includegraphics[width=0.7\columnwidth, clip]{img/image3.eps}
  \caption{caption3}
  \label{fig:image3}
\end{figure}

現在は、既にjpgやpngで存在してるファイルはそのまま貼り付けて、ExcelやPowerPointで作成した図表は直接epsにして貼り付けている。

この記事はたくさんのwebサイトを参考にさせていただきました。ありがとうございます。

0 件のコメント:

コメントを投稿