2016年1月4日月曜日

powerpointの図をepsにしてtexに貼る(Windows8)

powerpointの図をeps形式(拡大してもギザギザしない形式の1つ)で保存してtexに貼りたいなと思い立ち、適当にググってみるもののWMF2EPSはWindows8に対応していない(らしい)ので仮想プリンタでも使うか、なんて思って設定してみたのにPSと名のついたドライバ選択しても出力失敗するんですけど!という事態に陥ったので、解決策をまとめておく。
  1. 仮想プリンタを作る
  2. 縦置きにしたPowerPointファイルで図表を作成する
  3. 仮想プリンタで印刷しepsファイルを生成する
  4. トリミング(のような処理)を施す
  5. 貼り付ける
という手順で行っていく。

1. 仮想プリンタを作る
・「コントロールパネル」 -> なんやかんや -> 「プリンターの追加」
・「探しているプリンターはこの一覧にはありません」->「ローカルプリンタ」 -> 「FILE:ポート」
・ドライバには「Generic」→「MS Publisher Color Printer」を選択
・適当なプリンタ名(ForEPS等)を入力してNo共有No通常使用で完了
・登録したプリンタの「印刷設定」 -> 「詳細設定」
・「PostScript出力オプション」を「EPS」に設定
・(「TrueTypeフォント」を「ソフトウェアフォントとしてダウンロード」に設定)
・(「TrueTypeフォントダウンロードオプション」を「アウトライン」に設定)

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

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

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

3. 仮想プリンタで印刷しepsファイルを生成する
・「ファイル」 -> 「印刷」でさっき作った仮想プリンタを指定する
・「現在のスライドを印刷」→「印刷」を実行
・ファイル名を聞かれるので、「ファイルの種類」を「すべてのファイル」にしてから「_tmp.eps」等の適当な名前で保存する(中間ファイル)

4. トリミング(のような処理)を施す
・作成した中間ファイルをGSviewで開く(たぶん普通にダブルクリックすればOK)
・(初回: 「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. 貼り付ける
\usepackage[dvipdfmx]{graphicx}

\begin{figure}[!t]
  \centering
  \includegraphics[width=0.7\columnwidth, clip]{img/image.eps}
  \caption{caption}
  \label{fig:image}
\end{figure}
この記事はたくさんのwebサイトを参考にさせていただきました。ありがとうございます。

0 件のコメント:

コメントを投稿