in LaTeX ~ read.

將使用 CJK 的範本無痛轉移到 XeTeX

上一篇文章中,簡單的介紹了 XeTeX 使用中文字型的優點,但是它也不是沒有缺點的,在這篇文章中有提到,不過目前已經有套件可以彌補這些不足了,也就是這篇文章要介紹的 xeCJK。

透過 xeCJK 處理原本 CJK 的部份

簡單來說,xeCJK 就是加強版的 xCJK (相關介紹),透過這個套件,我們可以幾乎不用去更動之前用 CJK 寫的程式碼,只要在內文之前宣告好你要的字型,其餘的全部都交給它幫你搞定!

現在讓我們以台大論文範本為例,範本可以從這裡下載到,同時也有環境設定的教學。

1. 編碼問題

必須確保編輯器是使用 UTF8 without BOM 的編碼,並且在 thesis.tex 的開頭前兩行宣告這是 XeLatex 的程式以及使用 UTF8 編碼:

%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode
### 2. 修改 thesis.tex

3. 把註解拿掉以使用 bibtex

BibTeX 是用來管理參考文獻的工具,預設範本中把這個部分註解掉了,所以現在我們得把這註解拿掉:

80
81
% input your reference here
\bibliography{thesis}
接著我們可以到 thesis.bib 看我們們要引用的是哪一篇,假設我們現在要引用的文獻是「… JPEG2000 …」:

接著把紅色那部分字串複製下來,在內文中透過 \cite 引用該文章:

4. 透過 xeCJK 分開宣告中英文字型

在範本中, ntu.sty 裡面定義了行距、字體大小等性質,而裡面會用到一些定義在 ntuvars.tex 的變數,例如:學校、系級。我們可以發現其中的變數都是以 CJK 去宣告的:

63
64
65
66
67
68
69
70
71
\renewcommand{[maketitle](http://www.golatex.de/wiki/index.php?title=%5Cmaketitle)}{% {{{
\begin{CJK}{UTF8}{kai}
\CJKhorz
\begin{titlepage}
\begin{center}
\fontsize{18}{27}\selectfont
\vspace{1cm
}
\theuniversityCH\thecollageCH\theinstituteCH\
\thethesisCH
所以我們就在這之前宣告我們所需要的中英文字型,其他就交給 xeCJK 幫我們處理了:

17
18
19
20
\RequirePackage{fontspec}
\RequirePackage{xeCJK}
\setmainfont{Times New Roman
}% Default main font
\setCJKmainfont{BiauKai}% Default CJK font
### 5. Makefile 編譯!

如此一來我們就不用處理惱人的字型問題,直接編譯就可以順利的產生最後的 thesis.pdf 檔案了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
MAIN=thesis
DRAFT=draft

TEX=$(wildcard *.tex)
BIB=$(wildcard *.bib)
STY=$(wildcard *.sty)

.SUFFIXES: .tex

all: $(MAIN).pdf
draft: $(DRAFT).pdf

thesis.bib.orig: thesis.bib
sed -i ".orig" 's/^title = {([^{}])}/title = {{\1}}/' $<
sed -i ".orig" 's/^title = {LLVM(.
)}/title = {{LLVM\1}}/' $<

$(MAIN).pdf: $(TEX) $(BIB) $(STY) thesis.bib.orig
xelatex $(MAIN)
bibtex $(MAIN)
xelatex $(MAIN)
xelatex $(MAIN)
#dvips -t a4paper -f < $(MAIN).dvi > $(MAIN).ps
#ps2pdf $(MAIN).ps $@

完整的範本請自此下載

comments powered by Disqus