xCJK 快速上手

之前就提到,新版的 LaTeX CJK 套件中已經包含了 xCJK 這個可以和 XeLaTeX 配合的套件,這邊先記錄一下使用方法。

安裝

安裝好像滿簡單的,我在 Debian 下打 apt-get install latex-cjk-xcjk 然後一下子就裝好了。Windows 底下安裝最新的 Tex Live 應該就 OK 了。至於 FreeBSD,我相信會用 FreeBSD 的人,裝這個小東西一點問題也沒有。

使用

使用上,只要用 \setCJKmainfont 來設定中文字型即可,其它的 xCJK 會幫你搞定。

\documentclass[a4paper]{article}

\usepackage{xCJK}

\setCJKmainfont{AR PL UMing TW}

\begin{document}
\begin{CJK*}{UTF8}{}

中文測試

\end{CJK*}
\end{document}

然後執行 xelatex,馬上就會產生一份 pdf 了,當然對中文字的複製和搜尋都沒有問題。

其它功能

之前直接使用 XeLaTeX 排版中文文件會遇到一些問題,使用 xCJK 之後幾乎都解決了…

中英文字型分開設定

使用 \setCJKmainfont 只會設定中文字型,英文還是使用預設的 computer modern。想看到其它的英文字型也沒有問題,用 \setmainfont 設定即可。注意字型名稱依然只能使用英文。

\documentclass[a4paper]{article}

\usepackage{xCJK}

\setmainfont{Nimbus Roman No9 L} % 這是個比較接近 Times 的字型
\setCJKmainfont{AR PL UMing TW}

\begin{document}
\begin{CJK*}{UTF8}{}

\section{摘要}
在包含數位特效的電影或電腦動畫中,燈光設計一直是個耗時又耗力的過程。燈光設計師需要一套互動式
的工具讓他們得以即時預覽結果,但又不希望預覽與最終繪製的結果差異過大。

\section{Abstract}
In computer cinematography and animation, the process of lighting design is
both time consuming and labor intensive. Lighting artists need an interactive
tool which gives fast preview without losing too much quality compared with
the final result.

\end{CJK*}
\end{document}

結果如圖:

xcjk-example.png

底線效果

使用 CJKulem 即可看到各種底線效果,遇到換行也不會出問題。

\uline{底線}

\uuline{雙底線}

\uwave{波浪線}

結果如圖:

uline.png

粗體字

載入 xCJK 時加入 boldfont,即可要求它使用模擬的方法產生粗體:

\usepackage[boldfont]{xCJK}
\setCJKmainfont{DFPMingLight-B5} % 華康細明體

結果如圖:

bold-simulation.png

這樣的粗體並不好看,因為它是直接把字型框線加粗,而沒有考慮字體結構。最正確的粗體設定方法是使用不同的字型來配合,比如說「華康細明體」要加粗,那就應該選用「華康粗明體」這個字型才對。xCJK 當然提供了這項功能:

\usepackage{xCJK} % 不要再加 boldfont 了
\setCJKmainfont[
        BoldFont={DFPMingBold-B5}  % 粗體字使用華康粗明體
    ]{DFPMingLight-B5}             % 一般字型則使用華康細明體

這麼一來,當你在內文使用 \textbf 切換到粗體時,xCJK 會自動幫你改成華康粗明體,結果如圖:

bold-real.png

很明顯地比用模擬的粗體要好看多了。

斜體字

大部份人對斜體字有個錯誤的觀念,以為斜體字就是用個 affine transform 把正體字弄得斜斜的看起來比較醒目,其實在排版中,斜體字是分成兩種的:一種叫 italic,是介於印刷體和書寫體之間的字體,另一種叫 oblique,就只是單純把正體字弄得斜斜的自我感覺良好這樣。就以 computer modern 來當例子吧:

cm-italic.png

注意在 italic 字體中,像 A 和 q 還有原本印刷體的樣子,但 f, x, j 看起來都像是書寫體。但在 oblique 字體中,全部都是一個樣子。最正港最高級的 italic 字型其實是需要字型設計師重新調整編輯過,而不是拿 oblique 來矇混過關。

不幸的是,italic 和 oblique 翻成中文都變成了「斜體」,因此如果你需要斜體這個功能,你要先弄清楚你的要求是 italic 還是 oblique。如果是前者,你需要另外一套「介於印刷和書寫之間」的中文字型,不過我不知道目前有哪套中文字型是以這個訴求設計的,硬要選的話大概就是找行書體或鋼筆體吧?至於後者,xCJK 也提供了模擬的方式來產生斜體:

\usepackage[italicfont]{xCJK}

你需要新版的 XeTeX(0.997以上)才能使用這個功能。因為我沒有新版的 XeTeX,所以就不貼結果了,反正也不會太好看。

不管你是選擇行書草書還是模擬的方式,因為中文排版本來就沒有斜體的概念,所以建議你還是不要用斜體,若要強調某些文字,粗體就夠用了。

PDF Bookmark

不知道從什麼時候開始,中文的 PDF bookmark 也沒問題了,使用 hyperref 套件即可加入 bookmark:

\usepackage[bookmarks=true]{hyperref}

結論

現在根本懶得再用舊的方法寫中文文件了,新增字型會要人命。


rating: 0+x

Comments

Add a New Comment
or Sign in as Wikidot user
(will not be published)
- +
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License