介绍

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. java实现微信登录

    前言 上一篇做了php的微信登录,所以也总结一下Java的微信授权登录并获取用户信息这个功能的开发流程. 配置 配置什么的就不多说了,详细的配置可以直接前往我上一篇查看. https://www.cn ...

  2. Java JVM——11. 执行引擎

    1.概述 执行引擎属于JVM的下层,里面包括:解释器.即时编译器.垃圾回收器. 执行引擎是Java虚拟机核心的组成部分之一."虚拟机"是一个相对于"物理机"的概 ...

  3. pysnmp 获取设备 mib

    snmpwalk 指令获取设备 mib snmpwalk -v 1 -c public ip .1 > ip.mibs pysnmp 获取设备 mib 安装环境 pip3 install pys ...

  4. 使用docker搭建ELK分式日志同步方案

    ELK作为业界最常用日志同步方案,我们今天尝试一下使用docker快速搭建一套ELK方案.ELK使用国内加速源拉取的镜像比较旧,有条件的朋友可以拉取官网的源.elasticsearch作为日志储存库( ...

  5. 开源一个常用的树目录和下拉树js组件

    我写的一个常用的树目录组件,需要jquery和font-awesome支持,对于想使用自定义图标的可以重定义 fa样式即可,或者直接更换源码的样式名称. 下载地址:https://github.com ...

  6. 使用gitea搭建源码管理【0到1架构系列】

    使用开源搭建Git源码方案,gitlab和gitea是两个不错的方案,gitlab以前简单易用,现在功能复杂且对开源并不友好,gitea一直保持功能单一易用且完全开源,个人推荐gitea. 通过容器安 ...

  7. 如何让 3D 数字孪生场景闪闪发光

    今日图扑软件功能分享:我们将探讨 HT 系统如何通过分组管理灯光.裁切体和流光,以提高场景光影效果的精准度和整体可控性. HT 中的灯光.裁切体.流光是会影响它所在区域一定范围内的其他节点的表现,如 ...

  8. Zabbix 5.0 LTS URL 健康监测

    更多细节详情看[zabbix官方文档] 需求 Zabbix 的URL健康监测功能允许你检测 Web 地址是否可用.正常工作以及响应速度.这对于监控网站的可用性和性能非常有用.例如,你可以监控公司网站. ...

  9. Docker下安装Nginx代理服务器【工作实操版】

    一.Nginx下载 使用命令拉取nginx镜像到本地,此处我们获取排名第一的是官方最新镜像,其它版本可以去DockerHub查询 docker pull nginx 二.先启动一个nginx容器用于c ...

  10. MoneyPrinterPlus全面支持本地Ollama大模型

    MoneyPrinterPlus现在支持批量混剪,一键AI生成视频,一键批量发布短视频这些功能了. 之前支持的大模型是常用的云厂商,比如OpenAI,Azure,Kimi,Qianfan,Baichu ...