🖊️

数式をLaTeXで書くときの注意点

に公開

理系が研究室に配属されてしばらく経つと、TeXやPowerPointで数式を入力することが多くなります。見やすく意味が伝わりやすい数式にするために、知っておくべきポイントをまとめました。
基本的に研究室内に向けて書いた記事であり、分野によってルールが違うことがあることに注意してください。

記号のルール

タイトルの左についている黒星★の数が多いほど優先度が高いです。星の数は独断で決めました。

★★★ 関数や演算子は立体(コマンド)で書く

\sin\log\operatorname{Res}\limなどがこれに該当します。これらを工夫せずに
打ってしまうと、

sinx
sinx

と表示されます。これではs, i, n, xの積という意味になってしまいます。これを避けるために、コマンド\sinを使って次のように書くことになっています。

\sin x
\sin x

これで、sinがひとかたまりで正弦関数を表していることが明確になりました。

sinと同様に、メジャーな関数や演算子にはたいていデフォルトでコマンドが用意されています。

 \sin x \quad \log x \quad \lim_{x \to 0} x
\sin x \quad \log x \quad \lim_{x \to 0} x

しかし、最初に挙げたもののうち、Resだけはコマンドが用意されていません。

    \Res
\Res

用意されていない演算子を使いたい場合、\DeclareMathOperator\operatornameを使って記号を自作することができます。

\DeclareMathOperator{\Res}{Res}
\Res (z=0)
\operatorname{Res} (z=0)
\operatorname{Res}(z=0)
\operatorname{Res} (z=0)

\DeclareMathOperatorで定義した記号は文章中のどこでも、何度でも使えますが、\operatormathで定義した記号はその場限りで一度しか使えないという違いがあります。

★☆☆ 添え字は立体と斜体を使い分ける

添え字が変数である場合は斜体、それ以外の添え字は立体で書きます。

\sum_{i=0}^n a_i \\
\Omega_\mathrm{ce}  % 電子のサイクロトロン周波数
\sum_{i=0}^n a_i \\[2em] \Omega_\mathrm{ce}

★★☆ 括弧のサイズを調整する

大きい演算子を使った場合など、数式中の括弧が小さすぎることがあります。

 (\sum_{i=0}^n a_i^2)
(\sum_{i=0}^n a_i^2)

左の括弧と右の括弧にそれぞれ\left\rightを付けると括弧の大きさを自動で調節してくれます。

\left( \sum_{i=0}^n a_i^2 \right)
\left( \sum_{i=0}^n a_i^2 \right)

ただし、この方法には\left\rightの間で改行できないという問題があります。途中で改行したい場合は、\big\Bigなどのコマンドを使って、括弧の大きさを手動で変更しましょう。

★★☆ 添え字を引数から外す

ベクトルを表す\vec{}や太字を表す\bm{}\mathbf{}などの中に添え字を入れるのは不適切です。

\vec{B_0}, \mathbf{B_0}
\vec{B_0}, \mathbf{B_0}

左では矢印が添字も含めだ全体の中央についてしまっています。右も、添字の0がベクトルでない場合正しくない表記です。
特別な場合を除いて、添え字は外に出しましょう。

    \vec{B}_0, \mathbf{B}_0
\vec{B}_0, \mathbf{B}_0

☆☆☆微分などのdを立体にする

これは必須ではないですが、数式を見やすくする工夫として行われることがあるので紹介します。

微分、積分を何も工夫せずに書くと、次のようになります。

\frac{df}{dx}, \quad \int \cdots dx
\frac{df}{dx}, \quad \int \cdots dx

しかし、変数dが存在するときなど、dが微分や微小量を表すことを明確にしたい場合があります。そのために、立体のdが用いられます。

\frac{\mathrm{d} f}{\mathrm{d} x}, \quad \int \cdots \mathrm{d} x
\frac{\mathrm{d} f}{\mathrm{d} x}, \quad \int \cdots \mathrm{d} x

この時、\textコマンドを使うと本文と同じフォントが使われてしまいます。数式内のフォントを統一するために、\mathrmを使うことを推奨します。

☆☆☆ 転置の記号

これは必須ではありません。転置の記号には色々ありますが、特に右上にTのようなものを書く場合の書き方について紹介します。

\mathrm{A}^T \quad \mathrm{A}^\top
\mathrm{A}^T \quad \mathrm{A}^\top

左のように、右上にアルファベットのTが使われる場合を多く見ます。しかし、例右のように記号\topも別に用意されています。高校ではこの記号が用いられることが多いかと思います。

式や図、表の参照

label, refを用いた参照

書きかけ

数式環境

*が付いた環境と付いていない環境の違い

\begin{equation}のように*が付いていない数式環境では、式番号が自動で付きます。逆に、\begin{equation*}のように*がついたものは、式番号が付きません。

alignとgatherの違い

alignは複数行の数式でそろえる位置を指定したいときに用います。例えば、式変形でイコールをそろえたい場合に使います。一方、gatherは複数の数式を並べて、それらを中央ぞろえしたいときに用います。

コマンドの定義

TeXの思想として、使用者がそれぞれ独自のコマンドを定義して使うというものがあります。はじめはピンとこないかもしれませんが、コマンドを定義して文書全体で使うことには大きなメリットがあります。

たとえば、ベクトルを\bmを使って書いたときを想像してください。全体を書き終えてから「やっぱりベクトルは矢印で表したいな」と思ったとき、どうすればよいでしょうか。検索置換する? ベクトル以外にも\bmを使っていたら、そこも置き換わってしまいます。基本的には、手動で全部書き換えるしかありません。

しかし、ベクトル専用のコマンドを作っておけば、この問題を解消できます。

\Newcommand[1]{\vector}{\bm{#1}}  % 未検証。間違っていたらコメント下さい。

と定義していた1行を

\Newcommand[1]{\vector}{\vec{#1}}

と書き換えるだけで全体を変更できるのです。特に禁止されていなければ、コマンドは積極的に使っていきましょう。

フォントについて

スライドで使用するフォント

TeXで出力した数式をスライドに使用する場合、数式の字が細すぎると思うことがあるかもしれません。その場合、mlmodernというパッケージを使用することで少し太い数式を書くことができます。画像の上がデフォルト、下がmlmodernです。あえて画像を小さくしてみましたが、下のほうが読みやすいのが分かるでしょうか。

% lualatexの場合
\documentclass{ltjsarticle}
\usepackage[T1]{fontenc}
\usepackage{mlmodern}
% バグ修正のコマンド
\DeclareFontFamily{OMX}{mlmex}{}
\DeclareFontShape{OMX}{mlmex}{m}{n}{%
   <->mlmex10%
   }{} 


参考:https://tasusu.hatenablog.com/entry/2022/08/23/063722

他に、線の太さがおよそ均一のConcrete Mathも見やすいと思います。

Discussion