LoginSignup
10
7

More than 1 year has passed since last update.

Latexの数式をストレスフリーでWordの数式に流用する

Last updated at Posted at 2022-10-12

この記事を読むと何ができる?

  • Wordで文章を執筆する時に、Latexの綺麗な数式をストレス無く流用できる
  • 文中のインライン数式もLatexの数式表示とほぼ同じフォントで入力できる

おことわり

  • 個人的な最適解の備忘録として書いたので、もっと最適な方法があるかもしれません
  • ディスプレイ数式とインライン数式について分けて書きます
  • 2022年10月時点での情報です
  • 執筆者の環境は以下の通りです
    • Windows 10 pro
    • Word バージョン2209(Microsoft 365)

動機

Wordの数式入力モードに以下の不満がある

  • デフォルトのフォントがダサい
  • 数式リボンで分数や上付き・下付きをクリック入力するのは面倒
  • 設定をいじればLatex形式での入力も可能だが、長い複雑な数式ではレンダリングが上手くいかないことが多い
  • 特に、「既に作成済みのLatex数式のプレーンテキストをWordにコピペしただけでLatexと同様にレンダリングされる」のが理想だが、長い数式では基本的に上手くいかない
    • ただコピペしただけではレンダリングが上手くいかず一文字ずつ区切りながらレンダリングすることになる
    • 一文字ずつレンダリングするせいで、Latexのレンダリング結果と異なった見た目になる

このため、既存のツールなどを上手く使って、以下の目標をできるだけストレスフリーに達成したい

  • Latexでのレンダリングと同等の綺麗な見た目で表示する
  • 完成済みのLatex数式を無編集(コピペだけ)で使う
  • ディスプレイ数式とインライン数式(文中の数式)でフォントを統一する・またはほぼ同じ見た目にする

また、マストではないが数式を扱う上で以下の目標も可能な限り達成したい

  • 初期設定の変更のみで対処し、文章執筆中の作業量を減らす
  • 式番号は自動更新させる
  • 式番号は相互参照させる
  • WordファイルにもとのLatex数式のプレーンテキストを残しておく

ディスプレイ数式

下準備

初期設定としてWordに数式パーツを追加する(この作業は一度やるだけで良い)

  1. 適当なWordファイルを新規作成し、1行3列の表を挿入

  2. 3列目のセルで Ctrl + F9 を押し、seq hogehoge と入力(hogehogeの部分は好きな文字列を使用)すると、{seq hogehoge} と表示される
    method_2022-10-12-11-49-55.png

  3. {seq hogehoge} にカーソルを置き(灰色になっている状態で)、Shift + F9 を押し、更に F9 を押すと、連番が自動入力される
    method_2022-10-12-11-51-03.png

  4. 番号の前後に、自由に()や章番号などを追加する

  5. 表の罫線を非表示にして、1列目と3列目の幅を狭くする

  6. 2列目のセルは中央揃え、3列目のセルは右揃えにする
    method_2022-10-12-12-00-46.png

  7. 表全体を選択し、適当なコメントを追加する(Latex数式のプレーンテキストを追加する用)
    method_2022-10-12-12-02-22.png

  8. 表全体を選択し、Alt + F3 を押して、パーツ名(自由)を入力してOKをクリック

以上の下準備を行うと、文書中でパーツ名を入力して F3 を押すと、

  • 式番号が右揃えで自動で連番になり
  • 中央のセルに画像を中央揃えで挿入でき
  • Latexのプレーンテキストをメモするためのコメントがついている

これらが全て済んでいる表が追加される。(最近のバージョンではパーツ名の途中でサジェストが出てくる)

また、一度作成すれば新規の文書でも同じパーツを使える

なお、このseq hogehoge は数式に限らず図表番号の自動更新でも使えるため、formula, figure, tableなどで区別して使うと良い

手順① Latex数式の画像化

method_2022-10-12-09-35-37.png

  1. TeXclipにLatex数式のテキストをそのままコピペ(テキストのみだとインライン数式形式で、$$ で囲むとディスプレイ数式形式で表示される)
  2. Resolutionは適当なものを選択
  3. FontはComputer Modernを選択(見た目がGithubのLatex数式プレビューや後述のインライン数式表示でのフォントにけっこう近い)
  4. Ctrl + S で数式をプレビュー
  5. SVGのボタンで好きなローカルフォルダに保存(一時保存するだけなので適当なフォルダで良い)

なお、Texclipの使用法はこちらの記事が分かりやすい

手順② Wordへの数式挿入

method_2022-10-12-14-11-47.png

  1. Word文書中で、数式を入れたい場所でパーツ名を入力すると下準備した表が追加される
  2. 2列目のセルに手順①で作ったsvgを挿入する(エクスプローラーからドラッグなどで入れると楽)
  3. コメントにLatex数式のプレーンテキストをメモ

svgの挿入が済んだらローカルのファイルは削除してよい

手順③ 相互参照の追加

  1. 参照したい式番号のみを選択し、その状態で「挿入」タブの「リンク」メニュー内にある「ブックマーク」を選択
    method_2022-10-12-14-16-43.png

  2. ブックマークダイアログで、ブックマーク名に参照用の名前を入力して追加
    method_2022-10-12-14-22-08.png

  3. 数式への参照を追加したい場所にカーソルを移動させ、「挿入」タブの「リンク」メニュー内にある「相互参照」を選択し、先ほど設定した名前を選択
    method_2022-10-12-14-38-52.png

なお、参照元の削除や移動、番号の自動更新などで数字が変わった場合には、一度「ファイル」タブから印刷プレビューを開く(開くだけで良い)と番号が更新される

インライン数式

下準備

Wordのデフォルトの数式フォントはダサいので、数式用のフォント Latin Modern Math をインストールして常時使えるように設定する

  1. このリンク から "Latin Modern Math (OTF), version 1.959" をダウンロード

  2. zipを解凍すると、中にotfというフォルダがあるので、その中にある.otfファイルをクリックして開き、ポップアップに従ってインストール

  3. Wordの「数式」タブの「変換」の右下の資格+矢印の部と案を押して「数式オプション」を立ち上げる
    method_2022-10-12-14-50-14.png

  4. 「数式エリアの既定のフォント」をLatin Modern Mathに変更

  5. 「数式オートコレクト」のボタンをクリックし、「数式エリア以外で数式オートコレクトを使用する」にチェックを入れる

  6. 規定値として設定してOKを押して終了(他の文書に適用したくない場合はOKを押して終了)

手順

  1. 文中のインライン数式を入力したい位置で Alt + Shift + = で数式エリアを挿入
  2. 数式エリア内でLatex形式で入力し、Enterでレンダリング

また、単純な文字式や記号だけなら数式エリアを起動しなくてもLatex形式で入力してEnterすればレンダリングされる。ただし複雑な数式は表記が崩れる場合があること、フォントは本文のものが適用されてしまいフォント変更の手間がかかることなどを考えると数式エリアを使った方が楽。

実用例

自分の実用例を備忘録的にまとめておく

数式パーツ

執筆中の文章は6章立て + Appendix という構成になりそうなので、予め全ての章の数式パーツ(1formula, 2formula, ..., 6formula, aformula, bformula, ...)を作っておく。

章が変わった時には数式番号も1から振り直したいため、 {seq hogehoge} も数式パーツごとに違う名前を設定している(今回は分かりやすく、数式パーツの名前とhogehogeが一致するようにした)

image.png

図パーツ・表パーツ

数式パーツと同様に、予め全ての章の図パーツ(1figure, 2figure, ...)と表パーツ(1table, 2table, ...)も作っておく

image.png

参考文献

10
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
7