読者です 読者をやめる 読者になる 読者になる
個人的にあると便利なマクロや細かい設定の備忘録.記事一覧



\langle, \rangle で内積を書くのが面倒だ

内積には角ばった括弧 {\langle \cdot, \cdot \rangle}(\langle と \rangle)を使う派閥に属しています.
最近は右線形左反線形.余談だけど,内積{<\cdot ,\cdot >}でやるのは正しくないらしい.
詳しくは http://www.math.tohoku.ac.jp/tmj/oda_tex.pdf の1.6.3を参照のこと.(このPDFはこれ以外にも良いことが沢山書いてある!)
簡単に言うと,それは括弧じゃなくて二項関係子ですよ,ということらしい.ごもっともである!
しかしながら,\langle と \rangle を何度も何度も書くのは非常にストレスだし,
しかも,視覚的に {\langle \cdot, \cdot \rangle}に似てないから,
ソースを見て,数式をイメージしづらい.
下みたいなのを修正したりするときに非常につらい.
{\displaystyle
\quad \sum_{i,j=1}^n \left\langle \eta_i, \pi_Y (\langle \xi_i, \xi'_j \rangle_X) \eta'_j \right\rangle_Y
}

我らがスーパーハカーしゃいたんに教えてもらった.
プリアンブルに次を書く.

 \def\hoge<#1>{\langle #1 \rangle}

hogeはなんでも良いけど,無し(\<, >)は既存の命令(\<)を上書きしちゃうので
やめたほうが良いとのこと.
こうすると,

\hoge<\xi, \eta >

{ \langle \xi, \eta \rangle} が出力される.めでたい.
僕は次のようにして使っています,

\def\i<#1>{\langle #1 \rangle}
\def\l<#1>{\left\langle #1 \right\rangle}

最初に書いたやつも次のソースで十分である!

\sum_{i,j=1}^n \l< { \eta_i, \pi_Y ( \i< \xi_i ,\xi'_j >_X) \eta'_j } >_Y

追記:
\i< > のすぐ内側に { } を入れてるのは,最初の < に対する > なのか
2つ目の < に対する > なのかハッキリさせる為で,こうしないと,
\left, \right が上手くいかないです.