回覆列表
  • 1 # 使用者9093247983713

    沒錯,問題就出在 word 的基本行距不是字號長度的 1.2 倍。——而且甚至不是一個固定值,而是與字型相關的一個量。於是在 word 中當你切換字型時,即使是外表看起來很相近的字型,都可能出現行距大變樣的情況。所以要讓 LaTeX 的行距與 word 一樣,只能根據具體字型設定去湊。

    \baselineskip 就是表示行距的 TeX 原始命令。要固定行距,直接設定 \baselineskip 原本是可以的。但是,在 LaTeX 中的字號命令生效時會同時設定行距,所以當出現任何字號變化時,你設定的 \baselineskip 就會被覆蓋掉而失效。因此正確的產生固定行距的做法是修改字號命令,如直接修改標準字號 \normalsize 的定義,修改它的行距。

    \lineskip、\baselineskip 與 \lineskiplimit 的意義,可以看我的書。簡言之,\baselineskip 是行距,即兩行基線間距離;兩行頂底之間距離小於 \lineskiplimit 時,要撐大行距,把這個頂底之間的距離加到 \lineskip 為止。

    \baselinestretch 是個展開為一個數值比例的宏,它由 \linespread 控制。\fontsize 的第一個引數是字號,第二個引數是基本行距,在 LaTeX 內部基本行距用變數 \normalbaselineskip 儲存。在字號生效時,LaTeX 會設定行距 \baselineskip = \linespread 乘以 \normalbaselineskip。就這個意思。

    ============================

    注:從概念上說,行距本來是段落的屬性,而非字型屬性。LaTeX 比較簡單,直接用字號 1.2 倍。但在許多常用字型格式的度量資訊(metrics)中,卻有一些值可以用來幫助確定該字型特殊的預設行距。例如,在 FreeType 庫中,FT_Face 的 height 域就是預設行距,這就是根據不同字型格式中的度量資訊算出來的,如果你看原始碼,就知道 PostScript Type1 字型,預設行距用的是 em 的 1.2 倍,但今天電腦上更常用的 TrueType、OpenType 則就是直接從字型中讀出相應的資料了。

  • 中秋節和大豐收的關聯?
  • 簡陽12歲少年離家13天,父親:不打你不罵你,以後的路你要自己走, 你怎麼看?