見出し画像

『数式組版』を組む技術:数式中のパンクチュエーションマーク

本稿において,“本書”とは木枝祐介著『数式組版』ラムダノート(2018)のことである.
>>> https://www.lambdanote.com/collections/mathtypo
また,本書はLuaLaTeXを用いて組まれた.したがって本稿ではLuaLaTeXの使用を前提としている.
本書が組まれた当時はTeX Live 2017が用いられたが,多くのコードはそれより後のTeX Live 2019まで共通して使用可能である.
本稿では,バージョンに強く依存する場合を除いて,各バージョンは明記されないことがある.

数式中のカンマ

本稿では数式中のパンクチュエーションマーク,とくにカンマに着目する.
本書でもふれたように,数式に用いる欧文は本文での欧文と同じ字形のものを用いる.
したがって,数式中のカンマは本文中の(欧文)カンマと同じかたちをしている.

一方,一般に数式中のカンマと本文中のカンマではスペーシングの作用が異なる.
これは,数式中のカンマは句読点アトムであるので,アトムとしての振舞いをする.

多くのこの事自体とくに場合問題とはならないが,和欧混植の場合,稀に和文のカンマの本文中でのふるまいとのギャップを補正しようとし,数式中のカンマ直後に無理矢理スペースを直接マクロあるいはコマンドにより挿入するような組版が散見できる.
たとえばつぎのような具合である.

(A,\ B)

多少気をきかせたつもりで,ブレースによりアトムの作用をつぶし,つぎのようにすものも見掛ける.

(A{,}\ B)

注:数式中のカンマを和文のカンマを用いているものも見掛けるが,そういった組版は本稿の興味対象外である.

これら根本的な解決でないばかりか,恣意的な操作にすぎず,不統一を引き起す原因になりかねない.

つぎのコードはカンマをアクティブにし,直接スペースを制御している.

\begingroup
\catcode`\,=\active
\def\@x@{\def,{\normalcomma\hskip1em}}
\expandafter\endgroup\@x@%
\mathcode`\,="8000
\def\normalcomma{\mathchar"613B }

このコードにより,スペーシングのコードをいちいち手入力せずにスペースを制御できるようになる.

つぎの図は上のコードにより,カンマの直後のスペースが1emとされたものの例である.

画像1

参考
> texdoc mathpunctspace

いいなと思ったら応援しよう!