文章目录

  • 1 LaTeX简介
  • 2 基于CTeX套装(MiKTeX编译系统)实现中文的使用
    • 2.1 CJK宏包 (PDFLaTeX)
    • 2.2 CJKutf8宏包 (PDFLaTeX)
    • 2.3 ctex宏包
      • 2.3.1 PDFLaTeX 命令
      • 2.3.2 XeLaTeX 命令
  • 3 基于TeXLive实现中文的使用
    • 3.1 CJK宏包 (PDFLaTeX)
    • 3.2 CJKutf8宏包 (PDFLaTeX)
    • 3.3 ctex宏包
  • 4 总结

1 LaTeX简介

  LaTeX 是一种基于 TeX的排版系统,是当今世界上最流行和使用最为广泛的 TeX 格式。使用 LaTeX 的主要目的是为了方便排版。学术界的论文,尤其是数学、计算机等学科论文大多是由 LaTeX 编写的,因为用它写数学公式不仅方便而且非常漂亮。
  问题来了,不是要学习 LaTeX 吗,怎么一大堆各种tex:LaTeX、CTeX、MiKTeX、TeXLive、PDFLaTeX、XeLaTex······这是大多数初学者在刚接触 LaTeX 时都会碰到的问题。本文就不过多地解释这些 “TeX” 都表示啥意思了,详细知识可以参考以下链接:http://www.ctex.org/BasicKnowledge
  在 LaTeX 中使用中文时,可以使用CJK、xeCJK、ctex等宏包,可以使用PDFLaTeXXeLaTex命令,TeX文件可以使用GBK编码,也可以使用UTF-8编码。不管使用什么方式实现中文的使用,必须保证宏包编码、编译方式、源文件编码选项三者一致。
  本文分别使用CTeX(MiKTeX)和TeX Live 2018选用不同的方式实现中文的使用。作者水平有限,具体原理等各种细节不作详细的阐述,只附上测试过的示例。

2 基于CTeX套装(MiKTeX编译系统)实现中文的使用

2.1 CJK宏包 (PDFLaTeX)

(1) CJK宏包+UTF8源文件+PDFLaTeX命令

  使用了宋体、仿宋、黑体和楷体。

例1:

%例 1:CJK+UTF8+PDFLateX
\documentclass{article}
\usepackage{CJK}
\begin{document}\begin{CJK}{UTF8}{gbsn}生活就像海洋,只有意志坚强的人才能到达彼岸。\end{CJK}\begin{CJK}{UTF8}{song}生活就像海洋,只有意志坚强的人才能到达彼岸。\end{CJK}\begin{CJK}{UTF8}{fs}生活就像海洋,只有意志坚强的人才能到达彼岸。\end{CJK}\begin{CJK}{UTF8}{hei}生活就像海洋,只有意志坚强的人才能到达彼岸。\end{CJK}\begin{CJK}{UTF8}{kai}生活就像海洋,只有意志坚强的人才能到达彼岸。\end{CJK}
\end{document}

(2) CJK宏包+GBK源文件+PDFLaTeX命令

  和例1类似,可用宋体、仿宋、黑体和楷体,宋体不能用{gbsn}。例2只演示宋体的使用,其他的类似。

例2:

%2、CJK+GBK+PDFLateX, 宋体不能用{gbsn}
\documentclass{article}
\usepackage{CJK}
\begin{document}\begin{CJK}{GBK}{song}生活就像海洋,只有意志坚强的人才能到达彼岸。\end{CJK}
\end{document}

(3) CJK*环境 (CJK宏包+GBK/UTF8源文件+PDFLaTeX命令)

  字体的使用和CJK环境一样。
  CJK与CJK*的区别:CJK环境字符之间的空格是保留的(英文习惯),CJK会忽略CJK字符之间的空格。比如回车符会被当做是空格处理,所以CJK环境在回车的地方会出现一个空格,而CJK环境则不会出现空格。
  例3 以UTF8编码为例子,也可以使用GBK编码,只需将环境命令中的UTF8换成GBK,如将\begin{CJK}{UTF8}{kai}改为\begin{CJK}{GBK}{kai}。

例3:

%3、CJK+UTF8+PDFLateX
\documentclass{article}
\usepackage{CJK}
\begin{document}\begin{CJK}{UTF8}{kai}生活就像海洋,只有意志坚强的人才能到达彼岸。\end{CJK}\begin{CJK}{UTF8}{kai}生活就像海洋,只有 意志坚强的人才能到达彼岸。\end{CJK}\begin{CJK*}{UTF8}{kai}生活就像海洋,只有 意志坚强的人才能到达彼岸。\end{CJK*}
\end{document}

2.2 CJKutf8宏包 (PDFLaTeX)

CJKutf8宏包+GBK/UTF8源文件+PDFLaTeX命令

  与CJK宏包用法和一样。参考例1、2、3.

例4:

%CJKutf8+UTF8+PDFLateX
\documentclass{article}
\usepackage{CJKutf8}
\begin{document}\begin{CJK}{UTF8}{song}生活就像海洋,只有意志坚强的人才能到达彼岸。\end{CJK}\begin{CJK}{UTF8}{fs}生活就像海洋,只有意志坚强的人才能到达彼岸。\end{CJK}\begin{CJK}{UTF8}{hei}生活就像海洋,只有意志坚强的人才能到达彼岸。\end{CJK}\begin{CJK}{UTF8}{kai}生活就像海洋,只有 意志坚强的人才能到达彼岸。\end{CJK}\begin{CJK*}{UTF8}{kai}生活就像海洋,只有 意志坚强的人才能到达彼岸。\end{CJK*}
\end{document}

2.3 ctex宏包

2.3.1 PDFLaTeX 命令

  用PDFLaTeX编译器时,PDFLaTeX会默认后面的文本为GBK编码模式,所以在UTF8编码的文件中,要在\documentclass后添加“[UTF8]”,“告诉” PDFLaTeX编译器后面的文本是UTF8编码的。而在GBK编码的文件中,可以省略“[GBK]”。
  可以在 document 环境里直接使用中文,也可以使用CJK或CJK*环境。常用的楷书、宋体、黑体、仿宋、隶书和幼圆都可以使用。

(1) ctex宏包+UTF8源文件+PDFLaTeX命令

  例5中还测试了几种常用的字体的使用方法,包括楷书、宋体、黑体、仿宋、隶书和幼圆。

例5:

%5、ctex+UTF8+PDFLateX
%PDFLateX会默认documentclass后面是GBK选项,所以,在这里必须添加UTF8选项声明,告诉PDFLateX后面是UTF8编码的文本
\documentclass[UTF8]{article}
\usepackage{ctex}
\begin{document}这是一个CTEX的utf-8编码例子,{\kaishu 这里是楷体显示},{\songti 这里是宋体显示},{\heiti 这里是黑体显示},{\fangsong 这里是仿宋显示},{\lishu 这里是隶书显示},{\youyuan 这里是幼圆显示}。\begin{CJK}{UTF8}{gbsn}生活就像海洋,只有意志坚强的人才能到达彼岸。\end{CJK}\begin{CJK}{UTF8}{song}
生活就像海洋,只有意志坚强的人才能到达彼岸。
\end{CJK}\begin{CJK}{UTF8}{fs}
生活就像海洋,只有意志坚强的人才能到达彼岸。
\end{CJK}\begin{CJK}{UTF8}{hei}
生活就像海洋,只有意志坚强的人才能到达彼岸。
\end{CJK}\begin{CJK}{UTF8}{kai}
生活就像海洋,只有 意志坚强的人才能到达
彼岸。
\end{CJK}\begin{CJK*}{UTF8}{kai}
生活就像海洋,只有 意志坚强的人才能到达
彼岸。
\end{CJK*}
\end{document}

(2) ctex宏包+GBK源文件+PDFLaTeX命令

  和例5用法类似,只是得注意文件编码。

例6:

%6、ctex+GBK+PDFLateX
%PDFLateX会默认documentclass后面是GBK选项,所以,在这里可以省略GBK选项
\documentclass[GBK]{article}%或\documentclass{article}
\usepackage{ctex}
\begin{document}这是一个CTEX的GBK编码例子,{\kaishu 这里是楷体显示},{\songti 这里是宋体显示},{\heiti 这里是黑体显示},{\fangsong 这里是仿宋显示},{\lishu 这里是隶书显示},{\youyuan 这里是幼圆显示}。
\end{document}

(3) ctexart文档类+UTF8源文件+PDFLaTeX命令

  使用ctexart文档类和直接使用ctex宏包方法类似。中文文档类还有ctexrep、ctexbook、ctexbeamer。

例7:

%7、ctexart+UTF8+PDFLaTeX
%类似的还有ctexrep、ctexbook、ctexbeamer
\documentclass[UTF8]{ctexart} % UTF8选项不能少
\begin{document}这是一个CTEX的utf-8编码例子,{\kaishu 这里是楷体显示},{\songti 这里是宋体显示},{\heiti 这里是黑体显示},{\fangsong 这里是仿宋显示} , {\lishu 这里是隶书显示},{\youyuan 这里是幼圆显示}。
\end{document}

(4) ctexart文档类+GBK源文件+PDFLaTeX命令

  使用ctexart文档类和直接使用ctex宏包方法类似。中文文档类还有ctexrep、ctexbook、ctexbeamer。

例8:

%8、ctexart+GBK+PDFLaTeX
%类似的还有ctexrep、ctexbook、ctexbeamer
\documentclass[GBK]{ctexart}%或\documentclass{ctexart}
\begin{document}这是一个CTEX的GBK编码例子,{\kaishu 这里是楷体显示},{\songti 这里是宋体显示},{\heiti 这里是黑体显示},{\fangsong 这里是仿宋显示} , {\lishu 这里是隶书显示},{\youyuan 这里是幼圆显示}。
\end{document}

2.3.2 XeLaTeX 命令

  用XeLaTeX编译器时,XeLaTeX会默认后面的文本为UTF8编码模式,所以在UTF8编码的文件里“[UTF8]”可以省略。而在GBK编码的文件里,必须在文件的第一行添加 \XeTeXinputencoding “GBK” 以声明文件编码类型。
  字体包括宋体、黑体、楷书、仿宋,与PDFLaTeX相比,少了隶书和幼圆这两种字体。另外,用XeLaTeX编译器时,不可以用CJK和CJK*环境。

(1) ctex宏包+UTF8源文件+XeLaTeX命令

  用XeLaTeX编译器时,默认后面的文本为UTF8编码模式,所以在UTF8编码文件里“[UTF8]”可以省略。

例9:

%9、ctex+UTF8+XeLaTeX(若声明了UTF8,则可以用PDFLaTeX)
%用XeLaTeX编译器时,默认后面的文本为UTF8编码模式,所以在这个tex文件里“[UTF8]”可以省略,因为这个文件正是UTF8编码的。
\documentclass[UTF8]{article}%或\documentclass{article}
\usepackage{ctex}
\begin{document}这是一个CTEX的utf-8编码例子,{\kaishu 这里是楷体显示},{\songti 这里是宋体显示},{\heiti 这里是黑体显示},{\fangsong 这里是仿宋显示}。
\end{document}

(2) ctex宏包+GBK源文件+XeLaTeX命令

  用XeLaTeX编译器时,默认后面的文本为UTF8编码模式,所以在GBK编码的文件里,必须在文件的第一行添加:\XeTeXinputencoding “GBK”

例10

%10、ctex+GBK+XeLaTeX
%xelatex编译,文件以GBK编码保存
\XeTeXinputencoding "GBK"
\documentclass[GBK]{article}%或\documentclass{article}
\usepackage{ctex}
\begin{document}这是一个CTEX的GBK编码例子,{\kaishu 这里是楷体显示},{\songti 这里是宋体显示},{\heiti 这里是黑体显示},{\fangsong 这里是仿宋显示}。
\end{document}

(3) ctexart文档类+UTF8源文件+XeLaTeX命令

  使用ctexart文档类和直接使用ctex宏包方法类似。中文文档类还有ctexrep、ctexbook、ctexbeamer。参考例9。

例11

%11、ctexart+UTF8+XeLaTeX(若声明了UTF8,则可以用PDFLaTeX)
%类似的还有ctexrep、ctexbook、ctexbeamer
\documentclass[UTF8]{ctexart}%或\documentclass{article}
\begin{document}这是一个CTEX的utf-8编码例子,{\kaishu 这里是楷体显示},{\songti 这里是宋体显示},{\heiti 这里是黑体显示},{\fangsong 这里是仿宋显示}。
\end{document}

(4) ctexart文档类+GBK源文件+XeLaTeX命令

  使用ctexart文档类和直接使用ctex宏包方法类似。中文文档类还有ctexrep、ctexbook、ctexbeamer。参考例10。

例12

%12、ctexart+GBK+XeLaTeX
%类似的还有ctexrep、ctexbook、ctexbeamer
\XeTeXinputencoding "GBK"
\documentclass[GBK]{ctexart}%或\documentclass{ctexart}
\begin{document}这是一个CTEX的GBK编码例子,{\kaishu 这里是楷体显示},{\songti 这里是宋体显示},{\heiti 这里是黑体显示},{\fangsong 这里是仿宋显示}。
\end{document}

3 基于TeXLive实现中文的使用

3.1 CJK宏包 (PDFLaTeX)

  只支持宋体和楷体。源文件用GBK编码时出错。

(1) CJK宏包+UTF8源文件+PDFLaTeX命令

例1:

%例 1:CJK+UTF8+PDFLateX
\documentclass{article}
\usepackage{CJK}
\begin{document}\begin{CJK}{UTF8}{gbsn}生活就像海洋,只有意志坚强的人才能到达彼岸。\end{CJK}\begin{CJK}{UTF8}{gkai}生活就像海洋,只有意志坚强的人才能到达彼岸。\end{CJK}
\end{document}

(2) CJK*环境(CJK宏包+UTF8源文件+PDFLaTeX命令)

  使用字体方面和CJK环境一样。CJK与CJK*的区别:CJK环境字符之间的空格是保留的(英文习惯),CJK会忽略CJK字符之间的空格。比如回车符会被当做是空格处理,所以CJK环境在回车的地方会出现一个空格,而CJK环境则不会出现空格。

例2:

%2、CJK+UTF8+PDFLateX
\documentclass{article}
\usepackage{CJK}
\begin{document}\begin{CJK*}{UTF8}{gbsn}生活就像海洋,只有意志坚强的人才能到达彼岸。\end{CJK*}\begin{CJK*}{UTF8}{gkai}生活就像海洋,只有 意志坚强的人才能到达彼岸。\end{CJK*}\begin{CJK}{UTF8}{gkai}生活就像海洋,只有 意志坚强的人才能到达彼岸。\end{CJK}
\end{document}

3.2 CJKutf8宏包 (PDFLaTeX)

CJKutf8宏包+GBK/UTF8源文件+PDFLaTeX命令

  与CJK宏包用法和一样。例4以UTF8编码为例子,也可以使用GBK编码,只需将环境命令中的UTF8换成GBK,如将\begin{CJK}{UTF8}{kai}改为\begin{CJK}{GBK}。同样地,也可以使用CJK*环境。

例3:

%CJKutf8+UTF8+PDFLateX
\documentclass{article}
\usepackage{CJKutf8}
\begin{document}\begin{CJK*}{UTF8}{gbsn}生活就像海洋,只有意志坚强的人才能到达彼岸。\end{CJK*}\begin{CJK}{UTF8}{gkai}生活就像海洋,只有意志坚强的人才能到达彼岸。\end{CJK}
\end{document}

3.3 ctex宏包

与在MiKTeX平台上的使用方法一样,见2.3。

4 总结

  综上所述,使用ctex宏包或者如ctexart的中文文档类来实现中文操作是个不错的选择。
  建议:对于LaTeX,不需要专门花时间去学。一般来说,直接在模板的基础上修改,用着用着自然就会了,网上LaTeX资源相当丰富。

Latex 中文使用方法和示例——分别基于MiKTeX(CTeX套装)、TeXLive 编译系统测试CJK、ctex 宏包,PDFLaTeX、XeLaTeX编译命令及GBK、UTF-8文件编码的使用相关推荐

  1. LaTeX中文学习教程 笔记

    视频地址: LaTeX中文学习教程(用于论文或稿件排版,15集全) 用LaTeX写期刊论文的详细教程 一.基本结构 % 导言区 \documentclass{article}%book,article ...

  2. LaTeX 中文排版

    LaTeX 中文排版宏包.文档类介绍及排版实例 LaTeX 中文排版介绍 LaTeX 中文排版宏包介绍 LaTeX 中文排版文档类介绍 LaTeX 中文排版介绍 目前使用LaTeX实现中文排版的方法主 ...

  3. ubuntu16.04配置Latex+中文字体

    Ubuntu16.04配置Latex+中文字体 Latex安装 先前安装版本的卸载 apt-get安装包的深度卸载 通过安装器"install-tl"安装的texlive卸载 通过 ...

  4. indesign排版标点挤压_我於\LaTeX 中文直排实践中所感受的排版需求

    最近,我利用主要是LaTeX 及其下的割注包之属,直排<聲律啟蒙>.现就我的实现方式与由此产生的排版需求,做一点分享. 基本的实现方式 我使用的文档类型为「ctexbook」,并直放.pd ...

  5. LaTex中多行注释方法

    解决方法: 单行注释:直接加入%即可: 多行注释:使用\usepackage{verbatim}宏包,然后在待注释的部分上加入 \begin{comment} ... \end{comment} 那么 ...

  6. TeX/LaTeX 常用宏包简介

    geometry 利用 geometry 可以很方便的设置页面的大小.由于可以自动居中排放页面,自动计算并平衡页面各部分如页眉.页脚.左右边空等的大小,因此只需给出很少的信息就能得到满意的页面.   ...

  7. Latex中宏包总结

    文章目录 基本: 字体包 样式定制 特定领域 特定需求 浮动体专题 表格专题 PDF 专题 辅助工具专题 命令定义.宏包编写专题 个人推荐 兴趣类 主要参考: https://zhuanlan.zhi ...

  8. LaTeX 常用宏包(转载)

    latex常用宏包 (2014-08-01 19:45:30) 转载▼     转载于http://blog.sina.com.cn/s/blog_628dd2bc0102uyih.html 页面与标 ...

  9. TeX/LaTeX 常用宏包

    页面与标题式样 geometry 利用 geometry 可以很方便的设置页面的大小.由于可以自动居中排放页面,自动计算并平衡页面各部分如页眉.页脚.左右边空等的大小,因此只需给出很少的信息就能得到满 ...

  10. LaTex学习(三)LaTex文档类与宏包

    文章目录 认识LaTex 保留字符 LaTex环境 导言区 文档类 宏包 常用宏包 文字.公式和符号 排版元素 图表和浮动体 修改版式 参考资料 尾言 认识LaTex LaTeX 处理一个包含文本的文 ...

最新文章

  1. 读书-算法《程序设计导引及在线实践》-简单计算题5:装箱问题
  2. dynamic programming for knapsack with repeated items algorithm demonstration
  3. MongoDB 2.6.4 主从同步
  4. RAM的一个实例,向下取整
  5. 研究死锁–第5部分:使用显式锁定
  6. 系统垃圾清理.cmd
  7. canvas笔记-canvas加载图片及放缩及加水印(两canvas同时使用)
  8. 代码质量度量标准_追求代码质量(2): 监视圈复杂度
  9. 【转】到底什么时候应该用MQ
  10. Hibernate错误记录
  11. nodejs学习笔记-1-文件系统
  12. Linux meset
  13. 用虚数i与欧拉公式来解释分数阶微积分
  14. 大数据训练营-hadoop篇-02
  15. Pega How To系列之一:如何在页面上动态显示/隐藏内容 ----by Cheney Wang
  16. 服务器端返回的状态码是什么意思
  17. android 仿ios动画效果代码,Android仿IOS上拉下拉弹性效果的实例代码
  18. 加拿大学校申请条件获关注,雅思专家有话说
  19. 有什么值得一看再看的书吗?
  20. NLP 处理文本解决emoji、空白符及特殊字符问题

热门文章

  1. 戴尔服务器找不到启动盘,解决戴尔笔记本重装系统找不到引导或硬盘启动项方法...
  2. 淘宝店铺老店标识怎么显示 怎么淘宝老店标识申请
  3. java html截图_Java实现网页截图/登录截图
  4. opencv小案例 --- 证件照背景替换
  5. 计算机的品牌和发展历程,世界著名电脑品牌苹果的发展历程
  6. 简洁好用的Geek Unіnstaller
  7. 头哥数据结构和算法答案
  8. 网络流(Network Flow)
  9. 最小和最大优先循环队列(C++)
  10. Operator ‘==‘ cannot be applied to operands of type ‘byte[]‘ and ‘string‘