📝

Typst で和文と欧文の境界に隙間を入れる

2023/04/27に公開

和文の組版をしている中にラテン文字の単語があるときには全角の四分の一に相当する空白を境界に入れる習慣がある。 Typst ではそのような処理はしてくれないがちょっとしたスクリプトでなんとかなる。

#show regex("[\\P{latin}&&[[:^ascii:]]][\\p{latin}[[:ascii:]]]|[\\p{latin}[[:ascii:]]][\\P{latin}&&[[:^ascii:]]]") : it => {
    let a = it.text.match(regex("(.)(.)"))
    a.captures.at(0)+h(0.25em)+a.captures.at(1)
}

= 利用例
和文にLatin文字などがあるとき

この少しの空白で仕上がりの印象が違う。

実際には括弧や句読点の前後では例外的な処理をするのが一般的なようだがここでは考慮していない。 境界の判断も雑なのでこれで良いのか自信がないのだが既存の組版システムでどのように判断しているのか調べるのも面倒なのでとりあえず自分が有用だと思う形でやってみた次第。

Discussion