如何在 Mac 下的 LaTeX 中使用中文字體?

Mac OS X Lion 下使用 MacTeX 套件,寫簡歷,希望能夠使用多種中文字體,比如黑體楷體這種基礎的就好。純 LaTeX 小白,我看到網上說下載 CTeX 套件等等,這是跟 MacTeX 功能相同的一個套件么。我能對 MacTeX 加一點組件然後使用中文字體么?


請使用最新的xeCJK或者LuaTeX-ja宏包,我推薦後者。

documentclass{article}

usepackage{luatexja-fontspec}

setmainjfont{SimSun}

egin{document}

中文測試。

end{document}


documentclass[11pt,a4paper]{article}

XeTeXlinebreaklocale "zh"

XeTeXlinebreakskip = 0pt plus 1pt minus 0.1pt

usepackage[top=1in,bottom=1in,left=1.25in,right=1.25in]{geometry}

usepackage{float}

usepackage{fontspec}


ewfontfamilyzhfont[BoldFont=Adobe Heiti Std]{Adobe Song Std}

ewfontfamilyzhpunctfont{Adobe Song Std}

setmainfont{Times New Roman}

usepackage{indentfirst}

usepackage{zhspacing}

zhspacing

egin{document}

.....

end{document}

這樣,中文使用 Adobe Song 字體,英文使用 Times New Roman 字體。請用 XeLaTex 進行編譯。

fc-list

fc-list ;lang=zh-cn

這兩個命令可以查看電腦上都安裝了哪些字體(中文字體)。

PS:搜索《XeTeX 和 LaTeX 中文排版之胡言亂語》


xelatex mac下中文亂碼,

兩種方法:

1)編譯不過, 提示 SIMKAI.TTF找不到, 可以按照此文 修改vim /usr/local/texlive/2014/texmf-dist/tex/latex/ctex/fontset/ctex-xecjk-winfonts.def 文件即可。

2)不修改全局的上面那個文件,當前文件使用nofonts選項,如 documentclass[a4paper,nofonts]{article}, 然後自定義類型如setCJKmainfont[BoldFont={Adobe Heiti Std},ItalicFont={Adobe Kaiti Std}]{SimSun} 再編譯即可。 // 或者 setCJKmainfont[BoldFont={SimHei},ItalicFont={KaiTi_GB2312}]{SimSun} 改成本機有的

若編譯過了,還是亂碼,記得看你tex源文件的編碼,是不是UTF-8。


提供一個比較全的模板供參考,編譯用xelatex:

documentclass[11pt,a4paper]{article}

% documentclass[11pt,a4paper]{report}

% documentclass[11pt,a4paper]{book}

defmathfamilydefault{
mdefault}

% 設置頁面

%==================================================

linespread{1} %行距

% usepackage[top=1in,bottom=1in,left=1.25in,right=1.25in]{geometry}

% headsep=2cm

% extw=16cm exth=24.2cm

%==================================================

% 使用中文xeCJK宏包

%==================================================

usepackage{fontspec,xltxtra,xunicode}

usepackage[slantfont,boldfont,CJKnumber,CJKtextspaces]{xeCJK}

%==================================================

% 其它需要使用的宏包

%==================================================

usepackage[colorlinks,linkcolor=blue,anchorcolor=red,citecolor=green,urlcolor=blue]{hyperref}

usepackage{tabularx}

usepackage{authblk} % 作者信息

usepackage{algorithm} % 演算法排版

usepackage{amsmath} % 數學符號與公式

usepackage{amsfonts} % 數學符號與字體

usepackage{graphics}

usepackage{color}

usepackage{fancyhdr} % 設置頁眉頁腳

usepackage{fancyvrb} % 抄錄環境

usepackage{float} % 管理浮動體

usepackage{geometry} % 定製頁面格式

usepackage{hyperref} % 為PDF文檔創建超鏈接

usepackage{lineno} % 生成行號

usepackage{listings} % 插入程序源代碼

usepackage{multicol} % 多欄排版

usepackage{natbib} % 管理文獻引用

usepackage{rotating} % 旋轉文字,圖形,表格

usepackage{subfigure} % 排版子圖形

usepackage{titlesec} % 改變章節標題格式

usepackage{moresize} % 更多字體大小

usepackage{anysize}

usepackage{indentfirst} % 首段縮進

usepackage{booktabs} % 使用multicolumn

usepackage{multirow} % 使用multirow

usepackage{graphicx}

usepackage{wrapfig}

usepackage{xcolor}

usepackage{titlesec} % 改變標題樣式

usepackage{enumitem}

%==================================================

% 將默認的英文目錄等改為中文,設置圖號和公式號與章節對應,縮進大小

%==================================================

% itleformat{part}[display]{centeringHuge}{ extbf{第~ hepart~部分}}{0.2cm}{ extbf}

% itleformat{chapter}[hang]{huge}{ extbf{第~ hechapter~章}}{0.2cm}{ extbf}

%
enewcommand{contentsname}{目 quad 錄}

%
enewcommand{abstractname}{摘 quad 要}

%
enewcommand{appendixname}{附 quad 錄}

%
enewcommand{ heequation}{arabic{section}.arabic{equation}} %公式號與章節對應

%
enewcommand{figurename}{
ormalsize{圖 arabic{section}.arabic{figure}}} %改figure為圖

%
enewcommand{
efname}{參考文獻}

%
enewcommand{ibname}{參考文獻}

% makeatletter

%
enewcommand{fnum@figure}[1]{ extbf{figurename~}hspace{10pt} sffamily} %圖號與章節對應

% makeatother

setlength{parindent}{2em} %設置縮進為兩個大寫M的寬度,大約為兩個漢字的寬度

%==================================================

% 設置頁眉頁腳

%==================================================


enewcommand{headrulewidth}{0.4pt}


enewcommand{footrulewidth}{0.4pt}

pagestyle{headings}

% pagestyle{fancy}

% lhead{}

% chead{}

%
head{}

% lfoot{}

% cfoot{}

%
foot{}

%==================================================

% 加入VBA代碼高亮

%==================================================

lstdefinelanguage{VBA}{morekeywords={And, As, Byte, Call, Case, Compare, CDbl, Datebase, Date, Dim, Else, ElseIf, End, Error, Exit, Explicit, False, Function, GoTo, If, IIF, Integer, Not, Nothing, Null, Object, On, Option, Or, Private, Resume, String, Single, Select, Set, Static, Sub, Then, True, To,},

sensitive=false,

morecomment=[l]Rem,

morecomment=[l]",

morestring=[b]",

emph={acFormBar, acEditMenu, acCurrent, acEntire, acMenuVer70, acSaveYes, acViewNormal, acForm, acDataErrAdded, acNewRec, acDataErrContinue, Cancel, CancelEvent, Close, CurrentDb, DefaultValue, DateValue, DAO, Description, DoCmd, DoMenuItem, Err, Error, Error$, $, Execute, FindRecord, Forms, FindFirst, IsNull, Me, MsgBox, GoToControl, GoToRecord, NewData, Nz, Maximize, Number, OpenForm, Parent, Recordset, Requery, Response, SetFocus, stDocName, stLinkCriteria, Value, vbExclamation, vbOK, vbOKCancel, vbInformation, vbYes, vbNo, vbYesNo, vbCancel, vbQuestion, vbYesNoCancel, Visible,},

emphstyle=color{blue!100!}}

%==================================================

lstset{basicstyle= tfamily,breaklines,numberstyle= iny,

keywordstyle=color{red}, stringstyle=color{green!100!},commentstyle=color{red!20!green!20!blue!20},

frame=single,

rulesepcolor=color{red!20!green!20!blue!20},numbers=left, numberstyle= iny}

%==================================================

% 設置中文字體

%==================================================

%setCJKmainfont[BoldFont=SimHei,ItalicFont=KaiTi]{SimSun}

setCJKmainfont[BoldFont={Adobe Heiti Std}, ItalicFont={Adobe Kaiti Std}]{Adobe Song Std}

%setCJKmainfont[BoldFont={STHeiti}, ItalicFont={STKaiti}]{STSong}

%setCJKsansfont{SimHei}

setCJKsansfont{Adobe Heiti Std}

%setCJKsansfont{STHeiti}

%setCJKmonofont{FangSong}

setCJKmonofont{Adobe Fangsong Std}

%setCJKmonofont{STFangsong}

%-------------------------------------------------

%setCJKfamilyfont{zhsong}{SimSun}

setCJKfamilyfont{zhsong}{Adobe Song Std}

%setCJKfamilyfont{zhsong}{STSong}

%setCJKfamilyfont{zhhei}{SimHei}

setCJKfamilyfont{zhhei}{Adobe Heiti Std}

%setCJKfamilyfont{zhhei}{STHeiti}

%setCJKfamilyfont{zhfs}{FangSong}

setCJKfamilyfont{zhfs}{Adobe FangSong Std}

%setCJKfamilyfont{zhfs}{STSong}

%setCJKfamilyfont{zhkai}{KaiTi}

setCJKfamilyfont{zhkai}{Adobe Kaiti Std}

%setCJKfamilyfont{zhkai}{STKaiti}

%-------------------------------------------------


ewcommand*{songti}{CJKfamily{zhsong}} % 宋體


ewcommand*{heiti}{CJKfamily{zhhei}} % 黑體


ewcommand*{kaishu}{CJKfamily{zhkai}} % 楷書


ewcommand*{fangsong}{CJKfamily{zhfs}} % 仿宋

% !使用如下命令:{songti 宋體} 可以臨時使用宋體(要加大括弧)

%==================================================

% 設置英文字體

%==================================================

%defaultfontfeatures{Scale=MatchLowercase} % 這個參數保證 serif、sans-serif 和 monospace 字體在小寫時大小匹配

setmainfont[Mapping=tex-text]{CMU Serif} % 使用 XeTeX 的 text-mapping 方案,正確顯示 LaTeX 樣式的雙引號(`` "")

% setmainfont[Mapping=tex-text]{Palatino Linotype}

setsansfont[Mapping=tex-text]{CMU Sans Serif}

% setsansfont[Mapping=tex-text]{DejaVu Sans YuanTi}

setmonofont{Courier New}

% setmonofont{Monaco}

% setmonofont{DejaVu Sans YuanTi}

%==================================================

% 題目,作者,日期

%==================================================

itle{}

% Style 1

% -------------------------------

author[*]{author1}

affil[*]{affil1}

author[**]{author2}

affil[**]{affil2}

% Style 2

% -------------------------------

%author{author1}

%affil{affil1}

%author{author2}

%affil{affil2}

date{}

%==================================================

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 正文

%==================================================

egin{document}

% pagenumbering{Roman} %頁碼為大寫羅馬數字

% pagenumbering{arabic} %頁碼為阿拉伯數字

maketitle


ewpage

ableofcontents


ewpage

end{document}

%==================================================

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


其實,Mac 下的TeX發展套件中,利用CJK宏包安裝中文字體的步驟與Linux發行套件Ubuntu下安裝的過程大同小異。主要的問題是如何按中文排版習慣來排版。相關的安裝文檔URL : http://lifeng.telebyte.com.cn/ 。

TeX 排版對於中文來說,主要是如何處理新新體,以及現有字型檔中沒有的字。相關的文章之前在網上發現台灣李果正先生有相關的Blog,但好象是由於提供服務的機器硬碟損壞,相關數據在網上消失了。這方面的工作對於中文教育與古籍電子化是非常重要的。但不清楚現在有沒有人做這方面的工作?

對於CJK宏包的字體安裝,主要有幾個問題對於中文沒有處理的太好,尤其是簡體中文。大約十年前,北京大字的張林波搞過一些中文LaTeX排版的模板工作。但這個工作好象在大陸沒有後續的有組織的發展。這個問題好比是買新車,新車當然好,但沒有後續的運行與維護支持。N年後還是需要重新再來!

另外,還有一個問題我非常奇怪。大學需要LaTeX之類的中文排版工作,但中文小學教育這方面就沒有人來做這樣的工作?現在小學中文識字教育方面還是處於蠟紙刻版的狀態。


MacTeX裡面編譯器用XeLaTeX就行了,記得把設置裡面的文件編碼方式設置成UTF8。


推薦閱讀:

iOS 上默認的中文字體是什麼?
微軟雅黑在某些電腦上是不是不能顯示?
OS X 下第三方字體往往不能選擇字重,而是不同字重分成獨立的字體,為什麼?
台灣的文檔有些字無法改字體怎麼辦?
華文系列字體當中的非漢字部分是華文自己設計的嗎?

TAG:macOS | 中文字體 | LaTeX |