2007年9月7日

TeX Live 2007 的安裝與使用

※ 2007-09-17 補充:

  1. 經李果正先生協助,解決 dvipdfmx 產生的 pdf 檔無法進行中文複製的問題。這是因為 cid-x.map 檔格式錯誤所致。
  2. 修正後之 setTLfont.pl 字型安裝工具改版為 r18 版。
  3. Mac 使用者可以參考 如何在 Mac OS X 上裝設 LaTeX 以及 CJK 套件 (TeX Live 2007) 之介紹進行 TeX Live 2007 的安裝與設定。
※ 文中圖片皆可點選後觀看原始圖片內容。

※ XeTeX 可以直接調用系統上的字型,請參考 比较Texlive 2007 中 Xetex和CJKutf8处理中文的差异 的說明建立中文書籤內容。

因為目前的 TeX 相關專案皆已納入 Tex Live 下統一管理,那麼放棄 teTeX 改用 Tex Live 已變成無可避免的選擇。本文目的在整理在 Linux 及 Windows 下安裝 Tex Live 2007 時的注意事項與中文字型安裝的作法,而 .tex 的使用重點仍然是以透過 dvipdfmx 產生出 PDF 格式文件檔的設定方法為主(呃,殘念的是產生出來的 PDF 檔內文仍無法正確被複製,原因不明)。

要安裝 TeX Live 2007 並不難,除了將光碟映像檔直接燒錄成 CD/DVD 碟外,也可將 texlive2007-live-20070212.iso 檔掛載 (Windows 下可使用 DaemonTools) 到檔案系統中,甚至直接解壓縮(WinRAR 可以解)映像檔到某個目錄下都可以進行安裝動作。

在安裝 TeX Live 2007 時有兩種安裝方式的選擇: Live 執行模式硬碟執行模式

  1. Live 執行模式:透過些許系統設定後而可以執行 CD/DVD 中的各種 TeX 工具,缺點是 CD/DVD 必須長期掛載。若使用 CD/DVD 碟片的話還會佔據光碟機的使用權。
  2. 硬碟執行模式:將符合系統平台所需的 TeX 工具及套件複製到系統硬碟中執行,雖然會佔去約 1GB 的硬碟空間卻可以空出光碟機的使用權。
在 Linux 平台下還可以再區分成 root 管理者安裝一般使用者安裝 兩種情形。通常由 root 管理者安裝的目的是為了讓系統上所有使用者都可以操作 TeX 工具;若由一般使用者安裝時則僅限該使用者可以使用。(其他 Unix Like 作業平台下應該也一樣)

※ 為了避免遺漏安裝某些工具或 TeX 巨集,建議使用 CD/DVD 執行模式即可。

TeX Live 2007 安裝程式執行路徑

在光碟目錄下的 /setuptl/ 中包含各種平台上用來安裝 TeX Live 2007 的相關執行檔,如附圖。圖形化安裝工具一律以 tlpmgui- 接上平台名稱方式命名,實際上這些 tlpmgui-* 工具應該屬於 TeX 套件管理工具而非單純的安裝工具。

  • 安裝程式路徑
由上圖可以發現目前 TeX Live 2007 支援的圖形化安裝工具仍然只有少數幾個平台,如果您的平台不在支援之列時可以嘗試使用 install-tl.sh(後述)進行安裝。

原則上 GUI 管理工具會自行檢測系統上是否已安裝 TeX Live 2007 而改變其界面為安裝模式或套件管理模式。如果啟動 GUI 管理工具後發現無法進行安裝動作時表示 GUI 管理工具誤判為系統已安裝 TeX Live 所導致,可以透過以下命令列參數強迫 TLPM GUI 進入安裝模式:

# ./tlpmgui-x86_64-linux --install-mode

Linux 下以 root 身份進行 TeX Live 2007 Live 模式安裝 - 使用文字安裝界面

安裝程式操作說明

此處將 texlive2007-live-20070212.iso 掛載到 /mnt/texlive 下,進入此目錄後直接執行 install-tl.sh 即會進入 Tex Live 安裝畫面。

  • 準備安裝 TeX Live 2007
以 root 身份安裝的目的通常是為了提供系統上所有使用者皆可以使用 TeX 系統,此時通常不會去變更 Tex Live 的預設安裝目錄。若變更了此預設目錄時則必須注意後續環境變數的設定要連帶調整。
  • TeX Live 2007 文字安裝模式選項畫面
輸入 R 後即可要求 TeX Live 安裝程式進行必要的設定以便讓 TeX 可以由 CD/DVD 中執行,事實上管理人員仍然必須自行設定系統環境變數後才算完成 TeX Live 的安裝作業。
  • TeX Live 2007 環境變數設定提示訊息
為了後續中文字型安裝作業所需,除了 TeX Live 安裝程式提示的環境變數外尚需要增加一些額外的變數,以下為 Gentoo Linux 設定方式:
www # cat /etc/env.d/06texlive
TEXMFSYSVAR="/usr/local/texlive/2007/texmf-var"
PATH="/mnt/texlive/bin/x86_64-linux"

TEXMFSYSCONFIG="/usr/local/texlive/texmf-local" ROOTPATH="/mnt/texlive/bin/x86_64-linux" TLROOT="/mnt/texlive"

環境變數說明與設定
  1. TEXMFSYSVAR: TeX Live 2007 systemwide config 存放目錄,請填入 TeX Live 2007 文字安裝模式選項畫面中的設定內容。
  2. PATH: 設定一般用戶搜尋執行檔的路徑
  3. TEXMFSYSCONFIG: 這是 updmap-sys 使用的設定檔存放目錄,請設定為一可寫入的目錄名稱或與直接與 TEXMFSYSVAR 之值相同。
  4. ROOTPATH: root 管理者在搜尋執行檔時所用的參考路徑,這是 Gentoo 特有環境變數。
  5. TLROOT: 其實這是 Windows 平台的安裝程式所建立的環境變數,用於標示 Tex Live 的安裝根目錄。不過此處的作用是用於指定 TeX Live 光碟或完整安裝時的安裝目錄路徑。以此例而言,因為已將 .iso 檔掛載到 /mnt/texlive 下,所以 TLROOT 也指向此處。
設定完環境變數後記得重新載入環境變數設定,然後確認已可執行 latex 後即告完成 TeX Live 2007 安裝作業。
www # env-update
www # source /etc/profile
www # which latex
/mnt/texlive/bin/x86_64-linux/latex

www # latex --version pdfTeX 3.141592-1.40.3-2.2 (Web2C 7.5.6) kpathsea version 3.5.6 Copyright 2007 Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX). Kpathsea is copyright 2007 Karl Berry and Olaf Weber. There is NO warranty. Redistribution of this software is covered by the terms of both the pdfTeX copyright and the Lesser GNU General Public License. For more information about these matters, see the file named COPYING and the pdfTeX source. Primary author of pdfTeX: Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX). Kpathsea written by Karl Berry, Olaf Weber, and others.

Compiled with libpng 1.2.15; using libpng 1.2.15 Compiled with zlib 1.2.3; using zlib 1.2.3 Compiled with xpdf version 3.01

  • 若為一般使用者欲安裝 TeX Live 2007 時,透過修改安裝選項中的 TEXDIR 欄位即可將 TeX Live 2007 安裝到個人家目錄中。

Linux 下以 root 身份進行 TeX Live 2007 硬碟安裝 - 使用 GUI 安裝

安裝程式注意事項

與文字界面安裝模式不同,GUI 安裝程式的預設安裝選項只是 Medium (scheme-medium) 安裝而非 FULL (scheme-full) 安裝(在考慮進行完整安裝到硬碟前建議改用 CD/DVD 執行模式)。而對於缺損或多餘的 TeX 工具或巨集仍然可以在事後透過 TeX Live Manager 套件管理工具加以安裝或移除。

  • Linux 下 GUI 安裝程式主畫面
唯一需特別注意的只有記得一定要安裝 Ttfutils 工具集,缺了這個工具集就無法轉換 TrueType 字型給 TeX 使用。
  • 選擇安裝的套件集合
語系支援部份可以僅選用 CJK 即可,其他語系應該很少人使用吧?
  • TeX Live 2007 語系支援設定
環境變數設定
  • 與 Live 模式相同,一般使用者也可選擇將 TeX Live 2007 安裝到個人家目錄下。

Windows 下進行 TeX Live 2007 硬碟安裝

安裝程式注意事項

Windows 版的安裝程式主畫面與 Linux 上完全相同。

  • Windows 版安裝程式主畫面
在預設安裝套件方面仍然未包含 Ttfutils 工具集,但含括了 Perl 的執行環境。此處請勾選安裝 Ttfutils 工具集但無需安裝 Perl 執行環境(其實安裝程式會檢查系統上是否已安裝了 Perl 環境)。
  • 套件選取畫面
一樣只需選擇 CJK 即可,其他語系支援就放著吧。
  • 語系支援選取畫面
安裝程式預設會加上幾個環境變數,其中 %PERL5LIB% 所指向的是一個沒有任何檔案的空目錄集。
  • 硬碟模式下的預設環境變數
環境變數設定
  1. 此安裝模式中無需特別設定環境變數。
  2. 若 Perl 執行時出現異常錯誤,可將 %PERL5LIB% 變數移除或重設為指向 Active Perl 之安裝目錄下。
  • 為了可以使用字型安裝工具快速安裝 CJK 字型,請勿安裝 TeX Live 2007 光碟內的 Perl 工具集。選用 ActivePerl 5.8.8 會是個比較好的選擇。

Windows 下進行 TeX Live 2007 Live 模式安裝

安裝程式注意事項

Windows 版 GUI 安裝程式直接提供選擇由 CD/DVD 執行或硬碟執行兩種安裝方式,比 Linux 版方便甚多。

  • 選擇由 TeX Live 2007 光碟上執行
安裝程式完成設定後會多出這些環境變數,其中用於指定 Perl 函式庫位址的 %PERL5LIB% 必須改回原本 ActivePerl 的安裝目錄。
  • TeX Live 2007 光碟執行模式下預設的環境變數內容
環境變數設定
  1. 請將 %PERL5LIB% 的設定值刪除或改為指向 Active Perl 的安裝目錄。
  • 為了可以使用字型安裝工具快速安裝 CJK 字型,請先安裝 ActivePerl 5.8.8 或以上版本!

替 TeX Live 2007 安裝 TrueType 中文字型

剛安裝好的 TeX Live 2007 即使已指明了要安裝 CJK 套件也無法用來編譯中文的 .tex 檔(除非使用 XeTeX,但它也有些問題),這是因為尚未安裝中文字型的關係。

基本上想要替 Tex Live 新增中文字型的話可以參考李果正先生 替 LaTeX CJK 新增字型 一文的說明,另外 CJK-LaTeX with UTF-8 on Gentoo 的作法也依然可行。不過個人為了簡化整個字型的安裝作業,所以撰寫了一個簡單的字型安裝工具:setTLfont.pl

setTLfont.pl 是個人依據李果正先生的 mktfm.sh 為基礎,並參考前述 替 LaTeX CJK 新增字型 的說明後,改以 Perl 語言實作的字型安裝工具,目的是希望簡化 TeX Live 字型安裝過程中的煩瑣步驟。

setTLfont.pl 原本是在 Windows 上以 Active Perl 5.8.8 為開發工具,它需要額外安裝一些 Perl 模組。在 Active Perl 上可以使用 ppm 模組管理工具進行安裝;在 Linux 上應該都可由發行套件的套件管理機制進行安裝。

  1. File::Spec
  2. File::Find::Rule
  3. File::Copy::Recursive
setTLfont.pl 即然以 mktfm.sh 為基礎,所以參數的使用上也和 mktfm.sh 相同,以下是這個工具的使用說明。

www # perl setTLfont.pl

setTLfont.pl [options] full_truetype_font_file_path_name font_name font_encoding*

* font_encoding only support: 1. Big5: ETen-B5 2. Unicode: Unicode/Identity 3. UGB: UniGB-UCS2 4. UJIS: UniJIS-UCS2 5. UKS: UniKS-UCS2

Options: -r, --tlroot=DIRNAME Set TexLive installed root, this will overwrite the environment variable TLROOT setting. -l, --texmflocal=DIRNAME Set TexLive texmf-local path, this will overwrite the environment variable TEXMFVAR setting. -w, --workdir=DIRNAME Set output directory path, default is $TEXMFVAR/fonts/tfm/${font_name} . -e, --execdir=DIRNAME Set tex live utility's path. -v, --verbose Show the configuration of this program. -V, --version Show this program's version. -i, --license Show this program's license. -h, --help Show this message and exit. -q, --quit Quit if -V, -v, or -i had been setted.

For example: perl setTLfont.pl /usr/share/fonts/uming/uming.ttf uming Unicode

參數說明

  1. full_truetype_font_file_path_name:完整的 TrueType 字型路徑,可以隨意指定字型檔路徑。若字型檔不在 TeX Live 搜尋的路徑下時會自動建立 soft link (Windows 平台下則會自動複製到相關路徑下)。
  2. font_name:TeX 下的字型名稱。
  3. font_encoding:字型適用的編碼,目前支援以下 5 種編碼,但除了 Unicode 編碼確認可以使用外,其他都待測試。
    1. Big5
    2. Unicode
    3. UGB
    4. UJIS
    5. UKS
選項說明
  1. -r, --tlroot=DIRNAME:即 TexLive installed ROOT,作為指定 TeX Live 相關套件的執行來源,若為完整安裝時則指向安裝目錄。
  2. -l, --texmflocal=DIRNAME:指定 TeX Live 非預設字型及套件的安裝目錄。只有先設定過 TEXMFLOCAL 環境變數後,此選項才有實質用途。預設安裝此類非官方字型及套件的目錄是參考 %TEXMFVAR%(Windows 平台)或 texconfig conf 輸出的 TEXMFVAR(Linux 平台)設定值。
  3. -w, --workdir=DIRNAME:指定產生字型資訊檔時所使用的工作目錄,預設工作目錄是 $TEXMFVAR/fonts/tfm/${font_name} 。
  4. -e, --execdir=DIRNAME:其實本工具可以簡單辨識所在平台並執行對應的工具程式,不過事實上也只測試過 Windows 2000 及 Linux 兩種平台罷了。為了避免辦識錯誤,所以另外加了此選項以明確指定相關工具程式所在位置。如:G:\bin\win32 或 /mnt/texlive/bin/x86_64-linux 。
  5. -v, --verbose:顯示此工具在執行過程中所使用的各種參數設定內容。此選項不會終止整個字型安裝流程,不過可以配合 -q 選項結束整個安裝作業。
  6. -V, --version:顯示此工具之版本。此選項不會終止整個字型安裝流程,不過可以配合 -q 選項結束整個安裝作業。
  7. -l, --license:顯示此工具採用的授權方式。此選項不會終止整個字型安裝流程,不過可以配合 -q 選項結束整個安裝作業。

Linux 下 root 管理者安裝字型

不管是任何平台、任何身份,在進行字型安裝前可以先使用 -v -q 選項組合檢查相關安裝設定是否正確,若沒有問題的話可以移除 -q 選項進行安裝。
www # perl setTLfont.pl -q -v \
> /usr/share/fonts/arphicfonts/ukai.ttf ukai Unicode

setTLfont.pl $Rev: 17 $ - Help to set the font configuration for TexLive.

Command Line parameters:

True Type font path: /usr/share/fonts/arphicfonts/ukai.ttf *True Type font file: ukai.ttf Tex font name: ukai Tex encode name: Unicode Installer: root

Configration List:

TexLive Root: /mnt/texlive Platform: x86_64-linux Utility's file path: /mnt/texlive/bin/x86_64-linux TEXMFVAR path: /usr/local/texlive/2007/texmf-var TEXMFSYSCONFIG path: /usr/local/texlive/2007/texmf-var Postscript Encode Name: Identity TeX CJK Encode Number: 70

Working files and path:

cid-x.map path: /usr/local/texlive/2007/texmf-var/fonts/map/dvipdfm/cid-x.map TrueType font save to: /usr/local/texlive/2007/texmf-var/fonts/truetype *.tfm saved path: /usr/local/texlive/2007/texmf-var/fonts/tfm/ukai *.map saved path: /usr/local/texlive/2007/texmf-var/fonts/map fontname.map: ukai.map *.enc saved path: /usr/local/texlive/2007/texmf-var/fonts/enc/ukai *.fd saved path: /usr/local/texlive/2007/texmf-var/tex/latex/CJK/UTF8

TeXLive Utilities:

texconfig: /mnt/texlive/bin/x86_64-linux/texconfig ttf2tfm: /mnt/texlive/bin/x86_64-linux/ttf2tfm texhash: /mnt/texlive/bin/x86_64-linux/texhash updmap: /mnt/texlive/bin/x86_64-linux/updmap-sys

若執行結果一切順利的話,除了到前述輸出的路徑下檢查輸出的檔案外,最直接的方法是直接編譯 cjk-ukai.tex 作為測試文件。

\documentclass{article}
\usepackage{CJKutf8} % 使用CJKutf8 巨集套件
\begin{document}
\begin{CJK}{UTF8}{ukai}
\section{CJK 巨集套件}
這是一個測試,關於CJK package 的測試。
\section{桃花源記節錄}
初狹,纔通人;復行數十步,豁然開朗。土地平曠,屋舍儼然。有良田、美池、%
桑、竹之屬,阡陌交通,雞犬相聞。其中往來種作,男女衣著,悉如外人;黃髮、%
垂髫, 並怡然自樂。見漁人,乃大驚,問所從來;具答之,便要還家,設酒、殺雞、%
作食。村中聞有此人,咸來問訊。自云:「先世避秦時亂,率妻子邑人來此絕境,%
不復出焉;遂與外人閒隔。」問今是何世;乃不知有漢,無論魏、晉。此人一一%
為具言所聞,皆歎惋。餘人各復延至其家,皆出酒食。停數日,辭去。此中人語%
云:「不足為外人道也。」
\end{CJK}
\end{document}

Linux 下一般使用者安裝字型

以下是一般使用者自行安裝字型時的執行參數範例,相關的檔案會被放入 $HOME/.texlive2007 目錄下。同樣的,使用前述的檔並修改使用字型為 sung 後即可以測試字型是否安裝完成(使用 cjk-sung.tex )。

ada@www $ perl setTLfont.pl -q -v \
> /usr/share/fonts/opendesktop-fonts/odosung.ttc sung Unicode

setTLfont.pl $Rev: 17 $ - Help to set the font configuration for TexLive.

Command Line parameters:

True Type font path: /usr/share/fonts/opendesktop-fonts/odosung.ttc *True Type font file: odosung.ttc Tex font name: sung Tex encode name: Unicode Installer: ada

Configration List:

TexLive Root: /mnt/texlive Platform: x86_64-linux Utility's file path: /mnt/texlive/bin/x86_64-linux TEXMFVAR path: /home/ada/.texlive2007/texmf-var TEXMFSYSCONFIG path: /usr/local/texlive/2007/texmf-var Postscript Encode Name: Identity TeX CJK Encode Number: 70

Working files and path:

cid-x.map path: /home/ada/.texlive2007/texmf-var/fonts/map/dvipdfm/cid-x.map TrueType font save to: /home/ada/.texlive2007/texmf-var/fonts/truetype *.tfm saved path: /home/ada/.texlive2007/texmf-var/fonts/tfm/sung *.map saved path: /home/ada/.texlive2007/texmf-var/fonts/map fontname.map: odosung.map *.enc saved path: /home/ada/.texlive2007/texmf-var/fonts/enc/sung *.fd saved path: /home/ada/.texlive2007/texmf-var/tex/latex/CJK/UTF8

TeXLive Utilities:

texconfig: /mnt/texlive/bin/x86_64-linux/texconfig ttf2tfm: /mnt/texlive/bin/x86_64-linux/ttf2tfm texhash: /mnt/texlive/bin/x86_64-linux/texhash updmap: /mnt/texlive/bin/x86_64-linux/updmap

Windows 下安裝字型

Windows 下並無一般使用者或系統管理者之分,所指定的字型檔則將被直接複製到 TeX 相關目錄下。同樣的,可以使用 cjk-uming.tex 進行字型測試。

E:\>perl setTLfont.pl -q -v E:\Tools\TeX\font\uming.ttf uming Unicode

setTLfont.pl $Rev: 17 $ - Help to set the font configuration for TexLive.

Command Line parameters:

True Type font path: E:\Tools\TeX\font\uming.ttf *True Type font file: uming.ttf Tex font name: uming Tex encode name: Unicode Installer: adahsu

Configration List:

TexLive Root: C:\TeXLive2007 Platform: win32 Utility's file path: C:\TeXLive2007\bin\win32 TEXMFVAR path: C:\texmf-local TEXMFSYSCONFIG path: C:\TeXLive2007\texmf-var\web2c Postscript Encode Name: Identity TeX CJK Encode Number: 70

Working files and path:

cid-x.map path: C:\texmf-local\fonts\map\dvipdfm\cid-x.map TrueType font save to: C:\texmf-local\fonts\truetype *.tfm saved path: C:\texmf-local\fonts\tfm\uming *.map saved path: C:\texmf-local\fonts\map fontname.map: uming.map *.enc saved path: C:\texmf-local\fonts\enc\uming *.fd saved path: C:\texmf-local\tex\latex\CJK\UTF8

TeXLive Utilities:

texconfig: Not Supported yet ! ttf2tfm: C:\TeXLive2007\bin\win32/ttf2tfm.exe texhash: C:\TeXLive2007\bin\win32/texhash.exe updmap: C:\TeXLive2007\bin\win32/updmap.exe

setTLfont.pl 注意事項說明

  1. 因為一些 Perl 模組之故 (File::Copy::Recursive、File::Find::Rule) Windows 平台下不要使用 TeX Live 2007 內附的 Perl 系統,TeX Live 2007 內的 Perl 版本太舊。
  2. 在 Windows 下若選擇 CD/DVD 執行模式時,TeX Live 2007 會自行設定 PERL5LIB 環境變數到光碟目錄下,這會因為模組版本差異的關係而造成執行異常。