GoogleスライドにLaTeXで数式を挿入する方法

slide

はじめに

入社して早1年が経って、今更ながらGoogleスライドに簡単に数式を打ち込めない事実に気づきました。社会人になってから複雑な数式扱ってないなと気づいたこの頃です。
そこで、「スライドで複雑な数式をLaTeXで扱いたい!」という僕のための備忘録として書き記します。

Googleスライドの仕様

上記で述べたようにGoogleスライドには簡単に数式を打ち込む機能はありません。
かといって、数式を全く扱えないという訳ではもちろんありません。Googleスライドの「Insert」から「Special characters」を選択します。すると以下のようなボックスが現れますので、「Math」を選択すると数式に用いる特殊文字やギリシャ文字が現れます。また、「Draw a symbol here」にマウスなどで記号の絵を書き込むと、それに似た特殊文字が現れます。それらを選択することでGoogleスライドに数式を打ち込むことができます。

macを使われている方からギリシャ文字や簡単な特殊文字程度なら「optionキー」を使え!とお叱りの言葉が聞こえるような気がしますが、そこには目を瞑らせてください。

上記方法では、以下のような簡単な式を打ち込みたいときでさえとてつもない時間がかかってしまいます(「上付き文字形式のものをポチって、θを探してポチって、cosを探して、、、、、、」という作業が発生するため)。
eiθ=cosθ+isinθe^{i\theta} = \cos\theta + i\sin\theta(学生時代に親の顔より見たでお馴染みオイラーの公式。間違ってないか不安だったのでこっそり調べたことは内緒です。)

MicrosoftのPowerPointはGoogleスライドと比べるとまだ数式の挿入が楽です。
こちらはいくつかの典型的な式がはじめに用意されていて、それを編集するような仕様になっています。

かといって、数式だけPowerPointで書いてそれをコピーしてGoogleスライドにペーストするという行為は全くスマートではありません。そもそも、他の用途があるのならまだしもこの機能を使いたいが為に両方のライセンスを購入するのはナンセンスです。

もしLaTeXが使えるのであれば、上の式よりもっと複雑な複数行の式を挿入したい場合も$\begin{aline}XXX\end{aline}$などを使用することによって数式の形も綺麗に整形できます。改めてLaTeXの便利さが分かりますね。
そこで、「もっと楽な方法で数式を書きたい!もっと言えばLaTeXを使いたい!」と学生時代いかにしてLaTeXの書く回数を減らすかを真剣に考えていた私が立ち上がりました。

Hypatia Create

楽な方法を調べている過程で「Hypatia Create」という素晴らしいアドオンが存在していることを知りました。LaTeXにこだわらないけど、少しでも楽に数式を挿入したいという方におすすめのアドオンです。
使用方法を簡単に以下にまとめます。

  1. メニューオプションから「Extensions」を選択し、「Get add-ons」をクリック
  2. Google Workspace Marketplaceウィンドウで「Hypatia Create」を検索
  3. 該当のアプリを「Install」
  4. インストールが終わると「Extensions」の下の方に「Hypatia Create」が表示されています
  5. 「Hypatia Create」から「Insert/Edit Math」を選択
  6. 以下のような画面が出てくるので使いたい特殊文字や分数などをクリック
  7. 数式を書き終わった後は、「Insert」ボタンをクリック

以上の過程で、スライドに数式が挿入されます。このアドオンですが、起動時に少し時間がかかりました。
実際に使ってみると、PowerPointのような感覚である程度決まった形がありそれを編集するといったものになっていました。このアドオンを使用すれば化学式も簡単に挿入できるようです!
これでMicrosoftのライセンスを用意する必要はなくなりました。
しかしながらこのアドオンも「有料」ですので、その点は注意してください。
また、挿入をせず数式自体をコピーして、スライドにペーストしてみるとLaTeXで書かれた文字列がペーストされました。全く違う使い方ですが、「LaTeX勉強してみたいけどどうすれば、、」という方のきっかけにもなってくれるかもしれません!
参考にさせていただいた記事はこちらになります(2024.04.30 現在)。

Google Apps Script (GAS) を使う方法

どうしてもGoogleスライドでLaTeXが使いたい!という方は、思い切ってGASを実装してみましょう!思い切ってとは言ったもののこのGASはそんなに難しいものではありません。以下をコピペすれば使っていただけます。

/** 
 * アクティブなGoogleスライドの最初のスライドにTeX数式のPNG画像を挿入する関数 
 */
function insertPNGOfTex() {
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  const resolutionAndSize = '\\dpi{300} \\large '; // 高解像度と大きなフォントサイズの指定
  const texString = 'e^{i\\theta} = \\cos\\theta + i\\sin\\theta'; // LaTeX形式の数式
  const fullTexString = resolutionAndSize + texString; // コマンドとLaTeX形式の数式の結合

  const response = UrlFetchApp.fetch('https://latex.codecogs.com/png.latex?' + encodeURIComponent(fullTexString));
  const blob = response.getBlob();
  slide.insertImage(blob);
}

このコードは、アクティブなプレゼンテーションの最初のスライドに、LaTeX形式の数式から生成されたPNG画像を挿入します。TeXの数式をURLエンコードして、画像を生成する外部サービスを呼び出し、取得した画像をスライドに挿入します。つまりは単にAPIを使用して画像を取ってきているだけです。

この方法なら、textString = 'ココ!'この部分にLaTeXで好きな数式を書いて実行するだけで数式(画像)を挿入できます。LaTeX形式で数式を書くのに慣れている方は、この方法の方が前述した方法より挿入速度は早いかと思われます。
ここで一点注意していただきたいことは、特殊文字などを入れる際は\\ で指定するということです。通常LaTeXは特殊文字は\で指定すると思いますが、実装しているコードがGAS(javascript形式)なため\だけではエスケープ文字として扱われます。したがって文字列内で通常の \ として扱われるようにするには \\ と書く必要があります。

またconst resolutionAndSize = '\\dpi{300} \\large ';は、関数内の説明にもありますが挿入する画像の解像度などを指定している行です。LaTex codecogsから得られる解像度は低いので、これを加えることで画質を良くしています。

・resolutionAndSizを実装していない場合

・ resolutionAndSizを実装した場合

Googleドキュメントを使用する

いろんな方法を調べた私が最終的に行き着いたところはこの方法です。
「いやPowerPointがGoogleドキュメントに変わっただけやん!」と大きな声で突っ込まれそうですが、GoogleドキュメントならLaTeX形式で数式が簡単に書けます。またライセンスもGWSライセンスだけで良いのでメリットは大いにあります!

ではGoogleドキュメントでLaTeXを使用する方法を説明します。

  1. メニューバーから「Insert」を選択
  2. 「equation」を選択
  3. 以上

え??ただただequationを挿入するだけ、、、?
そうなんです。ただただequationを挿入するだけなんです。
私もこの機能は知っていました。しかし、この機能は事前に用意された決まった型の数式(分数など)を編集することができる機能だと思い込んでいたのです。

なんとこの機能LaTeX形式で数式打ち込めます!!!!!

大歓喜の瞬間ですね。
これで「上付き文字形式のものをポチって、θを探してポチって、cosを探して、、、、、、」という作業が必要なくなります。「e^{i \theta} = \cos \theta + i \sin \theta」これだけで作業完了!数式ゲット!素晴らしいですね。
この機能を使って打ち込んだ数式をスクショしてスライドに貼り付け。画質に関しても単にGoogleドキュメントのスクリーンショットなので問題ありません!これだけで求めていたことができるようになりました!

僕の備忘録

そもそも一番最初に考えていたことは「Googleドキュメント」を使う方法でした。
しかし、それは上記のことを考えていたわけではなく「マークダウン記法でLaTeXを使用する」という方法でした。
マークダウン記法では「$$」で数式ブロックが挿入されLaTeXが使用できます。
例:$$E=mc^2$$

お恥ずかしいことに私の勉強不足なのですが、「Googleドキュメントではマークダウン記法が使用できる」と勘違いしていました。「#」で見出し形式になったり「```」で囲めばコードブロックになったりするのでてっきりマークダウン記法が完全導入されているものだと思っていました。
しかしよくよく調べてみると、Googleドキュメントはマークダウン記法を完全に導入しているのではなく、限定的なマークダウン風の自動書式設定機能を備えているということでした。

まとめ

改めてこの記事を書いていて感じることが公式ドキュメントを読むことはとても重要だということです。きちんとGoogleの公式ドキュメントを読んでいれば最後の機能にも気づけていたと思います。
ともあれこれで、「快適な数式生活~LaTeXを添えて~」が実現できますね!

Next Post Previous Post