LaTeX で偏微分を書くのは面倒くさい!
\nabla^2 = \frac{1}{r^2}\frac{\partial}{\partial r}\left(r^2\frac{\partial}{\partial r}\right)+\frac{1}{r^2\sin\theta}\frac{\partial}{\partial\theta}\left(\sin\theta\frac{\partial}{\partial\theta}\right)+\frac{1}{r^2\sin^2\theta}\frac{\partial^2}{\partial\varphi^2}
これ直打ちするとこう
\nabla^2 =
\frac{1}{r^2}\frac{\partial}{\partial r}\left(r^2\frac{\partial}{\partial r}\right) +
\frac{1}{r^2\sin\theta}\frac{\partial}{\partial\theta}\left(\sin\theta\frac{\partial}{\partial\theta}\right) +
\frac{1}{r^2\sin^2\theta}\frac{\partial^2}{\partial\varphi^2}
diffcoeff パッケージを使うとこう!
% \usepackage{diffcoeff}
\nabla^2 =
\frac{1}{r^2}\diffp*{\left(r^2\diffp{}r\right)}r +
\frac{1}{r^2\sin\theta}\diffp*{\left(\sin\theta\diffp{}\theta\right)}\theta +
\frac{1}{r^2\sin^2\theta}\diffp*[2]{}\varphi
あんまり短くなってない? うるせえ!
diffcoeff パッケージを使うと、短く書けるだけでなく、適切にスペースを入れてくれるのできれいに書けるぞ!
パッケージの読み込み
普通に usepackage するだけ。
\usepackage{diffcoeff}
ISO オプション
ISO 80000-2 にしたがった表記になるオプション。
\usepackage[ISO]{diffcoeff}
左が普通に読み込んだときのイメージ、右が ISO を付けて読み込んだときのイメージ。
\left.\frac{d\hspace{1mu}f(x)}{d\hspace{1mu}x}\right|_{x=x_0}\qquad\left(\frac{\mathrm{d}f(x)}{\mathrm{d}x}\right)_{\hspace{-6mu}x=x_0}
細かい指定
ファイルから読み込む方法と、LaTeX でオプション指定する方法がある。
後者を紹介する。
\diffdef
コマンドで、オプションをリストにして表記する。
\usepackage{diffcoeff}
\diffdef{}{
op-symbol = \bigstar ,
op-symbol-alt = \heartsuit ,
left-delim = \left[ ,
right-delim = \right]
}
これで上と同じ数式を出すとこんな感じになる。
\left[\frac{\bigstar\hspace{1mu}f(x)}{\heartsuit\hspace{1mu}x}\right]_{x=x_0}
ISO オプションは次のように指定したのと同じ。
\diffdef{}{
op-symbol = \mathrm{d} ,
op-order-sep = 0mu ,
left-delim = \left( ,
right-delim = \right) ,
subscr-nudge = -6mu
}
細かなオプションはマニュアル参照のこと。
特定の場合だけテンプレートを指定する方法
熱力学のときだけ ISO っぽい表記をしたい、みたいなとき。
\diffdef
の第一引数に名前を指定すると、使用時にオプションとしてテンプレートが選べるようになる。
\diffdef{hoge}{
op-symbol = \bigstar ,
op-symbol-alt = \heartsuit ,
left-delim = \left[ ,
right-delim = \right]
}
としておいて、
\diff{f(x)}{x}[x=x_0] \qquad
\diff.hoge.{f(x)}{x}[x=x_0]
とすると、
\left.\frac{d\hspace{1mu}f(x)}{d\hspace{1mu}x}\right|_{x=x_0}\qquad
\left[\frac{\bigstar\hspace{1mu}f(x)}{\heartsuit\hspace{1mu}x}\right]_{x=x_0}
となる。
デフォルトで有効なのは次の 3 つ。
p
偏微分モード。
\diff.p.yx[x=3]
\left(\frac{\partial\hspace{1mu}y}{\partial\hspace{1mu}x}\right)_{\hspace{-6mu}x=a}
delta / Delta
微分の記号がデルタになる。
\diff.delta.y/x
\delta\hspace{1mu}y/\delta\hspace{1mu}x
なお、diffd
/ Diffd
コマンドでも代用できる。
上の式は \diffd y/x
でも出せる。
D
ISO オプション時のみ有効。
微分の記号が \mathrm{D}
になる。
\diff.D.y/x
\mathrm{D}y/\mathrm{D}x
使い方
微分
\diff{f(x)}{x}
これで
\frac{d\hspace{1mu}f(x)}{d\hspace{1mu}x}
となる。
偏微分
\diffp{f(x,t)}{x}
これで
\frac{\partial\hspace{1mu}f(x,t)}{\partial\hspace{1mu}x}
となる。
n 階の微分・偏微分
\diffp[n]{f(x,t)}{x}
これで
\frac{\partial^n\hspace{1mu}f(x,t)}{\partial\hspace{1mu}x^n}
こう。
変数が複数のとき
\diffp{F}{x,y}
これで
\frac{\partial^{2}\hspace{1mu}F}{\partial\hspace{1mu}x\hspace{2mu}\partial\hspace{1mu}y}
こう。さらに、
\diffp[n+1,2n+1,m]{f(t,u,v)}{t,u,v}
これで
\frac{\partial^{3n+m+2}\hspace{1mu}f(t,u,v)}{\partial\hspace{1mu}t^{n+1}\hspace{2mu}\partial\hspace{1mu}u^{2n+1}\hspace{2mu}\partial\hspace{1mu}v^m\hspace{1mu}}
こう。最高。
分母の次数を勝手に計算してほしくないときは、オプションで指定できる。
\diffp[a,b,c][N]{f(t,u,v)}{t,u,v}
\frac{\partial^{N}\hspace{1mu}f(t,u,v)}{\partial\hspace{1mu}t^a\hspace{2mu}\partial\hspace{1mu}u^b\hspace{2mu}\partial\hspace{1mu}v^c\hspace{1mu}}
微分される関数を外に出したいとき
アスタリスクをつける。
\diff*{\diff{f(x)}{x}}{x}
これで
\frac{d}{d\hspace{1mu}x}\frac{d\hspace{1mu}f(x)}{d\hspace{1mu}x}
こんなふうになる。
ある点での微分
$x=a$ のときの値を示すやつ。最後につければよい。
\diff[2]{f(x)}{x}[x=a]
これはこうなる。
\left.\frac{d^2\hspace{1mu}f(x)}{d\hspace{1mu}x^2}\right|_{x=a}
偏微分の周りにカッコを付ける
最後のカッコに何も入れないことで、偏微分全体をカッコで囲える。
これは上の $x=a$ できるやつが縦棒表記のときも有効。
\diffp{L}{q_i}-\diff*{\diffp{L}{\dot{q}_i}[]}{t}=0
\frac{\partial\hspace{1mu}L}{\partial\hspace{1mu}q_i}-\frac{d}{d\hspace{1mu}t}\left(\frac{\partial\hspace{1mu}L}{\partial\hspace{1mu}\dot{q}_i}\right)=0
みんな大好きオイラー=ラグランジュ方程式。
1 行表記
分母分子の間にスラッシュを入れると 1 行で出力してくれる。
インラインの場合などに便利。
\diffp[2,3]{F(x,y)}/{x,y}[x=a,y=b]
\left(\partial^5\hspace{1mu}F(x,y)/\partial\hspace{1mu}x^2\hspace{2mu}\partial\hspace{1mu}y^3\right)_{x=a,y=b}
ヤコビアン
\jacob
コマンド。謎の機能。
\left|\jacob{x,y}{r,\theta}\right|
= \left|\begin{matrix}\cos\theta & -r\sin\theta \\ \sin\theta & r\cos\theta \end{matrix}\right|
= r
\left|\frac{\partial(x,y)}{\partial(r,\theta)}\right| = \left|\begin{matrix}\cos\theta & -r\sin\theta \\ \sin\theta & r\cos\theta \end{matrix}\right| = r
詳細な順序
diff
コマンドは次のオプションが指定できる。
- 1: テンプレートの名前
- 2: 分子の関数を外に出すオプション(
*
) - 3: 微分の次数
- 4: 合計次数のオーバーライド
- 5: 微分されるもの
- 6: スラッシュ
- 7: 微分する変数のリスト
- 8: 右下の評価する点
全部使うと次のようになる。
\diff.p.*[n,m,l][p]{F(x,y,z)}/{x,y,z}[(x,y,z)=(a,b,c)]
これは次のようになる。
\left(\left(\partial^p/\partial\hspace{1mu}x^n\hspace{1mu}y^m\hspace{1mu}z^l\right)F(x,y,z)\right)_{(x,y,z)=(a,b,c)}
まとめ
diffcoeff パッケージでよい偏微分ライフを。