Skip to content

Instantly share code, notes, and snippets.

@bobby1030
Created June 11, 2022 13:35
Show Gist options
  • Save bobby1030/2d35ab6bf4ce24003b601691df27b120 to your computer and use it in GitHub Desktop.
Save bobby1030/2d35ab6bf4ce24003b601691df27b120 to your computer and use it in GitHub Desktop.
在 Arch Linux 上安裝 cwTeX 5.1

在 Arch Linux 上安裝 cwTeX 5.1

Last Updated: 2022-06-11

現在 TeX 生態系在中文排版需求上,已經發展出可以直接原生支援 Unicode 和 OpenType 字型的 XeTeX 引擎,可以直接編譯包含中文的 TeX 文件,而不再需要依賴 cwTeX 作為預處理器(preprocessor)將包含中文字的 TeX 文件轉換成原版 LaTeX 引擎可以編譯的格式。

但如果你因為某些原因仍然非在 Linux 下使用 cwTeX 不可,然後在安裝上遇到一些問題,以下是經嘗試後可以成功的安裝方法。

準備環境

安裝 Tex Live

首先安裝 TeX Live,這是一個包含了 LaTeX 在內許多常用 macros 的 TeX 發行版:

# 你可以選擇安裝 texlive-most,包含絕大多數有可能用到的 LaTeX macros,但會比較花費硬碟空間
sudo pacman -S texlive-most

# 或者裝精簡一點但也堪用的 texlive-core
sudo pacman -S texlive-latexextra

安裝 Python 3

cwTeX 5.1 是以 Python 3 寫成的,所以你需要安裝 Python 3。根據 cwTeX 安裝手冊,版本必須至少是 Python 3.7 或更新的版本。實測在 Python 3.10.5 下可以正常運作。

sudo pacman -S python

安裝 cwTeX 排版系統

取得 cwTeX for macOS/Unix

文章寫成時 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

Try Out

至此大概完成了,可以試著用 cwTeX 編譯包含漢字的 .ctx 檔案為原版 TeX 的 .tex 檔案:

python /usr/share/texmf/bin/cwtex51b.py -o "output.tex" "input.ctx"

然後再用 LuaTeX 把 .tex 編譯成 PDF 檔,我習慣用 latexmk 來自動處理有使用 biberbibtex 引註文獻時需要反覆編譯的情況:

latexmk -pdflatex=lualatex -pdf ./output.tex

當然直接使用 LuaLaTeX 編譯也是沒問題的:

lualatex ./output.tex

結論

在 2022 年,直接使用 XeTeX/XeLaTeX 應該會是更聰明的解決方案,它可以讓你直接使用安裝在系統中的 OpenType 字型,並且原生支援 Unicode。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment