Kodama's home / tips.
{\fboxsep0pt\fbox{xyz}}
説明:
\fbox{text}ボックスに枠をつけて, 大きさなどを確認する. TeX では幅,高さ,深さがあるボックスに表示する要素を詰め込んでそれを組み合わせる事で 文書レイアウトを実現している. 細工をするときにはボックスが見えると便利.
\fboxsep は text と 枠線の間隔を決める. 配置を確認するときには, \fboxsep 0pt とすると枠線の影響が少くなる. (枠線の太さの影響は残る.)
$ \sqrt{\mathfbox{x}} $
説明:
$ \mathfbox{数式} $\mathfbox は数式環境で \fbox 相当の動作を実現する.
使用するには以下の定義をプリアンプルに置く.
\def\mathfbox#1{{\fboxsep0pt\mathchoice {\fbox{$\displaystyle #1$}} {\fbox{$\textstyle #1$}} {\fbox{$\scriptstyle #1$}} {\fbox{$\scriptscriptstyle #1$}} }}\fbox では数式環境での利用が不便なので数式への適用を組み込んだマクロを定義する. 数式環境毎の定義の切替えには \mathchoice を使う.
\def\showsize#1{\setbox0=\hbox{#1}width=\the\wd0, height=\the\ht0, depth=\the\dp0}%%プリアンプルに置く \showsize{text}ボックス番号 0〜9 が準備されている. \setbox でボックスに詰め込んでそのサイズを表示する.
使用例:
X\phantom{MMM}Y, X\fbox{\phantom{MMM}}Y
説明:
\phantom{text}\phantom は text 部分と同じサイズで見えないボックスを作る.
数学記号 mathord: $x \mathord{\fbox{M}} y$,$x \forall y$ 演算子 mathop: $\displaystyle \mathop{\fbox{M}}_x^y $,$\displaystyle \sum_x^y $ 二項演算子 mathbin: $x \mathbin{\fbox{M}} y$, $x + y$ 関係子 mathrel: $x \mathrel{\fbox{M}} y$, $x = y$ 括弧 mathopen,mathclose: $\mathopen{\fbox{M}} y \mathclose{\fbox{N}} $, $ ( y )$ 区切り文字 mathpunct: $x \mathpunct{\fbox{M}} y$, $x , y$ (c.f fontmath.ltx)
説明:
数式環境では 数学記号, 二項演算子, 関係子, 括弧, 区切り文字 などの用途に応じて記号の間隔を定めている.
記号を作成したら, 数式中でどのように扱うか決めないと意図したような文字組にならない.
使用例:
$\displaystyle \mathop{E}^{x}_{y} z$ $\textstyle \mathop{E}^{x}_{y} z$ $\displaystyle \mathop{E}\nolimits^{x}_{y} z$ $\textstyle \mathop{E}\limits^{x}_{y} z$,
説明:
単項演算子として扱う.
\displaystyle で \mathop を使うと 上置き,下置き になる.
\textstyle では 上付き,下付きになる.
\displaystyle で上付き,下付きにするには \nolimits を使う.
\textstyle では上置き,下置きにするには \limits を使う.
使用例:
${x\atop y}, \left(x\atop y\right)$
説明:
$ {{上}\atop{下}} $分数の横棒のないもの.
使用例:
\usepackage{amsmath} % プリアンプルに置く $ \genfrac{}{}{}{}{x}{y},\genfrac{(}{)}{0pt}{0}{x}{y}, \genfrac{[}{]}{}{1}{x}{y} $
説明:
\genfrac{開き括弧}{閉じ括弧}{分数の横棒の太さ}{数式スタイル}{上}{下}分数を修正する場合 \genfrac で作りなおしても良いだろう. また, \atop の代わりに \genfrac を使うのも良い.
数式スタイルは番号で与える:
使用例:
$\begin{array}{c}x\\y\end{array}$
説明:
積み重ねに 1列だけの array を使っても良いが,
1つの記号としてまとめるには間隔などが広すぎる.
次の oalign は array の間隔を詰めたものと考えて良い.
使用例:
\oalign{{X}\crcr{Y}}, \oalign{{\hss X\hss}\crcr{\rule{1em}{.3pt}}\crcr{\hss Y\hss}}
説明:
\oalign{text \crcr text \crcr ... \crcr text}\oalign は複数の要素を積み重ねる. 間隔の調整が必要なら \ialign を使う.
使用例:
\leavevmode\vtop{\baselineskip0ex \lineskip.25ex \ialign{#\crcr{X}\crcr{Y}\crcr}}
説明:
\ialign は \oalign, \ooalign, 表組 などの元になっている.
\lineskip の部分で, 積み重ねの間隔の調整ができる.
使用例:
\usepackage{amsmath} % プリアンプルに置く $ \overset{n}{E} + \underset{n}{E} $
説明:
\overset{上}{本体} \underset{下}{本体}上下に飾りをつける. AmS-LaTeX のマクロなので プリアンプルに \usepackage{amsmath} が必要.
使用例:
$ x \stackrel{\mathrm D}{=} y $
説明:
\stackrel{上}{本体}\stackrel は記号の上に式を重ねて関係子を作る.
使用例:
$ x \buildrel{D}\over{=} x $
説明:
$\buildrel{上}\over{本体}$\buildrel \over は記号を重ねて関係子を作る. \stackrel とほぼ同じ.
使用例:
{X}\kern.5em{Y}\kern-.2em{Z}
説明:
\kern は引き続くボックスの間隔を調整する.
使用例:
$1m\qquad{}n,2m\quad{}n,3m\ n,4m~n,5m\;n,6m\>n,7m\:n,8m\,n,9m\!n,0mn$
説明:
数式モードでの間隔の調整(大きい方から).
注. \! はマイナスの幅.
使用例:
イタリック補正なし(r{\it i}r), 補正あり(r{\it i \/}r)\\ 単語間(I. I), 文間(I\@. I)\\ 単語間スペース: 調整なし(etc. x$\alpha \beta \gamma$ y z), あり(etc.\ x\ $\alpha\ \beta{} \gamma$~y~z)
説明:
x\hskip2em y
説明:
間隔を空ける.
x\hspace{2em} y \\ \hspace*{2em} z
説明:
間隔を空ける.
強制改行直後なら \hspace* を使う.
使用例:
\usepackage{amsmath} % プリアンプルに置く $m\mspace{10mu}n$, $m\mspace{-5mu}n$
説明:
数式環境で指定した長さの間隔を空けるには \mspace を使う.
間隔は負の数値も指定できる.
長さの単位 1mu = 1/18em.
AmS-LaTeX のマクロなので プリアンプルに \usepackage{amsmath} が必要.
使用例:
\leavevmode \hbox to 5cm{A\hspace{\fill}B\hspace{\stretch{2}}C}\\ \hbox to 5cm{A\hfill B\hfill \hfill C}\\ \hbox to 5cm{A\hss B\hss \hss C}\\
説明:
\hspace{\hfill} \hspace{\stretch{n}} \hfill \hss等間隔に要素を配置するには, 自由に延びる空白を入れる.
\hspace で自由に延びる長さを指定するには, 長さに \fill を使うと良い. \fill のかわりに \stretch{n} を使うと延びやすさが n 倍になる.
\hspace{\fill} の略記として \hfill がある.
\hfill は元の長さが 0pt で自由に延びるが, 縮むことはない. 延び縮みする空白としては \hss が用意されている.
使用例:
{\ooalign{{O}\crcr{\hss/\hss}}} {\ooalign{{O}\crcr{\hss/\hss}\crcr{\hss=\hss}}}
説明:
{\ooalign{text \crcr text \crcr ... \crcr text}}文字を重ねるときに使う. 上下の位置を調整すると記号の積み重ねにも使える. {} に閉じ込めて使うこと.
使用例:
X\hbox to 0pt{Y\hss}Z, X\rlap{Y}Z \\ X\hbox to 0pt{\hss Y}Z, X\llap{Y}Z
説明:
\hbox to 0pt{ } で幅 0pt のボックスを作って文字を重ねる.
\hbox to 0pt{...} の略記として \rlap, \llap がある.
使用例:
X\makebox[4em][l]{Y}Z,X\makebox[4em][r]{Y}Z
説明:
\makebox[width][pos]{text}width の幅のボックスを作る. text の埋め込む位置を pos(r 又は l) で指定できる. \hbox to ... とほぼ同じ.
使用例:
X\raise1ex\hbox{Y} Z, X \lower1ex\hbox{Y} Z
説明:
\raise持ち上げ\hbox{text} \lower沈みこみ\hbox{text}
使用例:
X\raisebox{2ex}[1ex][0ex]{Y}Z
説明:
\raisebox{raise_len}[height][depth]{text}\raisebox を使うと印字位置の調整と同時に, ボックスの大きさも変更できる. text 部分の高さ,深さを設定し, それを raise_len だけ上下に移動させる.
{\fboxsep0pt \fbox{\smash{text}}}
説明:
text の高さ,深さを 0pt にする.
\raisebox で height,depth を 0pt にするのとほぼ同じ.
表などで文字組を乱したくない場合に使うと良い.
使用例:
$\sqrt{x\strut}+\sqrt{y\mathstrut}$
説明:
\strut は高さが 0.7\baselineskip, 深さ 0.3\baselineskip の支柱.
\mathstrut は ( 相当の上下の間隔を持つ支柱.
使用例;
$\sqrt{x\rule{0pt}{2ex}}$
説明:
\rule[上方への移動]{幅}{高さ}\rule は幅と高さを指定して長方形を描くマクロだが, 幅を 0pt とすると, 見えない柱を立てることができる.
使用例:
$\sqrt{\vmargin{1ex}{0ex}{x}}$
説明:
\vmargin は 3番目の引数の内容に上下のすき間を開けて数式内に書き込む.
\vmargin{上方向の間隔}{下方向の間隔}{印字内容}
マクロの定義:
以下を プリアンプル 部分に書き込む.
\makeatletter \def\vmargin@#1#2#3{%% #3 with upper-margin #1, lower-margin #2 \setbox0=\hbox{#3}% \rule[#1]{0pt}{\ht0}% \lower\dp0\hbox{\rule[-#2]{0pt}{\dp0}}% \box0% } \def\vmargin#1#2#3{%% #3 with upper-margin #1, lower-margin #2 \mathchoice {\vmargin@{#1}{#2}{$\displaystyle #3$}} {\vmargin@{#1}{#2}{$\textstyle #3$}} {\vmargin@{#1}{#2}{$\scriptstyle #3$}} {\vmargin@{#1}{#2}{$\scriptscriptstyle #3$}} } \makeatother
Kodama's home / tips.