排版論

出自Tan Kian-ting的維基
於 2022年3月6日 (日) 21:19 由 Tankianting討論 | 貢獻 所做的修訂
跳至導覽 跳至搜尋

排版學其實也可以用數學化約之,但是要定 spec。

字圖 glyph

行(line)

將 glyphs 放置的一行文字區塊。比如說下文。

| 我今天坐公車離開臺中市 | <- 行1
|                        |
| 然後)往臺南旅行。      | <- 行2

行有基線 baseline,且有方向 (textDirection),分成兩種,四值:

  1. 基線在字圖之底:
    1. RTL 如西文。
    2. LTR 如希伯來和阿拉伯文。
  2. 基線在字圖之左:
    1. BTT 由下而上,罕用。
    2. TTB 由上而下,如對聯、蒙古文字。


計算行高方式 (automatic-height)

我們可以定義line的depth「行的深度(基線到底/左之距)」和height「行的高度(基線到頂/右)之距」,是 auto 和 fixed,將變數儲存於 automatic-height。

若「automatic-height = auto」,則depth公式如下計算:

  • line.depth = max(glyph[i].depth) for i in range(len(line.glyphs))
  • line.height = max(glyph[i].height) for i in range(len(line.glyphs))

以及行的高度(基線到上/右)取決於:

div

頁面

模型層(資料大綱層)

顯示格式層