KaTeXの行間と字間
はじめに
KaTeXではソースに空白文字を置くだけでは空白が出力されません。
これを利用してソースを読みやすくするために空白を使えます。
a b
c
この記事では、KaTeXで文字間隔を調整する方法や自動で挿入される字間について説明します。
空白文字の表
文字間隔を増減させるコマンドの表です。
関数 | 表示 | 関数 | 表示 |
---|---|---|---|
\, |
3/18 em スペース | \kern{distance} |
幅 distance のスペース、mu 単位不可 |
\thinspace |
3/18 em スペース | \mkern{distance} |
幅 distance のスペース、mu 単位のみ、数式モード限定 |
\> |
4/18 em スペース | \mskip{distance} |
幅 distance のスペース、mu 単位のみ、数式モード限定 |
\: |
4/18 em スペース | \hskip{distance} |
幅 distance のスペース、mu 単位不可 |
\medspace |
4/18 em スペース | \hspace{distance} |
幅 distance のスペース、mu 単位不可 |
\; |
5/18 em スペース | \hspace*{distance} |
幅 distance のスペース、mu 単位不可、数式モード限定 |
\thickspace |
5/18 em スペース | \phantom{content} |
content の幅と高さのスペース |
\enspace |
1/2 em スペース | \hphantom{content} |
content の幅のスペース |
\quad |
1 em スペース | \vphantom{content} |
content の高さの支柱 |
\qquad |
2 em スペース | \! |
– 3/18 em スペース |
~ |
ノーブレークスペース | \negthinspace |
– 3/18 em スペース |
\nobreakspace |
ノーブレークスペース | \negmedspace |
– 4/18 em スペース |
\<スペース> |
半角スペース | \negthickspace |
– 5/18 em スペース |
\space |
半角スペース | \mathstrut |
\vphantom{(} |
a \, b \> c \: d \enspace e \quad f \qquad g \ h
ノーブレークスペースは空白を入れますが、その場所での改行による分割を許しません。
ab~cd
distanceは #KaTex単位 で指定します。
マイナスのスペースは字間を縮めます。
a \kern{1em} b \mkern{2mu} c \\
a \hspace{1em} b \hspace{1.5em} c \\
a \hspace{0em} b \\
a \hspace{-0.2em} b \\
\phantom
、\hphantom
、\vphantom
は空間だけを確保して実際には何も表示しません。
\frac{1}{3} + \frac{1}{5} = \boxed{\phantom{\frac{8}{15}}} \\
\sqrt{\vphantom{\frac{1}{2}}1} \sqrt{\frac{1}{2}} \\
abcde \\
a \hphantom{bcd} e
\\
と\newline
は改行です。
\\[distance]
は行の間隔を制御します。
\\
を複数連続しても空行は倍にならないので、\\[1em]
のように距離を指定して行間を広げます。
aX \\ \\
\\
bX \\
cX \\[1em]
dX \\[2em]
eX \\[0em]
fX \\[-0.5em]
gX
KaTeX単位
KaTeX 単位 | 値 | KaTeX 単位 | 値 |
---|---|---|---|
em | CSS em(フォントサイズ) | bp | 1/72 inch × F × G |
ex | CSS ex(文字 x の高さ) | pc | 12 KaTeX pt |
mu | 1/18 CSS em | dd | 1238/1157 KaTeX pt |
pt | 1/72.27 inch × F × G | cc | 14856/1157 KaTeX pt |
mm | 1 mm × F × G | nd | 685/642 KaTeX pt |
cm | 1 cm × F × G | nc | 1370/107 KaTeX pt |
in | 1 inch × F × G | sp | 1/65536 KaTeX pt |
abc \\
a \hspace{1em} b \hspace{1.5em} c \hspace{2em} d\\
a \hspace{1cm} b \hspace{1in} c \hspace{1ex} d
Fは(周りの HTML テキストのフォントサイズ) / (10 pt)です。
Gはデフォルトで1.21(KaTeX フォントサイズは通常 1.21 × 周りのフォントサイズであるため)です。この値はCSSで設定できます。
.katex { font-size: 1.1em; }
スタイルとサイズの効果:
単位 | textstyle | scriptstyle | scriptscript | huge |
---|---|---|---|---|
em または ex | ||||
mu | ||||
その他 |
数式クラス
KaTeXには、文字の種類に応じて自動で時間を調整する機能があります。
\sin x + xy \sin 2 x = (x)(y) \sin (x + x) + \sin(x)
それぞれの文字は8つのクラスのいずれかに割り当てられています。以下の関数でクラスを指定できます。
関数 | 結果 | 例 |
---|---|---|
\mathord |
通常 |
a x |
\mathop |
単項演算子 |
\sin \lim |
\mathbin |
二項演算子 |
+ |
\mathrel |
関係演算子 |
= |
\mathopen |
開き括弧 |
( \{ [ |
\mathclose |
閉じ括弧 |
) \} ] |
\mathpunct |
句読点 |
\ldotp , |
\mathinner |
内部要素 |
\ldots |
立体で表記する単項演算子をひとつの関数で定義するために、\operatorname
や\operatorname*
が使えます。これらは添字がつく位置に違いがあります。
関数 | 結果 | 例 |
---|---|---|
\operatorname |
ローマン体単項演算子 |
\sin \log |
\operatorname* |
ローマン体limit型単項演算子 |
\lim \max |
\operatornamewithlimits |
同上 |
\newcommand\Log{\operatorname{Log}}
\newcommand\esssup{\operatorname*{ess~sup}}
\Log_{a} x \\
\esssup_{x \in A} f(x) \\
\limits
\nolimits
で添字の位置を個別に調整できます。
\sum\limits_{k=0}^n k \quad
\sum\nolimits_{k=0}^n k
各クラスの間の空白は以下の法則に従って決まります。
左側\右側 | Ord | Op | Bin | Rel | Open | Close | Punct | Inner |
---|---|---|---|---|---|---|---|---|
Ord | 0 | 1 | (2) | (3) | 0 | 0 | 0 | (1) |
Op | 1 | 1 | * | (3) | 0 | 0 | 0 | (1) |
Bin | (2) | (2) | * | * | (2) | * | * | (2) |
Rel | (3) | (3) | * | 0 | (3) | 0 | 0 | (3) |
Open | 0 | 0 | * | 0 | 0 | 0 | 0 | 0 |
Close | 0 | 1 | (2) | (3) | 0 | 0 | 0 | (1) |
Punct | (1) | (1) | * | (1) | (1) | (1) | (1) | (1) |
Inner | (1) | 1 | (2) | (3) | (1) | 0 | (1) | (1) |
表の0、1、2、3はそれぞれスペースなし、thinスペース、mediumスペース、thickスペースを表します。
括弧はディスプレイスタイルかテキストスタイルでのみスペースを挿入し、スクリプトスタイルやスクリプトスクリプトスタイルではスペースを挿入しません。
Bin要素の両側は二項演算の性質に対応した要素でなければならないため、*
が適用されることはありません。
(The TEXbook p. 170 より)
rule
\rule{幅}{高さ}
または\rule[底上げの量]{幅}{高さ}
は塗りつぶした長方形です。
x\rule{3ex}{3ex}x \quad x\rule[6pt]{2ex}{1ex}x
関連記事
ご清読ありがとうございました。
Discussion