以 LaTeX CJK UTF-8 撰寫論文

由於一些不得已的因素,所以我的碩士論文是用中文寫的,而受到 yhsung 還有小豆的大力推薦下,我也決定用 LaTeX 來寫碩士論文。雖然我早在八月時分就畢業了,但是因為許多雜務還有偷懶的因素下,這篇會拖到現在才寫也是情非得以的(繼續找藉口)。而這篇文章就當作個紀念,也把一些之前的東西留起來,雖然以後大概也不會寫論文了 XD

我的環境:FreeBSD 7-BETA2,使用 UTF-8 編碼

  1. 安裝 ports 下的 print/latex-cjk:
    由於我想要用 UTF-8 來撰寫,所以記得 make config 一下把 UTF8ARPHIC 這個選項打開,加入之後會用到的字型。
  2. 修改 /usr/local/share/texmf/tex/latex/CJK/UTF8:
    因為我們需要把 chapter 1 換成「第一章」這樣的字眼,所以我們之後會需要 KOMA-script 的幫忙,你可以按照你的格式進行修改,我這邊是這樣改的。

    \newcommand\prechaptername{第}
    \newcommand\postchaptername{章}
    \renewcommand\chapterformat{ \prechaptername\CJKnumber{ \value{chapter} }\postchaptername~~ }

    之後你只需要告訴 LaTeX 我要使用 KOMA-script,他就會幫你做的好好的。

    \documentclass{scrreprt}
    \usepackage{CJKutf8}
    \CJKcaption{zh-Hant}

  3. 修改 Table of Content 的編號:
    上面那個步驟並不會影響 Table Of Content 的章節號碼,他還是會將 chapter 標成 1. 而不是我的想要的「第一章」,這個時候我是使用 titlesec 和 titletoc 這兩個 package,接著你就可以自己來啦,我這邊是這樣寫的。

    % 換索引的 title
    \titlecontents{chapter}
    [0em]
    {}
    {第\CJKnumber{\thecontentslabel}章~~}
    {}{\titlerule*{.}\contentspage}
    \titlecontents{section}
    [4em]
    {}
    {\contentslabel{2em}}
    {}{\titlerule*{.} \contentspage}
    \titlecontents{subsection}
    [8em]
    {}
    {\contentslabel{3em}}
    {}{\titlerule*{.} \contentspage}

  4. 邊界設定:
    我是以交大的規定來做設定,在 preamble 加上這一行就好

    \usepackage[ top=2.5cm,bottom=2.5cm,left=3cm,right=2cm ]{ geometry }

  5. 加入程式碼:
    當然你可以用 \verb 直接丟進去,不過我是用 listings 這個 package ,再使用 \textsf 將字體換成 san-serif 會漂亮一點點。而在搭配 CJK 的時候要特別注意,要記得設定 extendedchars=false,才不會有奇怪的問題。

    目前我的設定是這樣

    \lstset{ %
    language=C++,
    basicstyle=\footnotesize,
    showstringspaces=false,
    numbers=left,
    numberstyle=\footnotesize,
    showspaces=false,
    showtabs=false,
    extendedchars=false,
    }

其他關於 bibtex 還有 ps2eps 等東西我就懶惰寫了,我想我還有很多要學,每次遇到問題的時候也必須好好的看 manual,也好好讀 newsgroup,也許有一天我還會繼續讀 「大家來學 LaTeX」。

btw, 現在 pdflatex 雖然可以正確搜尋中文字,但是中間的英文又找不到了 XD