作者:snailslowdx_619 | 来源:互联网 | 2023-08-15 17:29
因为疫情在家中上课,作业提交都必须使用PDF。反正时间充裕,不如趁机回顾一下LaTeX的使用。
之前一直用的是Vimtex,但是感觉还是不太方便,于是改用了Texpad。Texpad的强大之处在于它支持光速的实时预览。但是在配置Texpad支持中文的时候却踩了一万个坑,而且到现在还没有真正实现中文实时预览,明天再试试吧。
下面进入正题,怎样在LaTeX中使用中文,或者说怎样让LaTeX支持中文?
我发现了三个方法:
第一种方法:
%! Tex program = xelatex
\documentclass{article}
\usepackage[UTF8, scheme = plain]{ctex}
\begin{document}
支持 XeLaTeX 编译,可以插入中文,不影响版式。
\end{document}
这段代码的原理十分清楚,编译程序选择对中文支持较好的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的文档: 我看的时候,这个包更新于4天前,那么我们为什么不用这个活跃的包嘞~
三种方法:个人推荐第三种,也是最新的一种。前两种使用方式因为调用长久未更新的ctex包而势必被淘汰(事实上有一种调用CJK包的中文排版方案,它早就被淘汰了)。相反,掌握了XeCJK,中文排版将会如虎添翼!