天天看點

為什麼latex中的宋體和黑體與word中不一樣& 如何設定字型樣式& renewcommand和newcommand的差別

用LaTeX寫論文有好幾年的時間了,自從之前寫畢業論文,就有一個曆史遺留問題,一直沒有解決,不知道大家有沒有發現LaTeX中的宋體指令

\songti

和黑體指令

\heiti

實際上輸出的并不是正規的宋體和黑體,下面來做個對比:

為什麼latex中的宋體和黑體與word中不一樣& 如何設定字型樣式& renewcommand和newcommand的差別
為什麼latex中的宋體和黑體與word中不一樣& 如何設定字型樣式& renewcommand和newcommand的差別

如果大家看不出字型的變化,可以看逗号就知道了,我還在納悶,是latex中的逗号和word中逗号不一樣嗎?于是我問了大神這個問題,大神首先問我,是不是個英文格式下的逗号,那這肯定不是啊,後來他又檢測來這篇文章的字型,是華文宋體,而非正常宋體,這是mac字型冊的缺陷,因為編譯器會調用mac系統中的字型,而系統中的字型卻不是正規的宋體。

于是我需要安裝這個字型,有兩種方法,下面來說說方法一:

Step1: 将字型包(字型包的具體介紹參見這篇文章Package fontspec: The font “STZhongsong“ cannot be found解決辦法以及常見的導入字型格式),放在同級目錄下

為什麼latex中的宋體和黑體與word中不一樣& 如何設定字型樣式& renewcommand和newcommand的差別

Step2: 左邊檔案欄中的

SimSun.ttf

就是我的宋體檔案,然後我在導言區加上下面的代碼

\setCJKfamilyfont{zhsong}{SimSun.ttf}
\renewcommand*{\songti}{\CJKfamily{zhsong}}
           

然後這邊立馬變了,是不是

為什麼latex中的宋體和黑體與word中不一樣& 如何設定字型樣式& renewcommand和newcommand的差別

*注:

\setCJKfamilyfont

表示聲明新的CJK字型族并指定字型,在LaTeX中不允許使用

\newcommand

定義一個與現有指令重名的指令,如需修改指令定義的話,使用

\renewcommand

指令。

具體意思是,由于

\songti

是現有指令,需要修改這個指令隻能用

\renewcommand

\setCJKfamilyfont{自定義的CJKfamily名稱}{系統字型名稱}
\renewcommand{自定義系統指令名}{自定義的CJKfamily名稱}
           

具體可參見這篇文章:LaTeX中文字型設定

下面來介紹第二種更改字型的方法:

Step1: 在字型冊中導入

SimSun.ttf

檔案,具體操作參見Package fontspec: The font “STZhongsong“ cannot be found解決辦法以及常見的導入字型格式

Step2: 上一步主要是把字型導入到系統中,這樣就不需要每次都複制字型到同級目錄下啦,代碼也改為

\setCJKfamilyfont{zhsong}{SimSun}
\renewcommand*{\songti}{\CJKfamily{zhsong}}
           

更多字型指令可以參見:

latex中文字型設定

最後,說一下大神吧,大神不僅有自己的網站:

LaTeX工作室

公衆号:

為什麼latex中的宋體和黑體與word中不一樣& 如何設定字型樣式& renewcommand和newcommand的差別

還有b站:LaTeX_工作室

有很多教學視訊哦