大きなアスタリスク* \bigast の作り方
数学記号や文字を,\bigplus や \sum と同じように使いたいときがある.
日本語で解説しているページが見つからなかったので,備忘録として残すことにした.
英語のページはこちら.
How to create my own math operator with limits? - TeX - LaTeX Stack Exchange
ソース
\usepackage{graphicx} \usepackage{calc} \newcommand{\bigast}{ \mathop{ \vphantom{\bigoplus} \mathchoice {\vcenter{\hbox{\resizebox{\widthof{$\displaystyle\bigoplus$}}{!}{$\ast$}}}} {\vcenter{\hbox{\resizebox{\widthof{$\bigoplus$}}{!}{$\ast$}}}} {\vcenter{\hbox{\resizebox{\widthof{$\scriptstyle\oplus$}}{!}{$\ast$}}}} {\vcenter{\hbox{\resizebox{\widthof{$\scriptscriptstyle\oplus$}}{!}{$\ast$}}}} }\displaylimits }
とやっとけば,\bigast で \ast が \bigoplus のように出力されます.
※私のPCだと,pdflatex だと上手くいかず dvi を経由しないといけないようです.
命令文の雑な解説
外側から順にいく.
\mathop{ }\displaylimits
余白調節系.{ }内を math operator として出すやつ.今回は \bigoplus と同じようなものを作りたいから,\mathop を使った.\otimes みたいなのを出すなら,\mathbin とかを使う.詳しくは
LaTeX 数式の縦/横の調整(Kodama's tips page)
を参照.後ろについている \displaylimits は添え字の付き方を指定している.他にも,\limits と \nolimits があるぞ!
(例えば,\sum と \int はディスプレイでの添え字の付き方が違う)
\vphantom{ }
余白調節系.{ }内の文字と同じ高さの空白を作る.幅は無視される.
\mathchoice{ }{ }{ }{ }
実のところ,これが面白くて今回記事を書いた.場所ごとに出力を指定できる.\mathchoice{ディスプレイ}{テキスト}{スクリプト}{スクリプトのスクリプト}
の順番なので,それぞれに \bigoplus と同じように \ast を出すように命令を書く.例えば,
\newcommand{\hoge}{\mathchoice{a}{b}{c}{d}}
とすれば,場所によって,\hoge でa,b,c,dがそれぞれ出力される.
\vcenter{\hbox{ }}
正直よくわかってない.\vcenterは{ }内の垂直方向の中心が中心になるように出力してくれる,が内側に \hbox を入れないと 水平方向の余白がおかしくなる.例えば,
$\vcenter{\hbox{$\frac{a}{\frac{b}{c}}$}}=\frac{a}{\frac{b}{c}}$
とやると伝わるはず.
\resizebox{ }{ }{ }
graphicx.sty を使用.大きさを変える. \resizebox{幅}{高さ}{出力したいもの} の順.幅もしくは高さを指定したくないとき(片方決まれば残りも決まる)は ! を指定する.
\widthof{ }
calc.sty を使用.{ }内の幅.calc.styを使いたくない場合は,直接○○ptとかcmとかやれば良さそう.