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

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资源相当丰富。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值