首頁 > 軟體

Ubuntu 下安裝 Texlive 並設定 CTeX 中文套裝

2020-06-16 17:56:55

Ubuntu 下安裝 Texlive 並設定 CTeX 中文套裝

1 安裝 texlive2013

1.1 下載 texlive2013

下載地址:http://ftp.ctex.org/mirrors/CTAN/systems/texlive/Images/texlive2013-20130530.iso

1.2 掛載 iso並安裝texlive2013

將下載的 texlive2013-20130530.iso 掛載到/mnt 目錄下並執行 install-tl進行安裝

1 sudo mount -t -iso9660 -o loop texlive2013-20130530.iso /mnt
2 cd /mnt/
3 sudo ./install-tl

出現選項之後,輸入 I 直接安裝即可,幾分鐘即可安裝完畢。安裝完成之後,將 texlive2013-20130530.iso 解除安裝。

1 cd /
2 sudo umount /mnt/

1.3 修改環境變數

texlive 預設的安裝目錄是/usr/local/texlive/2013/bin/i386-linux/,為了讓 shell 能夠自動找到 tex 的 bin 檔案,我們需要修改環境變數 PATH。

如果我們希望系統也能夠自動找到 texlive 的 man 或 info 文件,我們一併修改環境變數 MANPATH 和 INFOPATH。開啟 /.bashrc,在其中新增下面的內容。

PATH=/usr/local/texlive/2013/bin/i386-linux:$PATH; export PATH
MANPATH=/usr/local/texlive/2013/texmf-dist/doc/man:$MANPATH; export MANPATH
INFOPATH=/usr/local/texlive/2013/texmf-dist/doc/info:$INFOPATH; export INFOPATH

1.4 測試安裝是否成功

(1)首先確認我們安裝的 tex 版本

lienhua34:text$ tex --version
TeX 3.1415926 (TeX Live 2013)
kpathsea version 6.1.1
Copyright 2013 D.E. Knuth.

(2)編寫一個簡單的 tex 檔案,然後編譯它

新建一個 test.tex 檔案,然後輸入下面內容

1 documentclass{article}
2 begin{document}
3 Hello LaTeX!
4 end{document}

然後執行下面命令即可生成 test.pdf。

1 lienhua34:text$ xelatex test.tex

雙擊開啟 test.pdf,看到如下內容

ok,texlive正常工作。

(3)測試 ctex 套裝

要 使 我 們 的 texlive 支 持 中 文, 我 們 使 用 ctex 套 裝。 關 於 ctex的 介 紹 見 http://www.ctex.org/HomePage。texlive 安 裝 包 默 認 攜帶 了 ctex 宏 包,ctex 宏 包 的 目 錄 為/usr/local/texlive/2013/texmf-dist/tex/latex/ctex。我們新建一個 ctex.tex 檔案,輸入下面的內容

1 documentclass{ctexart}
2 begin{document}
3 您好,LaTeX!
4 end{document}

儲存,然後執行下面命令

1 lienhua34:text$ xelatex ctex.tex

編譯失敗,xelatex 命令報如下錯誤

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! fontspec error: "font-not-found"
!
! The font "SimSun" cannot be found.
!
! See the fontspec documentation for further information.
!
! For immediate help type H <return>.
!...............................................
l.5
{SimSun}
?

 這 是 因 為 ctex 宏 包 默 認 使 用 的 是 windows 系 統 的 字 體, 而 我 的ubuntu 下 沒 有 windows 系 統 的 字 體, 所 以 這 裡 報 了 找 不 到 宋 體(SimSun)的錯誤。那麼我們就需要進行字型設定,這是下一節要講的事。

現在可以確認我們的 texlive 已經安裝成功,只是還沒有支援中文字元而已。

2 設定 ctex 中文套裝

ctex 宏包提供了三個字型選項:nofonts、adobefonts 和 winfonts,預設使用的是 winfonts。如果在 tex 原始檔中沒有使用其他選項修改字型設定,則需要作業系統中安裝有中文 Windows 作業系統自帶的四種 TrueType 字型:宋體(simsun)、黑体(simhei)、仿宋體(simfang)、楷體(simkai)。

如果使用 adobefonts 選項,則需要作業系統中安裝有 Adobe 公司的四款 OpenType 字型:Adobe 宋體、Adobe 黑体、Adobe 仿宋、Adobe 楷體。

此處我們打算使用 nofonts 選項,然後通過 CJK 中文方案將 ubuntu自帶的中文字型設定成中文的預設字型。

2.1 使用 nofonts 選項設定字型

我們先通過命令 fc-list :lang-zh 檢視 ubuntu 系統自帶的中文字型

lienhua34:text$ fc-list :lang-zh | sort
AR PL UKai CN:style=Book
AR PL UKai HK:style=Book
AR PL UKai TW MBE:style=Book
AR PL UKai TW:style=Book
AR PL UMing CN:style=Light
AR PL UMing HK:style=Light
AR PL UMing TW MBE:style=Light
AR PL UMing TW:style=Light
...
文泉驛等寬微米黑,文泉驛等寬微米黑,WenQuanYi Micro Hei Mono:style=Regular
文泉驛等寬正黑,文泉驛等寬正黑,WenQuanYi Zen Hei Mono:style=Regular
文泉驛點陣正黑,文泉驛點陣正黑,WenQuanYi Zen Hei Sharp:style=Regular
文泉驛微米黑,文泉驛微米黑,WenQuanYi Micro Hei:style=Regular
文泉驛正黑,文泉驛正黑,WenQuanYi Zen Hei:style=Regular

我們開啟之前的 ctex.tex 檔案,然後輸入以下內容

1 documentclass[nofonts]{ctexart}
2 setCJKmainfont[ItalicFont={AR PL UKai CN}]{AR PL UMing CN} %設定中文預設字型
3 setCJKsansfont{WenQuanYi Zen Hei} %設定文泉驛正黑字型作為中文無襯線字型
4 setCJKmonofont{WenQuanYi Zen Hei Mono} %設定文泉驛等寬正黑字型作為中文打字機字型
5 begin{document}
6 您好,LaTeX!
7 end{document}

儲存,然後執行命令

1 lienhua34:text$ xelatex ctex.tex

編譯成功,輸出了 ctex.pdf 檔案,我們雙擊開啟 ctex.pdf 檔案,看到如下內容


ok。我們的 texlive 已經能夠處理中文字元。但是。。。

2.2 自定義 mylinuxfonts.sty 宏包

通過 setCJKmainfont 等命令我們可以使用 texlive 處理中文字元了,但是要在每個中文文件都寫這麼一段命令,確實是個煩人的事情。我們可以通過將這段命令寫入到自定義的宏包檔案 mylinuxfonts.sty 中,然後在文件中以命令 usepackage{mylinuxfonts} 使用這個自定義宏包即可。

1 % mylinuxfonts.sty
2 ProvidesPackage{mylinuxfonts}
3 setCJKmainfont[ItalicFont={AR PL UKai CN}]{AR PL UMing CN} %設定中文預設字型
4 setCJKsansfont{WenQuanYi Zen Hei} %設定中文無襯線字型為文泉驛正黑
5 setCJKmonofont{WenQuanYi Zen Hei Mono} %設定中文打字機(等寬)字型為文泉驛正黑
6 endinput

然後修改 ctex.tex 的內容如下即可。

1 documentclass[nofonts]{ctexart}
2 usepackage{mylinuxfonts}
3 begin{document}
4 您好,LaTeX!
5 end{document}

那麼我們要將 mylinuxfonts.sty 放在什麼地方,texlive 才能夠自動找得到呢?texlive 提供一個變數 TEXMFHOME(預設為~/texmf),給用 戶 存 放 自 己 獨 立 安 裝 的 宏 包、 字 體 等。 宏 包 文 件 需 要 放 置 到 目 錄TEXMFHOME/tex/latex 或 者 它 的 子 目 錄 下。 我 們 將 mylinuxfonts.sty放到目錄~/texmf/tex/latex 下,然後編譯 ctex.tex 檔案。ok,成功!

當然,如果將 mylinuxfonts.sty 放到目錄~/texmf/tex/latex 下,只有當前使用者才能夠使用。如果我們希望這個宏包對於能夠登入當前機器的所有使用者都可用,那怎麼辦?texlive 另外提供了一個變數 TEXMFLOCAL(預設為 /usr/local/texlive/texmf-local),給系統管理員用來安裝供整個系統使用的額外的宏包或者字型。宏包檔案需要放到目錄 TEXMFLOCAL/tex/latex 或者它的子目錄下。我們將 mylinuxfonts.sty 檔案放到這個目錄下。

1 lienhua34:latex$ sudo cp mylinuxfonts.sty /usr/local/texlive/texmf-local/tex/latex/local

然後編譯 ctex.tex 檔案,但提示找不到 “mylinuxfonts.sty” 檔案,

這是因為 TEXMFLOCAL 目錄需要一個保持更新的檔名資料庫,否則新增的檔案就無法找到。我們通過命令 mktexlsr 來更新它。

lienhua34:latex$ sudo mktexlsr
mktexlsr: Updating /usr/local/texlive/2013/texmf-config/ls-R...
mktexlsr: Updating /usr/local/texlive/2013/texmf-dist/ls-R...
mktexlsr: Updating /usr/local/texlive/2013/../texmf-local/ls-R...
mktexlsr: Updating /usr/local/texlive/2013/texmf-var/ls-R...
mktexlsr: Done.

此時再編譯 ctex.tex。ok,沒有問題了。

2.3 優化設定

現在我們的 texlive 已經支援中文了,但我們還可以再優化一下我們的ctex 設定。

在我的 ubuntu 下沒有安裝 windows 系統的字型。而 ctex 預設是使用的字型設定選項是 winfonts,那麼我們每個要使用 ctex 宏包的 tex 文件中都要設定 nofonts 選項。

ctex 宏包提供了一個組態檔 ctexopts.cfg,該檔案中的程式碼會在 ctex宏包的開頭(選項定義後面)執行。我們可以使用此檔案設定 ctex 宏包的預設選項。

1 lienhua34:text$ cd /usr/local/texlive/2013/texmf-dist/tex/latex/ctex/cfg
2 lienhua34:cfg$ sudo cp ctexopts.cfg.template ctexopts.cfg
3 lienhua34:cfg$ sudo vi ctexopts.cfg

然後輸入一下內容

1 % ctexopts.cfg: set default options
2 ExecuteOptions{nofonts}
3 endinput

儲存,然後執行 mktexlsr 命令。ok,此時 ctex 宏包預設的字型選項便改為nofonts 了。

Ubuntu 12.04安裝使用Texlive2012  http://www.linuxidc.com/Linux/2013-05/84540.htm


IT145.com E-mail:sddin#qq.com