介绍

LaTeX 原生不支持中文。为了添加中文的功能,我们需要引入宏包。XeLaTeX 原生支持中文。不过由于默认使用的字体是英文字体,我们需要设置中文字体之后才能用。不过由于一些原因,在使用 LaTeX 书写中文文档的时候最好还是使用 XeLaTeX 引擎搭配 ctex 文档类或者 ctex 宏包。

支持中文字体的宏包有 CJKxeCJKctex

  • 其中 CJK 是最古老的,其对中文字体的支持比较麻烦,不推荐使用。
  • xeCJK 以及 luatexja 宏包在 CJK 基础上封装了对汉字排版细节的处理功能。
  • ctex 宏包和文档类进一步封装了 CJKxeCJKluatexja 等宏包,使得用户在排版中文时不再考虑排版引擎等细节。

所以目前来说书写中文 LaTeX 文档的最优解决方案是使用 ctex 文档类或者 ctex 宏包。

使用 ctex 文档类

如果你要撰写一篇纯中文的文档,那么你可以直接使用 ctex 文档类:

\documentclass[fontset=founder]{ctexart}

使用 ctex 宏包或者 xeCJK 宏包

如果你需要使用特定的文档类而不能使用 ctex 文档类,但又要在文档中插入中文,那么你可以使用 ctex 宏包或者 xeCJK 宏包:

\usepackage[fontset=founder]{ctex}
\usepackage{xeCJK}

xeCJK 对中文的支持更朴素一点,也就是它除了支持你插入中文以外不会改变文档其他地方。而 ctex 则会将文档类中的一些英文环境也翻译成中文。相对来说更推荐使用 ctex

使用 xeCJK:

\documentclass{article}
\usepackage{fontspec} % 加载 fontspec 宏包
\usepackage{xeCJK} % 加载 xeCJK 宏包 \setmainfont{Times New Roman} % 设置英文字体
\setCJKmainfont{SimSun} % 设置中文字体 \begin{document}
这是中文文本。This is English text.
\end{document}

使用 ctex:

\documentclass{article}
\usepackage[fontset=founder]{ctex} \setmainfont{Times New Roman} % 设置英文字体
\setCJKmainfont{SimSun} % 设置中文字体 \begin{document}
这是中文文本。This is English text.
\end{document}

在 XeLaTeX 中直接使用中文

XeLaTeX 引擎原生支持 Unicode 字符,因此我们实际上可以直接使用中文书写 LaTeX 文档。不过前提是设置一下中文字体,因为虽然 XeLaTeX 引擎原生支持中文字符,但是其使用的默认字体是英文字体,不包括中文字符。

\documentclass{article}

\usepackage{fontspec} % 使用 fontspec 包配置字体
\setmainfont{SimSun} % 设置宋体为主要字体 \begin{document}
你好,\LaTeX
\end{document}

附录

ctex 预定义的中文字库:

字体选项 描述 支持pdfLATEX
adobe 使用 Adobe 公司的四款中文字体 不支持
fandol 使用 Fandol 中文字体 不支持
founder 使用方正公司的中文字体 支持
mac 使用 macOS 系统下的字体,分为 macnewmacold 两种 不支持
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}

参考:

LaTeX 编译中文文档的更多相关文章

  1. [问题解决]LaTex 进行中文文档操作

    第一步,在\documentclass后输入 \usepackage{fontspec, xunicode, xltxtra} \usepackage{xeCJK}%中文字体 \setCJKmainf ...

  2. Phoenix综述(史上最全Phoenix中文文档)

    个人主页:http://www.linbingdong.com 简书地址:http://www.jianshu.com/users/6cb45a00b49c/latest_articles 网上关于P ...

  3. ReactNative官方中文文档0.21

    整理了一份ReactNative0.21中文文档,提供给需要的reactnative爱好者.ReactNative0.21中文文档.chm  百度盘下载:ReactNative0.21中文文档 来源: ...

  4. Spring中文文档

    前一段时间翻译了Jetty的一部分文档,感觉对阅读英文没有大的提高(*^-^*),毕竟Jetty的受众面还是比较小的,而且翻译过程中发现Jetty的文档写的不是很好,所以呢翻译的兴趣慢慢就不大了,只能 ...

  5. ORCHARD中文文档(翻译)

    众所周知,Orchard是.net领域最好的开源CMS之一,他使用了微软最先进的技术,有一群先进理念的支持者,但是,所有的事情在国内总得加个但是,Orchard也不例外,中文资料相对比较少,官网提供的 ...

  6. 【Chromium中文文档】Profile架构(看看谷歌家的重构)

    进程模型 转载请注明出处:https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh//General_Architecture/Profile_ ...

  7. npm的package.json字段含义中文文档

    简介 本文档有所有package.json中必要的配置.它必须是真正的json,而不是js对象. 本文档中描述的很多行为都受npm-config(7)的影响. 默认值 npm会根据包内容设置一些默认值 ...

  8. Apache Storm 1.1.0 中文文档 | ApacheCN

    前言 Apache Storm 是一个免费的,开源的,分布式的实时计算系统. 官方文档: http://storm.apache.org 中文文档: http://storm.apachecn.org ...

  9. 【scikit-learn 0.19 中文文档 】安装 scikit-learn | ApacheCN

    中文文档: http://sklearn.apachecn.org/cn/0.19.0/tutorial/basic/tutorial.html 英文文档: http://sklearn.apache ...

  10. Keras官方中文文档:Keras安装和配置指南(Windows)

    这里需要说明一下,笔者不建议在Windows环境下进行深度学习的研究,一方面是因为Windows所对应的框架搭建的依赖过多,社区设定不完全:另一方面,Linux系统下对显卡支持.内存释放以及存储空间调 ...

随机推荐

  1. 两个防火墙的IPsec

    首先要保证双面都能通信到对面! 拓扑图: P1 没有要求默认就行 P2 没有要求默认就行 对流体 对流体细节问题 预共享密钥要一致 IPsec 创建隧道 添加路由 Ping对方激活ipsec Ping ...

  2. Oracle 递归拼接字段

    效果 sql SELECT LISTAGG(T.NAME, ' / ') WITHIN GROUP(ORDER BY LEVEL DESC) AS RESULT FROM S_WORK_RESOURS ...

  3. WPF单行TextBox自动滚动至末尾

    根据光标位置自动滚动 textBox.CaretIndex = textBox.SelectionStart; var rect = textBox.GetRectFromCharacterIndex ...

  4. my-http-server 静态服务器源码学习实现缓存及压缩

    目录 一.准备工作及流程说明 二.配置命令行 三.设置入口文件和渲染模板 四.my-http-server源码 一.准备工作及流程说明 一看这标题,大家可能一下子没有反应过来,到底是要干什么?那么就先 ...

  5. [oeasy]python0084_扩展BCD_EBCDIC_ibm的发家史

    编码进化 回忆上次内容 上次 回顾了 数字 进入二进制世界的 过程 采用的编码 是 BCD Binary Coded Decimal 也叫8421码 十进制数的 二进制形态 数字的 输出形式 辉光管 ...

  6. oeasy教您玩转vim - 27 - 文件类型

    ​ 文件类型 回忆上节课内容 上次了解了缩进的各种方式 正常模式下用 << 缩进 插入模式下用 tab 缩进 显示缩进情况 :set listchars=eol:$,tab:>-,s ...

  7. oeasy教您玩转vim - 77 - # 保留环境viminfo

    ​ 保留环境viminfo 回忆组合键映射的细节 上次我们定义了session :mks 还可以加载会话session :source Session.vim vim -S Session.vim 基 ...

  8. 免费使用TasteWP一键搭建线上临时WordPress网站

    虽然用宝塔面板或者1Panel面板可以非常快速的搭建一个WordPress网站,但是有时候只想测试下我设计的页面或者开发的主题和插件,又得买服务器,绑定域名,安装程序,搭建起来也过于浪费时间了:再或者 ...

  9. js实现动态表格的添加

    <!DOCTYPE html> <html lang="en"> <head> <title>Table_Simple CSS fo ...

  10. ComfyUI插件:ComfyUI layer style 节点(二)

    前言: 学习ComfyUI是一场持久战,而ComfyUI layer style 是一组专为图片设计制作且集成了Photoshop功能的强大节点.该节点几乎将PhotoShop的全部功能迁移到Comf ...