Last Updated: 2022-06-11
現在 TeX 生態系在中文排版需求上,已經發展出可以直接原生支援 Unicode 和 OpenType 字型的 XeTeX 引擎,可以直接編譯包含中文的 TeX 文件,而不再需要依賴 cwTeX 作為預處理器(preprocessor)將包含中文字的 TeX 文件轉換成原版 LaTeX 引擎可以編譯的格式。
但如果你因為某些原因仍然非在 Linux 下使用 cwTeX 不可,然後在安裝上遇到一些問題,以下是經嘗試後可以成功的安裝方法。
首先安裝 TeX Live,這是一個包含了 LaTeX 在內許多常用 macros 的 TeX 發行版:
# 你可以選擇安裝 texlive-most,包含絕大多數有可能用到的 LaTeX macros,但會比較花費硬碟空間
sudo pacman -S texlive-most
# 或者裝精簡一點但也堪用的 texlive-core
sudo pacman -S texlive-latexextra
cwTeX 5.1 是以 Python 3 寫成的,所以你需要安裝 Python 3。根據 cwTeX 安裝手冊,版本必須至少是 Python 3.7 或更新的版本。實測在 Python 3.10.5 下可以正常運作。
sudo pacman -S python
文章寫成時 cwTeX 給 macOS/Unix-like 系統的最新版本是 2022 年 2 月 22 日發行的 5.1 版。
進入臺灣大學的 FTP ,找到 cwTeX 5.1 的資料夾,並且下載 cwtex51-mac-20220222.zip
這個檔案,將其解壓縮:
wget http://ftp.ntu.edu.tw/cwtex/cwtex51/cwtex51-mac-20220222.zip
unzip cwtex51-mac-20220222.zip
解壓縮後應該會在同目錄下看到一個取名為 texmf-local
的資料夾,其中目錄結構如下,最重要的 cwTeX 相關執行檔在 /bin
目錄中:
texmf-local
├── bibtex
├── bin
│ ├── big5unicode.py
│ ├── cwbiblatex51b.py
│ ├── cwcjksort51b.py
│ ├── cw_encode.py
│ ├── cwfont_decode.py
│ ├── cwfont_encode.py
│ ├── cwhtml-lua.py
│ ├── cwhtml-odt.py
│ ├── cwhtml.py
│ ├── cwmkgls51b.py
│ ├── cwmkidx51b.py
│ ├── cwodt.bat
│ ├── cwpdf.py
│ ├── cwtex51b.py
│ ├── cwtex.ini
│ └── tex2xtc51b.py
├── doc
├── fonts
├── makeindex
├── tex
├── tex4ht
├── util
├── utilities
└── web2c
將 texmf-local 資料夾內的所有檔案複製到 /usr/share/texmf
:
(如果你使用的 Linux 發行版不是 Arch Linux,你可能需要確認在你的發行版中 TeX Live 存放自訂檔案的路徑 TEXMFLOCAL
為何,避免 TeX Live 更新時將其覆蓋)
sudo cp -r ./texmf-local/* /usr/share/texmf/
#設定權限
sudo chmod -R 755 /usr/share/texmf/
更新 TeX 的資料庫:
sudo mktexlsr
sudo updmap-sys
至此大概完成了,可以試著用 cwTeX 編譯包含漢字的 .ctx
檔案為原版 TeX 的 .tex
檔案:
python /usr/share/texmf/bin/cwtex51b.py -o "output.tex" "input.ctx"
然後再用 LuaTeX 把 .tex
編譯成 PDF 檔,我習慣用 latexmk
來自動處理有使用 biber
或 bibtex
引註文獻時需要反覆編譯的情況:
latexmk -pdflatex=lualatex -pdf ./output.tex
當然直接使用 LuaLaTeX 編譯也是沒問題的:
lualatex ./output.tex
在 2022 年,直接使用 XeTeX/XeLaTeX 應該會是更聰明的解決方案,它可以讓你直接使用安裝在系統中的 OpenType 字型,並且原生支援 Unicode。