趣旨
マイ教授は云いました。
LaTeXはもう古いからWordで修論を書きなさい。
私、ほぼ趣味の範疇で学部時代の卒論をLaTeXで書いていたのですが、「添削しづらいからWordで書き換えなさい」と途中で教授からのお怒りを買ってしまいました。修論で同じ過ちを犯すわけにはいきません。絶対Wordで書きます。
とはいえLaTeXで作る表はなかなか美しいもので、せめて図表だけでもLaTeXを使いたいと考えました。というのも、私が普段使う統計言語Rで分析結果を図表形式で出力するにあたっては、無機質なCSV形式か、スマートかつエレガントなTeX形式のほぼ二択です。
最近のWordは数式はTeX形式に対応したものの、図表には対応していないので、そのままLaTeXのコードをコピペしても何も反応しません。かといってスクショを取って貼り付けるのも、画質が維持できなかったりするのでちょっと抵抗があります。
というわけで、何とか画質を維持しつつWordでTex形式の図表を貼り付ける方法を考えましょう。
対象
Windowsユーザーで、以下のような方を対象としています。
- LaTeX触ったことないけど図表の見た目に拘ってみたい方
- LaTeXユーザーだけど文書はWordで作成したい方
- TeX形式でしか分析結果を出力できずに困っている方
- TeX環境をPCに導入せずに作業したい方
なおこの記事では一瞬だけRが登場しますが、R使いでなくても全然大丈夫です。
方法
普通はTeX形式のドキュメントを取り扱うには何かしらのディストリビューションが必要ですが、導入に結構な時間と手間がかかるのでお手軽感がありません。そこで今回は Cloud LaTeX を使うことで、LaTeX環境をPCに入れずにTeX形式のドキュメントを扱える状態にします。
おおよその手順は以下の通りです。
1. 図表だけのLaTeX文書を作成してPDFとして保存する。
2. InkscapeにPDFをインポートする。
3. キャンバスサイズを図表に合わせてベクター形式でエクスポートする。
TeX形式による結果出力
私はR使いなのでRのサンプルコードを書いておきますが、自前のTeX形式の図表があれば、そちらで構いません。
R使いの方へ:分析結果をTeX形式で取得する
library(stargazer)
library(clipr)
write_clip(stargazer(lm (Sepal.Length ~ Sepal.Width + Petal.Length + Petal.Width , data=iris)))
R使い以外の方へ:TeX文書のサンプル
% Table created by stargazer v.5.2.2 by Marek Hlavac, Harvard University. E-mail: hlavac at fas.harvard.edu
% Date and time: 水, 2 26, 2020 - 23:45:14
\begin{table}[!htbp] \centering
\caption{}
\label{}
\begin{tabular}{@{\extracolsep{5pt}}lc}
\\[-1.8ex]\hline
\hline \\[-1.8ex]
& \multicolumn{1}{c}{\textit{Dependent variable:}} \\
\cline{2-2}
\\[-1.8ex] & Sepal.Length \\
\hline \\[-1.8ex]
Sepal.Width & 0.651$^{***}$ \\
& (0.067) \\
& \\
Petal.Length & 0.709$^{***}$ \\
& (0.057) \\
& \\
Petal.Width & $-$0.556$^{***}$ \\
& (0.128) \\
& \\
Constant & 1.856$^{***}$ \\
& (0.251) \\
& \\
\hline \\[-1.8ex]
Observations & 150 \\
R$^{2}$ & 0.859 \\
Adjusted R$^{2}$ & 0.856 \\
Residual Std. Error & 0.315 (df = 146) \\
F Statistic & 295.539$^{***}$ (df = 3; 146) \\
\hline
\hline \\[-1.8ex]
\textit{Note:} & \multicolumn{1}{r}{$^{*}$p$<$0.1; $^{**}$p$<$0.05; $^{***}$p$<$0.01} \\
\end{tabular}
\end{table}
Cloud LaTeXでPDF化
Cloud LaTeXはブラウザ上でLaTeXの編集ができるウェブサービスです。無料で登録できます。
Cloud LaTeXは日本語にも対応しているため、他のウェブアプリよりお勧めです。
ログイン後、新規プロジェクトを適当に作成しプロジェクトを開いたら、main.texをこのように上書きしてください。
\documentclass{article}
\begin{document}
\thispagestyle{empty}
% ここに図表のコードをペーストする
\end{document}
ここまで完了したら、右上のコンパイル
⇒PDF
を押して、PDFを保存してください。
InkscapeでSVGへ変換
Inkscape を開き、先ほどのPDFをドラッグ&ドロップします。
その際オプションを聞かれますが、「Poppler/Cairo import」を必ず選択しましょう。
その後ファイル > ドキュメントのプロパティ
でページサイズをコンテンツに合わせて変更
タブを開き、ページサイズを描画全体または選択オブジェクトに合わせる
をクリックします。
最後にファイル > 名前を付けて保存
から、SVG形式またはEPS形式で保存しましょう。
Wordに貼り付ける
Inkscapeで保存したファイルをWordにコピペ(ドラッグ&ドロップ)すれば作業完了です。
Wordの最新版ではSVG形式に対応していますが、Office 2016などバージョンが古い場合はSVG形式に対応してないと思いますので、EPS形式を試してください。
ベクター画像なので、Wordで拡大・縮小しても劣化せず取り扱えます。
注意点
図表の編集はCloud LaTeXの段階で行っておく必要があります。
後から編集したい場合は、Cloud LaTeXに戻ってPDFを再出力しましょう。
Tips
普段LaTeXを使っていない方向けの小技です。
LaTeXに慣れている方は飛ばしてください。
キャプションの編集
タイトルを追加する
図表の通し番号が不要な場合
キャプション自体が不要な場合
TeX文書内の\caption{}
を削除してください、
% 以下のような文言があれば丸ごと削除する
\caption{タイトル}
おわりに
これでTeX形式で出力された図表を劣化させることなくWordで扱えます。
図表がエレガントだと文書作成も何となく楽しくなりますね。
Enjoy!
おしまい。