介绍
pdfLaTeX 编译引擎不支持中文,而 XeLaTeX 编译引擎原生支持中文,但由于默认字体是英文字体,因此 XeLaTeX 需要配置中文字体之后才能正常显示中文。
支持中文字体的宏包有 CJK、xeCJK、LuaTeXja 和 CTeX。
其中 CJK 是最古老的,其对中文字体的支持比较麻烦,不推荐使用。
xeCJK 以及 LuaTeXja 宏包在 CJK 的基础上封装了对汉字排版细节的处理功能。
CTeX 宏包和文档类进一步封装了 CJK、xeCJK、LuaTeXja 等宏包,使得用户在排版中文时不需要考虑排版引擎等细节。
关于在 Overleaf 中加载自定义中文字体的方式,参见博客:Overleaf 加载自定义字体
xeCJK 宏包(推荐)
很多情况下,我们希望利用某些英文 LaTeX 模板撰写中文文章,这时候就不能使用 CTeX 文档类了。这种情况下,可以通过引入 CTeX 宏包或者 xeCJK 宏包来支持中文。
xeCJK 对中文的支持更朴素一点,也就是说它除了支持你插入中文以外不会改变文档其他地方。而 CTeX 则会将文档类中的一些英文环境也翻译成中文。
\documentclass{article}
\usepackage{xeCJK} % 加载 xeCJK 宏包
\setCJKmainfont{FZShuSong-Z01} % 设置默认中文字体(宋体)
\setCJKsansfont{FZHei-B01} % 设置中文无衬线字体(黑体)
\newCJKfontfamily\kaiti{FZKai-Z03} % 定义楷体字体命令
\begin{document}
\begin{abstract}
\kaiti 这里是摘要内容。
\end{abstract}
\section{引言}
你好,\LaTeX
\end{document}
latexmk -xelatex main.tex
xeCJK 只对文档中的中文有影响,因此非常适合用于英文文献翻译/英文模板套用
参考:xeCJK 宏包
CTeX 宏包
\documentclass{article}
\usepackage[fontset=founder]{ctex} % 加载 CTeX 宏包,使用方正字体
\newCJKfontfamily\kaiti{FZKai-Z03} % 定义楷体字体命令
\begin{document}
\begin{abstract}
\kaiti 这里是摘要内容。
\end{abstract}
\section{引言}
你好,\LaTeX!
\end{document}
可以看到,CTeX 包对 abstract 环境做了特殊处理
CTeX 预定义的中文字库:
字体选项
描述
支持 pdfLaTeX
adobe
使用 Adobe 公司的四款中文字体
不支持
fandol
使用 Fandol 中文字体
不支持
founder
使用方正公司的中文字体
支持
mac
使用 macOS 系统下的字体,分为 macnew 和 macold 两种
不支持
macnew
使用 El Capitan 或之后的多字重华文字体和苹方字体
支持
macold
使用 Yosemite 或之前的华文字体
支持
ubuntu
使用 Ubuntu 系统下的思源宋体、思源黑体和文鼎楷体
不支持
windows
使用 Windows 系统下的中易字体和微软雅黑字体
特定条件下支持(见描述)
CTeX 中定义的字体命令:
\songti:宋体,CJK 等价命令 \CJKfamily{zhsong}。
\heiti:黑体,CJK 等价命令 \CJKfamily{zhhei}。
\fangsong:仿宋,CJK 等价命令\CJKfamily{zhfs}。
\kaishu:楷书,CJK 等价命令 \CJKfamily{zhkai}。
CTeX 文档类
如果你要撰写一篇纯中文的文档,那么可以直接使用 CTeX 文档类:
\documentclass[fontset=founder]{ctexart}
参考:CTeX 宏集手册
在 XeLaTeX 中直接使用中文
XeLaTeX 引擎原生支持 Unicode 字符,因此我们实际上可以直接使用中文书写 LaTeX 文档。不过前提是设置一下中文字体,因为虽然 XeLaTeX 引擎原生支持中文字符,但是默认字体是英文字体,不包括中文字符。
\documentclass{article}
\usepackage{fontspec} % 使用 fontspec 包配置字体
\setmainfont{FZShuSong-Z01} % 设置宋体为主要字体
\begin{document}
\begin{abstract}
这里是摘要内容。
\end{abstract}
\section{引言}
你好,\LaTeX!
\end{document}
参考:
中文宏包 CJK、xeCJK、luatexja、ctex 的区别和联系以及 UTF-8 编码的定义和在编译中的重要性 | CSDN
LaTeX 排版中文方案 | 知乎
参见:
Chinese | Overleaf
Which OTF or TTF fonts are supported via fontspec? | Overleaf