が,math.equation という名の関数としてある程度設定をいじることが可能である.
例えば数式モードにおけるフォントを自分の好みに設定したいとき,
#show math.equation: set text(font: "
TeX Gyle Schola Math")
という記述を,表示したい数式よりも前に本文中に認(したた)めておけばよい.
ちなみに,デフォルトの Libertinus は中文フォントもカバーしているようで,Typst 公式サイトのエディタなどでデフォルトの設定のまま日本語で文章を書くと句読点が左下ではなく,たとえば「・」のように中央に表示される.そして漢字やひらがなのフォントが微妙に思っていたのとチガウ.
文字種ごとにフォントを指定することも可能らしいが,私には未だにひらがな+カタカナ+日本風の漢字+全角コンマ+全角ピリオド,そしてそれら以外の
約物(カッコ類,引用符など)すべてを過不足なく網羅した
Unicode の範囲がイマイチ理解できていないのと,それらを調べる気力がないのとで,ひとまず Typst が提供してくれている latin-in-cjk をうまく利用することにしている.
ぶっちゃけ,*strong* みたいに * で挟んだ際の太字も,通常の
和文フォントを原ノ味明朝にしたとして,それに合わせて原ノ味ゴシックしたい場合も,自分で show ルールを使ってそのように設定しなければならないっぽい.まあ,それはそれで活字の濃さ (weight) もカスタマイズできるので,その設定のついでと思えば良いかもしれない.
愚痴をこぼせば,Typst の開発者がベルリン(大学?)出身の二人組であるため,どうしても欧文の文化を基盤とした
組版システムにならざるを得ず,縦組みをはじめとする日本語の文書として満足のいく出来栄えを目指すには自分でどうにかするしかないといった不便さが拭えない.
フォントの指定の仕方の詳細については,これまであれこれ試してみたものの,実験結果をぜんぜんまとめていないので,その報告はするとしても別の機会としたい.
さて,今回の本題は
LaTeX ならば,たいていファイルの一行目に書く document class のオプションにある,数式を左揃えで表示する fleqn(おそらく flushleft equations といった感じの語句の略称)を Typst で実現する方法を紹介することである.
まず,Typst の本文の冒頭あたりにでも
#show math.equation: set align(left)
というおまじないを入れておけば,それだけで別行立て数式がデフォルトで中央揃えだったのが左揃えに変更される!
ところが,である.
アキ,いうなればインデントの余地など全く無く,本当に完全に左端に寄ってしまうのである.
求メテ イタ ノハ ソレ ジャナイ・・・.
そこで,例えば2文字分のアキを左側に設定したければ,pad 関数を使えばよい.pad 関数で左に2文字分のインデントを入れることにしたい場合は,
#pad(x: 2em, contents)
のようにする.contents のところは実際の文章というか表示したい文字列を記入する部分である.
ところが,これを利用して
#show math.equation: it => pad(x: 2em, [#it])
のようにしてしまうと,何ということでしょう!文中に埋め込むインラインモードの数式が使えなくなってしまうのである.つまり,この show ルールを入れてしまうと,pad 関数が block レベルのコンテンツを吐き出すせいか,block 仕立ての数式,つまり別行立て (display) の数式としてしか表示されなくなってしまうのである.
それはそれで意図していない事態であって,どげんかせんといかん.
結論として,あまりエレガントな解決策とは言い難いが,自前の fleqn という関数を次のように定義することとする.
#let fleqn(it) = {show math.equation: set align(left)
pad(x: 2em, [#it])
}
こうすることで,デフォルトの別行立て数式表示の中央揃えの設定はそのまま残すことになり,数式のインライン表示も問題なく,自分好みの2文字分のインデントにぶら下がった左揃え数式を表示したければ,
#fleqn($ a (b+c) = a b + a c $)
のように書けばよい.ここで,引数は別行立て数式の書き方をそのまま使用することにだけ注意していただきたい.最初の $ の直後と,最後の $ の直前に半角スペースを入れなければならないのである.
※ では半角スペースを入れなければインライン表示になるか?というとそうはならない.pad は block を扱うため,半角スペースを入れ忘れても別行立ての表示で出力される.では何が違うかというと,別行立てのくせにインライン表示になるのである.例えば分数の表示が,文字が小さいバージョンになったりする.私は,個人的にインラインは $x/y$ で,別行立ては $$x/y$$ で書くような仕様の方が良かったのに,と思っている.スペースは数式を編集している途中ですぐ消えるからねぇ.案外煩わしいのれす.
ともかく,悲願の一つであった数式の左寄せが Typst でもちゃんと実現できることがわかったので朕は満足しておるぞよ.