3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

TypstAdvent Calendar 2024

Day 4

Typstで黒板太字・筆記体・花文字・ギリシャ文字・ドイツ文字・ヘブライ文字(一部)を表記する方法

Last updated at Posted at 2024-12-03

本記事はTypst Advent Calendar 2024の4日目の記事です。
昨日は@doraTeXさんによるVScode Dev Container on macOS でポータブルな Typst の日本語執筆環境を構築する(結論要約版)が公開されました。
明日は@key_271さんによる記事が公開される予定です。

あまり難しい手順は必要ありませんが、意外と花文字の表記が紹介されていなかったり、表記方法をまとめた記事がなかったりしたため、備忘録の意味も込めてまとめておきます。こちらに掲載している情報は2024年12月2日時点の最新バージョン(typst 0.12.0)およびtypst公式ドキュメントの内容に基づきます。また、基本的にフォントにはNew Computer Modern,Harano Aji Minchoを使用しています。

黒板太字(Blackboard bold)

黒板太字(Blackboard bold)は数学で特定の集合(実数の集合や複素数の集合など)を表す際に使用される書体です。LaTeXでは\mathbb{}を使って表記しますが、Typstではbb関数を用いて表記するか、大文字の場合はRRCCのように、ラテン文字を重ねることで表記することが出来ます。

$ 
  bb(b)\
  RR=bb(R)
$

$RR^n$は$n$次元の実ベクトル空間を表す。

このように表記すると、以下のように表示されます。

bb.png

筆記体(Calligraphic)

筆記体(Calligraphic)も、数学的な文章を書く際によく使われます(筆者は完全加法族を表す記号として筆記体の$\mathcal{F}$を使用することが多い)。LaTeXでは\mathcal{}を使って表記しますが、Typstではcal関数を用いて表記します。

$
  cal(A B C D E F G)\
  cal(a b c d e f g)
$

#align(center)[完全加法族$cal(F)$は集合の補集合をとる演算、\ 有限個の集合の和集合・積集合をとる演算に対して閉じている。]

このように表記すると、以下のように表示されます。

cal.png

花文字

花文字に関しては少し厄介な問題があります。
というのも、LaTeXでは筆記体には\mathcal{}を使い、花文字には\mathscr{}を使いますが、Unicodeでは両者に同じ文字コードが割り当てられているため、Typstではこれらを区別することが出来ません。

その対処法として、以下に示すような関数(公式ドキュメントから抜粋)を独自に定義するというものがあります。

#let scr(it) = text(
  features: ("ss01",),
  box($cal(it)$),
)

このように定義した後、scr関数を用いて表記することで、花文字を表記することが出来ます。

$
  scr(A B C D E F G)\
  scr(a b c d e f g)
$

$ scr(F)[f(t-t_0)]=e^(-i omega t_0)F(omega) = G(omega) $

scr.png

ただし、注意点としてこの方法はデフォルトの数式フォント以外では使用できるか不明瞭であるということに留意してください。フォント特性(font features)をそもそもサポートしていないフォントでは上記の関数を定義してもおそらくエラーが発生するでしょうし、サポートしているフォントだったとしても、所望の字体がss01に割り当てられているかどうかは不明です。そのため、デフォルトの数式フォント以外を導入する場合は、ドキュメントを参照して対応をおこなうことをお勧めします。上記の例でお気づきの方もいらっしゃるでしょうが、私の使用しているNew Computer Modernでは小文字には対応していなかったようです...。(ただこれに関してはLaTeXでも表示されなかった記憶があるので、そこまで深刻な問題では無いのかもしれません)

ギリシャ文字

ギリシャ文字は数学の表記において欠かせないものです。LaTeXでは\alpha\betaのように表記しますが、Typstではalphabetaのようにそのまま表記すればギリシャ文字として表示されます。また、大文字にしたい場合はAlphaBetaのように、頭文字を大文字にすることで表記することが出来ます。

$
  alpha beta gamma delta epsilon zeta eta theta iota kappa lambda mu nu xi omicron pi rho sigma tau upsilon phi chi psi omega\
  Alpha Beta Gamma Delta Epsilon Zeta Eta Theta Iota Kappa Lambda Mu Nu Xi Omicron Pi Rho Sigma Tau Upsilon Phi Chi Psi Omega
$

greek.png

また、LaTeXでは一部のギリシャ文字の変種(例:$\epsilon$と$\varepsilon$、$\phi$と$\varphi$)を表記するために\varepsilon\varphiを使用しますが、Typstではepsilon.altphi.altのように.altを付けることで表記することが出来ます。

$
    epsilon epsilon.alt\
    phi phi.alt
$

greek_alt.png

個人的には、Typstの、末尾に.altを付けることで変種を表記するという方法は非常に直感的でわかりやすいと感じました。しかし面倒なことに、LaTeXにおける\varとTypstにおける.altは必ずしも対応しているわけではないようです......。(例えばLaTeXの\varepsilonに対応するのは$\varepsilon$ですが、Typstでこれを表示したいときの表記は普通のepsilon)

ドイツ文字(フラクトゥール)

ドイツ文字を表記する際、LaTeXでは\mathfrak{}を使って表記しますが、Typstではfrak関数を用いて表記することが出来ます。

$
  frak(A B C D E F G)\
  frak(a b c d e f g)
$

frak.png

このように表記すれば、26文字のラテン文字(大文字、小文字)に対応したドイツ文字を表示することが出来ます。私はあまり詳しくありませんが、ドイツ文字を使用する分野としてはリー代数等があるらしいです。

ヘブライ文字

ヘブライ文字は、例えば無限集合の濃度を表すのにアレフ(aleph、$\aleph$)記号が使われることがあります。LaTeXでは\alephを使って表記しますが、Typstではalephのように名前をそのまま使って表記することが出来ます。

$
  aleph alef beth bet gimmel gimel daleth dalet shin
$

$aleph_0$はすべての自然数からなる集合の濃度であり、無限基数である。

hebrew.png

ちなみに筆者は$\aleph$以外のヘブライ文字が使われている場面を見たことがありません...(不勉強)。

まとめ

今回は、主に数学で用いられることの多い様々な字体などをTypstで表記する方法を紹介させていただきました。今回例示に使用したコードはGithubにアップロードしていますので、興味のある方はこちらから閲覧してみてください(大した文量はありませんが...)。また、コードの間違いや改善案、誤字脱字、Typstのバージョンアップに伴う変更などがあれば、お気軽にご指摘いただけると幸いです。よきTypstライフを!

参考文献

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?