Bluepostech

プログラムとかはこっち

【LaTeX】きれいにpng化して貼りつける

LaTeXは、一度覚えてしまえば数式はコーディングでしか書けなくなるくらい、数式の表現に力を発揮する。特に論文はLaTeXで作成するのが、wordで数式をポチポチやるよりはるかに楽にきれいにできる。

しっかりした文書でなく、発表や研究資料をスライドで作成するということも多い。LaTeXにもbeamerというスライドを作成するクラスが用意されている。

しかしスライドという視覚的な表現はコーディングしてコンパイルという手順で文書を作成するLaTeXには不向きだ。やはりスライドの作成ではPowerPointの右に出るものはない。

ただしPowerPointで標準ではLaTeXのようなコーディングによる数式の作成はできず、数式エディタをポチポチすることになる。当然非常に面倒だし、あまりきれいじゃない。なので「LaTeXPowerPointでも使いたい」というのは当然の発想だ。

一番簡単なのは「pdfファイルで出してスクリーンショット」という原始的な手法だ。しかしこれではきれいじゃない。

どうやら有償のプラグインはあるらしいが、学生なのでお金がない。アドオンという手もあるが、あまりうまくいかなかった。

しかし、TeX worksをインストールするときに一緒に入るパッケージで比較的きれいにpngで出力、パワポに貼り付けることができる。それが「dvipng」コマンドである。

実行の仕方は簡単で、dviファイル(ここではsrc.dvi)が作成されている状態で、次の通りコマンドを実行する。

dvipng -D 1000 -bg Transparent -T tight -o out.png src.dvi

オプションの意味は次の通り。
-D:サイズ。
-bg:背景色。Transparentは透明、つまり文字のない部分はドットがない。
-T:余白をどうするか。tightと指定すれば余白が自動的に切り取られる。
-o:出力ファイル。out.pngは出力ファイルの名前として任意に決める。

ここで、一箇所texファイル作成の時点で気をつけなければならないことがある。ページ番号だ。

デフォルトではページ番号が振られるが、-Tオプションで余白を切り取る過程で、ページ番号が引っかかって大きな余白が残ることになる。なのでプリアンプル部に

\pagestyle{empty}

と入力してからコンパイルする。これでページ番号がなくなってうまく数式部分だけが出力される。

試しに比較してみよう。電子が電磁場を受けたときの運動方程式を、前者がpdfで出して300%でスクショをとったもの、後者がdvipngで作成したものだ。

f:id:bluepost69:20151102215042p:plain

f:id:bluepost69:20151102215052p:plain

拡大しないとわかりにくいかもしれないが、pptなどに貼ると顕著になる。特に、いざ印刷してみるとスクショのほうでは縁取りが茶色くなったりいろいろ汚い。