因为疫情在家中上课,作业提交都必须使用PDF。反正时间充裕,不如趁机回顾一下LaTeX的使用。

  之前一直用的是Vimtex,但是感觉还是不太方便,于是改用了Texpad。Texpad的强大之处在于它支持光速的实时预览。但是在配置Texpad支持中文的时候却踩了一万个坑,而且到现在还没有真正实现中文实时预览,明天再试试吧。

  下面进入正题,怎样在LaTeX中使用中文,或者说怎样让LaTeX支持中文?

  我发现了三个方法:


  第一种方法:

%! Tex program = xelatex
\documentclass{article}
\usepackage[UTF8, scheme = plain]{ctex}
\begin{document}
支持 XeLaTeX 编译,可以插入中文,不影响版式。
\end{document}

  这段代码的原理十分清楚,编译程序选择对中文支持较好的xelatex,具体文档可以看这里https://www.overleaf.com/learn/latex/XeLaTeX,简单的理解下,XeLaTeX是这家公司:overleaf旗下的一款用UTF-8码编码的tex引擎,而且支持更多更多的字体。这也是为什么他对中文支持更好而对比之下pdfLaTeX却经常因为字体报错的原因。接下来呢?我们使用一个包,这个包叫做ctex,包中有各种的排版样式,中文字体设置等等等等。ctex具体的使用方法还是参见文档。那么,有了合适的引擎-xelatex,合适的排版规范-ctex,支持中文不在话下。


  第二种方法:  

%! Tex program = xelatex

\documentclass[UTF8]{ctexart}
\begin{document}
这是一个CTEX的utf-8编码例子,{\kaishu 这里是楷体显示},{\songti 这里是宋体显示},{\heiti 这里是黑体显示},{\fangsong 这里是仿宋显示}。
\end{document}

  这段代码过同样是调用了ctex包,在设置documentclass的时候,我们其实已经使用了ctex包。下面的{\songti ooxx}...等等,不难理解是 ctex包中,ctexart文档类型的特性!这样字体是不是也变化万千了。


  第三种方法:

%! Tex program = xelatex

\documentclass{article}
\usepackage{xeCJK}
\setCJKmainfont{SimSun}
\begin{document}
中文 \LaTeX 示例。
\end{document}

  这段代码是XeCJK的文档中的。这里要解释一下CJK:即Chinese,Japanese,Korean。那么我们可以想见,XeCJK是和ctex属于一个档次的!那么我们为什么要使用XeCJK包,而不再使用ctex包呢?学校的readme科普了我一下:CTeX 套装最早是由中科院 Leo Wu(吴凌云)研究员开发、维护和发布的 TeX 发行版,它是应当时中文配置困难的背景(CCT、CJK 等)而诞生的,而现在的中文支持技术(xeCJK等)配置已非常简单;CTeX 套装自 2012 年 3 月 22 日发行 2.9.2.164 版本后,至今未更新,已不能适应当前 TeX 中文技术的发展,引用 CTeX 套装的开发之一刘海洋的话:CTeX 已经完成了它的历史使命。欧克,那么我们也应该识趣一点,以后不要再使用CTeX这个包了,拥抱XeCJK这个包。

  XeCJK的文档:https://www.ctan.org/pkg/xecjk  我看的时候,这个包更新于4天前,那么我们为什么不用这个活跃的包嘞~

  三种方法:个人推荐第三种,也是最新的一种。前两种使用方式因为调用长久未更新的ctex包而势必被淘汰(事实上有一种调用CJK包的中文排版方案,它早就被淘汰了)。相反,掌握了XeCJK,中文排版将会如虎添翼!  

怎样在LaTeX中使用中文的更多相关文章

  1. latex之在windows环境下能够在latex中使用中文

    今天要把前段时间的实验用英语先记录下来,自己就想根据原来会议的模版弄一个简易的页面(英语),突然想到之前用英文模板时是不能输入中文的,于是想着怎么在latex中输入中文,折腾了许久,终于成功了,现在分 ...

  2. LaTex中的中文处理方法

    相关代码与注释: 显示效果:

  3. Latex中插入C语言代码

    Latex是一个文本排版的语言,能排版出各种我们想要的效果.而且用代码排版的优点是易于修改板式,因此在文本内容的排版时,Latex应用十分广泛. 当我们需要在Latex中插入代码时,就需要用到 \us ...

  4. paper 48: Latex中如何制作参考文献

    文章写到现在,最后一步就要大功告成了!reference,let's go! 一.用Google来做Latex的bib文件 1. 打开scholar.google.com 2. 定制   Schola ...

  5. LaTeX中的数学公式

    因为想在过年之前把论文写出来(虽然现在看来似乎痴人说梦),用word写PDE的公式简直是自己找虐,就想说自己研究一下LaTex,用起来发现这东西写格式性的文档真心甩word几个陈景润啊,出来的公式不仅 ...

  6. Latex中定义、定理、引理、证明 设置方法总结

    Latex中定义.定理.引理.证明 设置方法总结 在LaTex中需要有关定理.公理.命题.引理.定义等时,常用如下命令 \newtheorem{定理环境名}{标题}[主计数器名] \newtheore ...

  7. JabRef中添加中文文献出现乱码 解决方法

    JabRef中添加中文文献出现乱码 解决方法     问题描述 JaBRef是一款开源的文献管理软件,主要用来管理bibtex格式的参考文献,可以与LATEX配合使用,方便论文参考文献的使用.文献管理 ...

  8. Latex 环境下“中文字体”的使用

    Latex 环境下“中文字体”的使用 使用CTex自带编辑器WinEdt,在该环境下如何使用中文字体呢?作为一个菜鸟,折腾了好几天,最终基本解决了这个问题.现在整理下,分享给后来者. 对于使用中文字体 ...

  9. LaTeX 中换段落

    中文文章中,LaTeX 中换段落: 在LaTeX 中,一个回车表示一个空格,两个回车表示一个分段.

随机推荐

  1. Linux上,最常用的一批命令解析【10年精选】

    原文链接:https://mp.weixin.qq.com/s/QkqHexs_kOgy_5OwbwyFww 建议点击原文链接查看 不同平台linux客户端连接工具分享: windos终端神器:SSH ...

  2. Linux赋权chmod

    chmod -R 777 文件名/ 给文件可读.可修改.可执行权限

  3. 如何在Teamcenter中使用PMI?

    1 .什么是PMI 在设计制造领域,PMI指的是产品制造信息(Productand Manufacturing Information),其目的在于在三维环境下,将制造信息从设计部门传递到制造部门.其 ...

  4. Xftp远程连接出现“无法显示文件夹”的问题补充

    网上有很多朋友出现相同的问题,各位热心网友都给出了自己的解决方案,其中大多数网友给出的解决方案都是:将Xftp更换成“被动连接模式”.但是很不幸的是,本人通过这种方式并没有得到有效的解决,网上的各大方 ...

  5. 项目工程化之git提交规范以及 CHANGELOG生成

    事先声明,本文是参考了其他大神的博客之后自己尝试的记录,具体可以参考如下 链接 先说说git 提交规范把,这里基本都是这个工具 cz-customizable 1,安装 npm install cz- ...

  6. 用Linux感觉低效吗?来看看这几个技巧!

      Linux已经成为目前最火的操作系统之一,尽管现在的Linux用户很多,但很多使用Linux的同学发现,他们在Linux下的工作效率并不高,那么这是为什么呢?其实使用Linux也可以很舒适,通过一 ...

  7. 50个SQL语句(MySQL版) 问题十四

    --------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 tea ...

  8. Rocket - tilelink - Delayer

    https://mp.weixin.qq.com/s/pc8f_DOJ7w8k8BeM9gPzVw   简单介绍Delayer的实现.   1. 基本介绍   以一定的概率延迟消息的传递.   类参数 ...

  9. jchdl - RTL实例 - MOS6502 SoC

    https://mp.weixin.qq.com/s/H2UBmZa9fpM6_FM2_MucTQ   实现一个SoC作为顶层模块,包含Cpu.Mem两个子模块,并驱动运行.   参考链接 https ...

  10. Python编程思想(3):数字及其相关运算

    Python 提供了三种数值类型:int(整型),float(浮点型)和complex(复数). int:通常被称为整型或者整数,如200.299.10都属于整型: float:浮点数包含整数和小数部 ...