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資源相當豐富。

發佈了43 篇原創文章 · 獲贊 20 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章