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



\lB で \mathbb{B}を出すマクロ (after しゃいたん)

元ネタは arXiv:1404.7088 .で,\lB と打つと {\mathbb{B}} が出るという,視覚的に素晴らしいアイデアである!
もちろん,\newcommand で\lA \lBとかを追加しまくればよいのだけれど,もっとクールにしたい.(というか,\mathcal とかもやりたいから短いマクロがあると嬉しい.)
しゃいたんに作ってもらいました!スーパーハカー!!詳しくは下を参照のこと.

TeXを使ってすみちゃまともっと仲良しになる方法 (\lBで\mathbb{B}を出したい) - shaitan's blog

ちょこっといじることで,\cH で \mathcal{H},\fH で \mathfrak{H},\gh で \mathfrak{h}が出るように出来ます.
自明だけど一応下に載せておきます.

\makeatletter %\fB => \mathfrak{B}, \gb => \mathfrak{b}, \lB => \mathbb{B}, \cB => \mathcal{B}
\@tempcnta\z@
\loop\ifnum\@tempcnta<26
\advance\@tempcnta\@ne
\expandafter\edef\csname f\@Alph\@tempcnta\endcsname{\noexpand\mathfrak{\@Alph\@tempcnta}}
\expandafter\edef\csname g\@alph\@tempcnta\endcsname{\noexpand\mathfrak{\@alph\@tempcnta}}
\expandafter\edef\csname l\@Alph\@tempcnta\endcsname{\noexpand\mathbb{\@Alph\@tempcnta}}
\expandafter\edef\csname c\@Alph\@tempcnta\endcsname{\noexpand\mathcal{\@Alph\@tempcnta}}
\repeat

\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 が上手くいかないです.

\hat{\otimes}をMathOperatorにするべし?

ひさしぶりに,TeX備忘録.
分野からか,沢山のテンソル積を使い分けるのだけれど,テンソル積の記号 {\otimes} (\otimes )にハットやらチルダやらつけたくなる事が
多々あります.例えば,{\displaystyle \iota : X \otimes Y \to X\hat{\otimes } Y}という感じで.
ところが,よく見ると{\hat{\otimes}} (\hat{\otimes}) が文字として扱われてるのか,{\hat{\otimes}}の左右の余白が残念な感じです.細かいけど,一度気にしだすと我慢できない!

以前のしゃいたんからの助言を思い出して
プリアンブルで,次のように mathoperator?にすることで解決.

\DeclareMathOperator{\hotimes}{\hat{\otimes}}

で,

\iota : X \otimes Y \to X {\hotimes } Y

と打てば,{\displaystyle \iota : X \otimes Y \to X \mathop{\hat{\otimes }} Y}となって良い感じ.

ところで,\hat, \tilde, \bar みたいな上に来るタイプの飾り?については未だに悩んでいることがあって,
例えば,{\hat{\otimes}}{\widehat{\otimes}}はどちらを使うべきかとか,
{ \Phi: \chi \mapsto \hat{\chi} }なる写像が与えられたとき,{\Phi (\chi_n)}を,{\hat{\chi_n}}{\widehat{\chi_n}}{\hat{\chi}_n}のどれで書くべきか,などなど.数学的には3つ目はよろしくない感じがある.
意見などを教えて下さるとうれしいです.

追記(2014/11/28):テンソル記号は二項関係子なので,\mathbinを使うべきのようです.
この場合,\DeclareMathOperator は使えないので,代わりに

\newcommand{\hotimes}{\mathbin{\hat{\otimes}}}

とやれば良いとのこと.