『数式組版』を組む技術:\leftと\right (2)
本稿において,“本書”とは木枝祐介著『数式組版』ラムダノート(2018)のことである.
>>> https://www.lambdanote.com/collections/mathtypo
また,本書はLuaLaTeXを用いて組まれた.したがって本稿ではLuaLaTeXの使用を前提としている.
本書が組まれた当時はTeX Live 2017が用いられたが,多くのコードはそれより後のTeX Live 2019まで共通して使用可能である.
本稿では,バージョンに強く依存する場合を除いて,各バージョンは明記されないことがある.
\left/\right使用のリスク
`\left`と`\right`とを利用する際に,組版上つぎのリスクがある.
▶ その途中で改行ができない
▶ その前後に暗黙のアキがはいる
◆途中改行不可
インライン数式で`\left`と`\right`で括られた中では自動改行のみならず,強制改行をも働かなくなる(たとえ強制改行`\\`を発行しても改行されず,エラーも発生しない).
またディスプレイ数式では手動改行しようとするとつぎのようなエラーとなる.
! Extra }, or forgotten \right.
いずれにせよ,改行は不可となる.
これは`\left`と`\right`とで括られた数式が内部数式とよばれる状態になることに起因し,基本的に解決方法をもたない.
一方,古典的につぎの回避方法が知られている.
▶ `\left( ... \right.`/`\left. ... \right)`のように,ピリオドを用いていったん`\left`と`\right`との括りを中断する
たとえば,`align*`環境内でつぎのように処理することで“改行”をおこなうわけである.
\begin{align*}
f(x) & = \frac{1}{2}\left(\frac{1}{3}g(x) + \frac{1}{3}h(x)\right.\\
& \hphantom{= \frac{1}{2}\left(\vphantom{\frac{1}{2}}\right.}
\left. {}+ i(x) + j(x)\right)
\end{align*}
なお,この方法ではつぎの問題がしられている.
▶ `\left`によって出力されるものと`\right`によって出力されるものの大きさが異なることがある.
上の図でもこの問題は現れている.
この問題に対してはつぎの解決方法が古典的である.
▶ `\vphantom`により,同じ大きさになるように調整する
この方法で解決する場合には,`\vphantom`の引数は当該数式の中の高さが深さが最も大きいものをとる必要がある.
この操作によって括弧類の大きさのバランスがとれることになる.
\begin{align*}
f(x) & = \frac{1}{2}\left(\frac{1}{3}g(x) + \frac{1}{3}h(x)\right.\\
& \hphantom{= \frac{1}{2}\left(\vphantom{\frac{1}{2}}\right.}
\left.\vphantom{\frac{1}{2}} + i(x) + j(x)\right)
\end{align*}
◆暗黙のスペース挿入
`\left`と`\right`とを冠し,たとえばパーレンを用いた場合,その開きのパーレンの直前と,閉じのパーレンの直後に暗黙のスペースが挿入される.
このスペースは,大きい括弧類のときにのみ挿入されるわけではない.
`\left`と`\right`とが冠されても通常の大きさの括弧が選択されたときにもこのスペースは挿入される.
このことは,たとえばつぎのようなコードからもわかる.
$\mathrm{H}\left(x\right)\mathrm{H}$
$\mathrm{H}(x)\mathrm{H}$
この差が暗黙に挿入されるスペースである.
このスペースの正体は内部数式との隣接により挿入されいているスペースである.
TeXのアトムでいえば`Inner`である.
したがって,その前後には規定されただけのスペースが挿入される.
このスペースを無くす方法にも古典的な方法が知られている.
▶ `{\left ... \right}`と全体をブレスで括る
この記述によって,同じ内部数式でも**通常記号**として扱うようにするわけである.
$\mathrm{H}{\left(x\right)}\mathrm{H}$
最初に挙げたディスプレイ数式での改行の例でもこの問題は発生しているが,その補正は自明であろう.
この記事が気に入ったらサポートをしてみませんか?