橫排和直排的中文字體
今天想起比較一下 jfm 橫排和豎排的區別,文件目錄在: /usr/local/texlive/2019/texmf-dist/fonts/source/uptex-fonts/
,中日韓分別有不同內容,這裏只看看中文橫排和直排的內容(詳細見文末)比如:
參數 | 橫排 | 直排 |
---|---|---|
文件名 | upschr-h | upschr-v |
DIRECTION | - | TATE |
CHARWD | 1.000000 | 1.000000 |
CHARHT | 0.500000 | 0.880000 |
CHARDP | 0.500000 | 0.120000 |
從上表可以看到橫排和直排(字形的)盒子模型的區別,特別是 DIRECTION 和字體名稱。兩個文件中都包含 GLUEKERN 這個“小程序”,就是 list,默認的漢字作爲 TYPE O 0,標點符號分不同的組,這是爲什麼呢?這就是 CJK 排版和西文排版的區別,ASCII 可以包含常用的西文字符,簡單理解爲等寬的半寬字符,而中文的字符是等寬的標點符號卻不完全是,在一些地方存在壓縮。TeX 系統有一個 glue 的概念,是彈性的,所謂彈性的意思是:glue 有一個固有尺寸,可以壓縮也就是 shrink,也往左右擴張叫做 stretch,所以一個 glue 包含三個數值,width stretch shrink,那麼對於漢字而言,這三個值不是變的,標點符號則不是。具體在一行中是否要改變 glue 的值,在 TeX 排版的時候會根據情況判斷的。所以現在繞回來,這個 gluekern 有什麼用,其實就是設置不同類型的標點兩兩組合,以及漢字+標點的組合之間的 glue 的值。
中文字和日文字體的區別呢?
upschr-h.pl
(COMMENT THIS IS A KANJI FORMAT FILE)
(FAMILY UPSCH KANJI)
(FACE F MRR)
(CODINGSCHEME TEX KANJI TEXT)
(DESIGNSIZE R 10.0)
(COMMENT DESIGNSIZE IS IN POINTS)
(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)
(CHECKSUM O 0)
(FONTDIMEN
(SLANT R 0.0)
(SPACE R 0.0)
(STRETCH R 0.100000)
(SHRINK R 0.0)
(XHEIGHT R 1.000000)
(QUAD R 1.000000)
(EXTRASPACE R 0.250000)
(EXTRASTRETCH R 0.200000)
(EXTRASHRINK R 0.125000)
)
(GLUEKERN
(LABEL O 0)
(GLUE O 1 R 0.500000 R 0.0 R 0.500000)
(GLUE O 3 R 0.250000 R 0.0 R 0.250000)
(STOP)
(LABEL O 1)
(GLUE O 3 R 0.250000 R 0.0 R 0.250000)
(STOP)
(LABEL O 2)
(GLUE O 0 R 0.500000 R 0.0 R 0.500000)
(GLUE O 1 R 0.500000 R 0.0 R 0.500000)
(GLUE O 3 R 0.250000 R 0.0 R 0.250000)
(GLUE O 5 R 0.500000 R 0.0 R 0.500000)
(STOP)
(LABEL O 3)
(GLUE O 0 R 0.250000 R 0.0 R 0.250000)
(GLUE O 1 R 0.250000 R 0.0 R 0.250000)
(GLUE O 2 R 0.250000 R 0.0 R 0.250000)
(GLUE O 3 R 0.500000 R 0.0 R 0.250000)
(GLUE O 4 R 0.250000 R 0.0 R 0.250000)
(GLUE O 5 R 0.250000 R 0.0 R 0.250000)
(STOP)
(LABEL O 4)
(GLUE O 0 R 0.500000 R 0.0 R 0.0)
(GLUE O 1 R 0.500000 R 0.0 R 0.0)
(GLUE O 3 R 0.750000 R 0.0 R 0.250000)
(GLUE O 5 R 0.500000 R 0.0 R 0.0)
(STOP)
(LABEL O 5)
(GLUE O 1 R 0.500000 R 0.0 R 0.500000)
(GLUE O 3 R 0.250000 R 0.0 R 0.250000)
(KRN O 5 R 0.0)
(STOP)
)
(CHARSINTYPE O 1
‘ “ ( 〔 [ { 〈 《 「 『
【
UFF5F U3018 U3016 U301D
U2329 U301A
)
(CHARSINTYPE O 2
、 , : ; ’ ” ) 〕 ] } 〉 》
」 』 】
UFF60 U3019 U3017 U301F
U232A U301B U301E
)
(CHARSINTYPE O 3
・
U00B7
)
(CHARSINTYPE O 4
。 . ? !
)
(CHARSINTYPE O 5
— ― … ‥
)
(TYPE O 0
(CHARWD R 1.000000)
(CHARHT R 0.880000)
(CHARDP R 0.120000)
(COMMENT
(GLUE O 1 R 0.500000 R 0.0 R 0.500000)
(GLUE O 3 R 0.250000 R 0.0 R 0.250000)
)
)
(TYPE O 1
(CHARWD R 0.500000)
(CHARHT R 0.880000)
(CHARDP R 0.120000)
(COMMENT
(GLUE O 3 R 0.250000 R 0.0 R 0.250000)
)
)
(TYPE O 2
(CHARWD R 0.500000)
(CHARHT R 0.880000)
(CHARDP R 0.120000)
(COMMENT
(GLUE O 0 R 0.500000 R 0.0 R 0.500000)
(GLUE O 1 R 0.500000 R 0.0 R 0.500000)
(GLUE O 3 R 0.250000 R 0.0 R 0.250000)
(GLUE O 5 R 0.500000 R 0.0 R 0.500000)
)
)
(TYPE O 3
(CHARWD R 0.500000)
(CHARHT R 0.880000)
(CHARDP R 0.120000)
(COMMENT
(GLUE O 0 R 0.250000 R 0.0 R 0.250000)
(GLUE O 1 R 0.250000 R 0.0 R 0.250000)
(GLUE O 2 R 0.250000 R 0.0 R 0.250000)
(GLUE O 3 R 0.500000 R 0.0 R 0.250000)
(GLUE O 4 R 0.250000 R 0.0 R 0.250000)
(GLUE O 5 R 0.250000 R 0.0 R 0.250000)
)
)
(TYPE O 4
(CHARWD R 0.500000)
(CHARHT R 0.880000)
(CHARDP R 0.120000)
(COMMENT
(GLUE O 0 R 0.500000 R 0.0 R 0.0)
(GLUE O 1 R 0.500000 R 0.0 R 0.0)
(GLUE O 3 R 0.750000 R 0.0 R 0.250000)
(GLUE O 5 R 0.500000 R 0.0 R 0.0)
)
)
(TYPE O 5
(CHARWD R 1.000000)
(CHARHT R 0.880000)
(CHARDP R 0.120000)
(COMMENT
(GLUE O 1 R 0.500000 R 0.0 R 0.500000)
(GLUE O 3 R 0.250000 R 0.0 R 0.250000)
(KRN O 5 R 0.0)
)
)
upschr-v.pl
(COMMENT THIS IS A KANJI FORMAT FILE)
(DIRECTION TATE)
(FAMILY UPSCH KANJI)
(FACE F MRR)
(CODINGSCHEME TEX KANJI TEXT)
(DESIGNSIZE R 10.0)
(COMMENT DESIGNSIZE IS IN POINTS)
(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)
(CHECKSUM O 0)
(FONTDIMEN
(SLANT R 0.0)
(SPACE R 0.0)
(STRETCH R 0.100000)
(SHRINK R 0.0)
(XHEIGHT R 1.000000)
(QUAD R 1.000000)
(EXTRASPACE R 0.250000)
(EXTRASTRETCH R 0.200000)
(EXTRASHRINK R 0.125000)
)
(GLUEKERN
(LABEL O 0)
(GLUE O 1 R 0.500000 R 0.0 R 0.500000)
(GLUE O 3 R 0.250000 R 0.0 R 0.250000)
(STOP)
(LABEL O 1)
(GLUE O 3 R 0.250000 R 0.0 R 0.250000)
(STOP)
(LABEL O 2)
(GLUE O 0 R 0.500000 R 0.0 R 0.500000)
(GLUE O 1 R 0.500000 R 0.0 R 0.500000)
(GLUE O 3 R 0.250000 R 0.0 R 0.250000)
(GLUE O 5 R 0.500000 R 0.0 R 0.500000)
(STOP)
(LABEL O 3)
(GLUE O 0 R 0.250000 R 0.0 R 0.250000)
(GLUE O 1 R 0.250000 R 0.0 R 0.250000)
(GLUE O 2 R 0.250000 R 0.0 R 0.250000)
(GLUE O 3 R 0.500000 R 0.0 R 0.250000)
(GLUE O 4 R 0.250000 R 0.0 R 0.250000)
(GLUE O 5 R 0.250000 R 0.0 R 0.250000)
(STOP)
(LABEL O 4)
(GLUE O 0 R 0.500000 R 0.0 R 0.0)
(GLUE O 1 R 0.500000 R 0.0 R 0.0)
(GLUE O 3 R 0.750000 R 0.0 R 0.250000)
(GLUE O 5 R 0.500000 R 0.0 R 0.0)
(STOP)
(LABEL O 5)
(GLUE O 1 R 0.500000 R 0.0 R 0.500000)
(GLUE O 3 R 0.250000 R 0.0 R 0.250000)
(KRN O 5 R 0.0)
(STOP)
)
(CHARSINTYPE O 1
‘ “ ( 〔 [ { 〈 《 「 『
【
UFF5F U3018 U3016 U301D
U2329 U301A
)
(CHARSINTYPE O 2
、 , ’ ” ) 〕 ] } 〉 》
」 』 】
UFF60 U3019 U3017 U301F
U232A U301B U301E
)
(CHARSINTYPE O 3
・ : ;
U00B7
)
(CHARSINTYPE O 4
。 .
)
(CHARSINTYPE O 5
— ― … ‥
)
(TYPE O 0
(CHARWD R 1.000000)
(CHARHT R 0.500000)
(CHARDP R 0.500000)
(COMMENT
(GLUE O 1 R 0.500000 R 0.0 R 0.500000)
(GLUE O 3 R 0.250000 R 0.0 R 0.250000)
)
)
(TYPE O 1
(CHARWD R 0.500000)
(CHARHT R 0.500000)
(CHARDP R 0.500000)
(COMMENT
(GLUE O 3 R 0.250000 R 0.0 R 0.250000)
)
)
(TYPE O 2
(CHARWD R 0.500000)
(CHARHT R 0.500000)
(CHARDP R 0.500000)
(COMMENT
(GLUE O 0 R 0.500000 R 0.0 R 0.500000)
(GLUE O 1 R 0.500000 R 0.0 R 0.500000)
(GLUE O 3 R 0.250000 R 0.0 R 0.250000)
(GLUE O 5 R 0.500000 R 0.0 R 0.500000)
)
)
(TYPE O 3
(CHARWD R 0.500000)
(CHARHT R 0.500000)
(CHARDP R 0.500000)
(COMMENT
(GLUE O 0 R 0.250000 R 0.0 R 0.250000)
(GLUE O 1 R 0.250000 R 0.0 R 0.250000)
(GLUE O 2 R 0.250000 R 0.0 R 0.250000)
(GLUE O 3 R 0.500000 R 0.0 R 0.250000)
(GLUE O 4 R 0.250000 R 0.0 R 0.250000)
(GLUE O 5 R 0.250000 R 0.0 R 0.250000)
)
)
(TYPE O 4
(CHARWD R 0.500000)
(CHARHT R 0.500000)
(CHARDP R 0.500000)
(COMMENT
(GLUE O 0 R 0.500000 R 0.0 R 0.0)
(GLUE O 1 R 0.500000 R 0.0 R 0.0)
(GLUE O 3 R 0.750000 R 0.0 R 0.250000)
(GLUE O 5 R 0.500000 R 0.0 R 0.0)
)
)
(TYPE O 5
(CHARWD R 1.000000)
(CHARHT R 0.500000)
(CHARDP R 0.500000)
(COMMENT
(GLUE O 1 R 0.500000 R 0.0 R 0.500000)
(GLUE O 3 R 0.250000 R 0.0 R 0.250000)
(KRN O 5 R 0.0)
)
)