2024年4月23日

とりあえずTypstで行取りしてみた.

#let gyodori(lines: 2,x) ={
  context{
    // 和文文字の縦方向長さ(!= 横幅?)
    let letter_height = measure(box[阿]).height
    // 段落間の長さ(block(spacing:**)のやつ)を計測
    let block_spacing = measure(block[#par[阿];#par[阿]]).height - 2 * letter_height
    // 本文のテキスト長さの計算
    let textlen = page.width - {
      if page.margin == auto {
        (5/21) * {
          if page.width < page.height { page.width}
          else { page.height }
        }
      } else {
        page.margin.left + page.margin.right
      }
    }
    // とりあえずブロックに入れる
    let b = block(width: textlen, x)
    // 長さ計算
    let total_len = (letter_height + par.leading) * lines + par.leading
    let ue = (total_len - measure(b).height)/2
    let shita = ue
    block[
      #v(-block_spacing + ue)
      #b
      #v(-block_spacing + shita)
    ]
  }
}
ああああああああああ
#gyodori(lines: 4)[かきくけこ]
ああああああああああ

0 件のコメント:

コメントを投稿

コメントの追加にはサードパーティーCookieの許可が必要です