cht電腦資訊文書排版TeX
adm Find login register

讓 LaTeX 段落縮排縮二個中文字寬度

qtnez

joined: 2016-10-14
posted: 26
promoted:
bookmarked:
1subject: 讓 LaTeX 段落縮排縮二個中文字寬度Promote 0 Bookmark 02021-04-24quote  

段落縮排,LaTeX 的預設並沒有考慮中文的情況。先不管是否有必要縮二個中文字(像日本,
習慣上是一個中文字),但一般中文是縮二個中文字的寬度。

使用 ctex package 會自動縮二個中文字。如果使用 luatexja,又要讓它縮排二個中文字的話,
簡單的方法是取得二個中文字的寬度,再把 parindent 設成這個寬度。

\newlength{\zhind}
\settowidth{\zhind}{龍圖}
\setlength{\parindent}{\zhind}

這樣就可以了!

edited: 2
qtnez

joined: 2016-10-14
posted: 26
promoted:
bookmarked:
2subject: Promote 0 Bookmark 07 days agoquote  

要做到標點符號左右切齊的功能,要使用 ChineseJFM,這些 JFM 處理得非常仔細,比 luatec-ja 內建的許多
JFM 都要好。

\usepackage[match]{luatexja-fontspec}
\setmainjfont[BoldFont=Noto Sans CJK TC Medium,
YokoFeatures = {JFM = zh_TW/quanjiao},
AltFont={{Range="20000-"2A6DF,Font=HanaMinB}, % CJK ExtB
{Range="FF1F-"FF1F,Font=HanaMinA}, %一點明體的驚嘆號及問號過大
{Range="FF01-"FF01,Font=HanaMinA}, %用 HanaMinA 取代
{Range="3010-"3011,Font=HanaMinA}, %粗方括號
{Range="2A700-"2B73F,Font=HanaMinB}, % CJK ExtC
{Range="2B740-"2B81F,Font=HanaMinB}}]{I.MingCP}

其他 \setsansjfont 及 \setmonojfont 亦同,JFM 要使用 zh_TW/quanjiao,才會有這種效果。如果使用的是標點置在底線左
下角的字型,可使用 zh_CN 或是 ja_JP。

行尾切齊應該比較好理解,重點在於行首的標點切齊:如下圖:

如果不做特殊的調整,那麼「火光」及「這到底是……」那二行的行首,會表現出縮格多於二個中文字寬度的視覺效果,
因為中文的左單引號畢竟是佔一個全形中文字的寬度。

[註]:如果是使用 TeX Live 2021,ChineseJFM 已經內建。

edited: 11

cht電腦資訊文書排版TeX
adm Find login register
views:194