怎样在LaTeX中使用中文
因为疫情在家中上课,作业提交都必须使用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中使用中文的更多相关文章
- latex之在windows环境下能够在latex中使用中文
今天要把前段时间的实验用英语先记录下来,自己就想根据原来会议的模版弄一个简易的页面(英语),突然想到之前用英文模板时是不能输入中文的,于是想着怎么在latex中输入中文,折腾了许久,终于成功了,现在分 ...
- LaTex中的中文处理方法
相关代码与注释: 显示效果:
- Latex中插入C语言代码
Latex是一个文本排版的语言,能排版出各种我们想要的效果.而且用代码排版的优点是易于修改板式,因此在文本内容的排版时,Latex应用十分广泛. 当我们需要在Latex中插入代码时,就需要用到 \us ...
- paper 48: Latex中如何制作参考文献
文章写到现在,最后一步就要大功告成了!reference,let's go! 一.用Google来做Latex的bib文件 1. 打开scholar.google.com 2. 定制 Schola ...
- LaTeX中的数学公式
因为想在过年之前把论文写出来(虽然现在看来似乎痴人说梦),用word写PDE的公式简直是自己找虐,就想说自己研究一下LaTex,用起来发现这东西写格式性的文档真心甩word几个陈景润啊,出来的公式不仅 ...
- Latex中定义、定理、引理、证明 设置方法总结
Latex中定义.定理.引理.证明 设置方法总结 在LaTex中需要有关定理.公理.命题.引理.定义等时,常用如下命令 \newtheorem{定理环境名}{标题}[主计数器名] \newtheore ...
- JabRef中添加中文文献出现乱码 解决方法
JabRef中添加中文文献出现乱码 解决方法 问题描述 JaBRef是一款开源的文献管理软件,主要用来管理bibtex格式的参考文献,可以与LATEX配合使用,方便论文参考文献的使用.文献管理 ...
- Latex 环境下“中文字体”的使用
Latex 环境下“中文字体”的使用 使用CTex自带编辑器WinEdt,在该环境下如何使用中文字体呢?作为一个菜鸟,折腾了好几天,最终基本解决了这个问题.现在整理下,分享给后来者. 对于使用中文字体 ...
- LaTeX 中换段落
中文文章中,LaTeX 中换段落: 在LaTeX 中,一个回车表示一个空格,两个回车表示一个分段.
随机推荐
- Docker搭建VS Code Server ,设置访问密码随时随地写代码
今天在N1盒子上安装了 VS Code Server,简单的记录一下. 安装docker Docker一键安装脚本 $ sudo wget -qO- https://get.docker.com/ | ...
- NPM——常用命令
npm init //创建一个package.json | npm init -y //快速全部以默认的方式生成一个package.json ,-y是-yes的缩写 以下方式可按回车默认 name 项 ...
- Kivy主窗体大小的控制
1. 引入依赖模块 主窗体大小的控制,需要使用到kivy.core.window中的Window模块 from kivy.app import App from kivy.core.window im ...
- 《计算机网络》课程笔记 (Ch03-运输层)
为运行在不同主机上的应用进程之间提供逻辑通信功能. 将应用层报文切分为块,然后加上运输层首部,形成报文段,交付给网络层. 多路复用与多路分解 将网络层提供的主机到主机交付服务延伸到进程到进程交付服务. ...
- 第一次写js轮播图
仿小米首页轮播图(注意事项) 布局部分 1.用ul包裹li再包裹a的形式来装图片,建立focus类: <div class="focus"> <ul> &l ...
- MySQL select from join on where group by having order by limit 执行顺序
书写顺序:select [查询列表] from [表] [连接类型] join [表2] on [连接条件] where [筛选条件] group by [分组列表] having [分组后的筛选条件 ...
- 「MoreThanJava」计算机系统概述
「MoreThanJava」 宣扬的是 「学习,不止 CODE」,本系列 Java 基础教程是自己在结合各方面的知识之后,对 Java 基础的一个总回顾,旨在 「帮助新朋友快速高质量的学习」. 当然 ...
- MFC---编辑框控件
1.编辑框内允许多行输入,或者说是允许敲回车 编辑框属性里将multiline设置为TRUE或者将Want Return设置为TRUE 2.水平滚动条,垂直滚动条 Horizontal Scroll ...
- Rocket - debug - Example: Write Memory
https://mp.weixin.qq.com/s/on1LugO9fTFJstMes3T2Xg 介绍riscv-debug的使用实例:使用三种方法写内存. 1. Using System Bus ...
- Rocket - decode - 解码单个信号
https://mp.weixin.qq.com/s/0D_NaeBEZX5LBQRdCz2seQ 介绍解码单个信号逻辑的实现. 1. 单个信号 每个指令对应了一组信号,每个信号对应 ...