PowerPoint から TeX 用の EPS ファイルを生成する方法

今更感がありますが、PowerPoint などで作成した図や表を、TeX 用の EPS(Encapsulated PostScript) ファイルに変換する方法のメモ書きをしておきます。EPS ファイルはベクターデータであるため、どれだけ拡大縮小しても綺麗に表示される特徴があります。「EPS-conv」などのフリーのソフトウェアを使うことで、簡単に画像から EPS 形式のファイルを作ることができますが、EPS に変換する前のデータがラスターであるため、これでは綺麗な拡大縮小ができません。PowerPoint などから 拡張 Windows メタファイル(.emf)形式で出力し、「Metafile to EPS Converter」や「wmf2eps」などで EPS 形式に変換する方法もありますが、私の現在の環境では何故かうまく EPS を生成できなくなりました。

いずれもっと手軽に EPS が出力できるようになる、と信じてきましたが、残念ながら先日リリースされた Office 2016 にはそのような機能は搭載されませんでした。そのため、一先ずここでは、昔ながらの仮想プリンタと GSview を使った方法を記します。環境は Windows 10 Pro, PowerPoint 2016, GSview 5.0 を使用していますが、Windows 7/8/8.1, PowerPoint 2007/2010/2013, GSview 4.x でも同様の方法でできると思います。

1. 仮想プリンタの設定


eps1
まずは、EPS を出力するための仮想プリンタを設定します。スタートメニューを出し、「プリンタ」や「printer」などと入力すれば、「デバイスとプリンター」が出てくるので、これを選択します。コントロールパネルなどから進んでもらっても同じです。


eps2
次に、「プリンターの追加」ボタンを押します。


eps3
仮想的なプリンタの設定なので、当然一覧には出てきません。「プリンタが一覧にない場合」を選択します。


eps4
「ローカルプリンターまたはネットワークプリンターを手動設定で追加する」をチェックして、「次へ」を押します。


eps5
「既存のポートを使用」の「FILE(ファイルへ出力)」を選択して、「次へ」を押します。


eps6
プリンタドライバの設定をします。PostScript 形式で出力可能であればどれでも良いようですが、ここでは「Generic」の「MS Publisher Color Printer」を選択します。


eps7
名前は何でも構いません。ここではそのままにしていますが、「EPS 出力用プリンター」などと書いておくとわかりやすいかもしれません。


eps8
特に必要はないと思うので、「このプリンターを共有しない」をチェックして「次へ」を押します。


eps9
「通常使うプリンターに設定する」のチェックを外して、「完了」を押します。他に接続しているプリンターが何も無い場合は、チェックを入れておいても良いかもしれません。


eps10
次はプリンターの設定を行います。「デバイスとプリンター」の画面で、作成したプリンター(ここでは MS Publisher Color Printer)を右クリックして、「印刷設定」を押します。


eps11
ウィンドウ右下の「詳細設定」を押します。


eps12
「PostScript オプション」を展開し、「PostScript 出力オプション」を「EPS(Encapsulated PostScript)」に、「TrueType フォントダウンロードオプション」を「アウトライン」にします。


以上で、仮想プリンタの設定は完了です。

2. EPS ファイルの出力


eps13
次は、PowerPoint から EPS ファイルを出力します。まずはリボンメニューの「デザイン」タブから「スライドのサイズ」->「ユーザー設定のスライドのサイズ」を選択し、「A4の縦」に設定します。(ここのサイズを別のものにしたい場合は、先ほどのプリンターの印刷設定の詳細設定で、サイズを合わせます。)


eps14
適当に図形を書いて文字を書きました。どんなものでも構いません。(あまりオブジェクトを上に寄せすぎると、EPS 出力時に端が切れることがあるので、注意が必要です。)


eps15
[Ctrl] + [P] もしくは「ファイル」タブから「印刷」と進み、印刷画面を出します。「プリンター」を先ほど設定したプリンターに、「設定」を「現在のスライドを印刷」にします。


eps16
「印刷」ボタンを押して、ファイルを出力します。「ファイルの種類」を「すべてのファイル」にして、「eps」の拡張子をつけて保存します(ここでは「test.eps」)。


3. EPS ファイルの範囲指定


eps17
続いて EPS ファイルの範囲指定を行います。GSview で出力した EPS を開くと、次のようになります。メニューバーの [Option] -> [Show Bounding Box] を選択することで、現在の EPS の範囲が破線で表示されます。現在の範囲は、A4 用紙全体であることがわかります。


eps18
メニューバーの [File] -> [PS to EPS] を選択し、範囲がオブジェクトに限定された EPS ファイルを出力します。ここでは「test2.eps」という名前で出力しました(拡張子の入力し忘れに注意)。


eps19
なお、「Automatically calculate Bounding Box」のチェックを入れれば自動でオブジェクトの範囲指定をしてくれますが、うまく指定されない場合や自分で細かく調整したい場合は、このチェックを外して手動で設定します。


eps20
出力したファイルを再び GSview で開くとこうなります。おおよそ正しくオブジェクトの範囲が設定されています。しかしよく見ると、若干上の余白が広く下の余白が狭くなっています。もしこれが気になるようであれば、手動で範囲を設定します。


4. TeX で表示

最後に、TeX で表示してみましょう。以下のコードを TeX に入力し、コンパイルしてみます。

\documentclass[a4paper,12pt]{jsarticle}
\usepackage[dvipdfmx]{graphicx}

\begin{document}

	\begin{figure}[htbp]
		\begin{center}
			\includegraphics[width=100mm]{test2.eps}
			\end{center}
		\caption{幅100 mm}
	\end{figure}

	\begin{figure}[htbp]
		\begin{center}
			\includegraphics[width=50mm]{test2.eps}
			\end{center}
		\caption{幅50 mm}
	\end{figure}

	\begin{figure}[htbp]
		\begin{center}
			\includegraphics[width=10mm]{test2.eps}
			\end{center}
		\caption{幅10 mm}
	\end{figure}

\end{document}

eps21
PDF上 ではこのように表示されます。図形の中の文字を選択したり、コピーすることができます。


eps22
拡大率を 800% にしても、ベクトルデータなので綺麗です。


eps23
拡大率 3200% にしても、同じく綺麗です


以上が、PowerPoint のオブジェクトを TeX 用の EPS ファイルに変換する方法です。少し面倒で、数年前からからあまりやり方が変わっていません。とりあえず私は、しばらくこのやり方で図表を作成することになりそうです。Office 2016 がリリースされてまだ一週間経ちませんが、Office 2019 には EPS 出力機能が搭載されることを夢見ています。


コメント (1件)

  1. ピンバック:ps2epsでBounding Boxがうまく変わらないときの対処 | あんばらぼ

コメントを残す

メールアドレスが公開されることはありません。