LaTeX 编译中文文档

介绍

pdfLaTeX 编译引擎不原生支持 Unicode,需要借助 CJK 或 zhmCJK 宏包才能排版中文,可用的中文字体也受限;XeLaTeX 编译引擎原生支持中文,但由于默认字体是英文字体,因此 XeLaTeX 需要配置中文字体之后才能正常显示中文。

支持中文字体的宏包有 CJK、xeCJK、LuaTeXja 和 CTeX。

  • 其中 CJK 是最古老的,其对中文字体的支持比较麻烦,不推荐使用。
  • xeCJK 以及 LuaTeXja 宏包分别面向 XeTeX 和 LuaTeX 引擎,处理汉字排版细节,不是在 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

img

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}

img

可以看到,CTeX 包对 abstract 环境做了特殊处理

CTeX 预定义的中文字库:

字体选项 描述 pdfLaTeX
adobe 使用 Adobe 公司的四款中文字体 不支持
fandol 使用 Fandol 中文字体 不支持
founder 使用方正公司的中文字体 支持
hanyi 使用汉仪字库的中文字体 支持
mac 使用 macOS 系统下的字体,分为 macnew 和 macold 两种 不支持
macnew 使用 El Capitan 或之后的多字重华文字体和苹方字体 不支持
macold 使用 Yosemite 或之前的华文字体 不支持
ubuntu 使用 Ubuntu 系统下的思源宋体、思源黑体和文鼎楷体 不支持
windows 使用 Windows 系统下的中易字体和微软雅黑字体 支持,但微软雅黑需安装 zhmCJK 宏包并设置 zhmap=zhmCJK,或安装有其 Type 1 字体并设置 zhmap=false

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}

img

参考:

参见:

posted @ 2024-05-10 02:36  undefined443  阅读(1833)  评论(0)    收藏  举报