LaTex中文字體加粗的問題

1. 字體加粗原理。windows

打開c/windows/fonts目錄,以圖標形式查看,咱們能夠發現有的圖標是一張紙的樣子,有的圖標是幾張紙疊着的樣子。雙擊幾張紙樣子的圖標,好比Arial,發現裏面有不少個文件,有的文件名帶黑體,說明對於Arial,字體文件單獨區分了常規體和粗體。字體

我瀏覽了一下,發現英文大多數都單獨定義了粗體,斜體,可是中文字體只有不多的會單獨定義,只有雅黑和等線。spa

那麼沒有定義的字體,在加粗時,實際上是軟件作了簡單地描邊,效果確定沒有單獨定義的好。code

2. LaTex字體概念class

  • LaTex字體有三個維度:

font family 字體族:分爲rm羅馬,sf無襯線,tt打字機三種。默認是rm。原理

(這個其實不多)軟件

font shape 形狀:如直立,傾斜。command

font series 加粗方法

  • 以上很難知足對多種字體的選擇須要,尤爲是針對中文,咱們的作法是分兩步,一是選三種較經常使用的字體,設爲上面的三種字體族:

        \setCJKmainfont{SimSun} %對應rm羅馬
        \setCJKsansfont{SimHei}%對應sf無襯線
        \setCJKmonofont{FangSong}%對應tt打字機im

這樣就可使用rmfamily, sffamily這樣已有的命令來指定字體;

二是本身設定新的字體族:

\setCJKfamilyfont{yh}{Microsoft YaHei}

而後要自定義命令:
\newcommand{\yh}{\CJKfamily{yh}}

(英文字體的設定方法略)

2. LaTex加粗命令

textbf和bfseries是同樣的加粗命令,只是使用方式不一樣。

對於單獨定義了粗體的字體,這個命令不管對中文仍是英文都是有效的。

對於沒有單獨定義粗體的字體,咱們只說中文:

  • 若是沒有使用setCJKmainfont或setCJKfamilyfont,那麼對默認字體(不使用\songti這些命令)使用加粗命令時,獲得的是黑體,由於默認的中文字體族是rm,其正常字體是宋體,粗體是黑體。其實並非咱們想要的加粗效果,由於這個已經改變字體了。
  • 若是使用setCJKmainfont,能夠加上AutoFakeBold這個參數,來實現加粗效果,不然是沒有加粗效果的:

\setCJKmainfont{SimSun}[AutoFakeBold,ItalicFont=KaiTi]

還有一種方式,能夠直接指定加粗的字體,就是設置BoldFont=,可是我並無遇到能夠應用的場合。

相關文章
相關標籤/搜索