LaTeX/安裝額外包
LaTeX 的附加功能稱為包。數十種這樣的包預先安裝在 LaTeX 中,可以立即在您的文件中使用。它們應該都儲存在以下目錄的子目錄中texmf/tex/latex以每個包的名稱命名。目錄名“texmf”代表“TEX 和 METAFONT”。要了解哪些其他包可用以及它們的功能,您應該使用CTAN 搜尋頁面,其中包含指向 Graham Williams 的綜合包目錄的連結。
一個包是一個檔案或一組檔案,包含額外的 LaTeX 命令和程式設計,這些命令和程式設計添加了新的樣式功能或修改了已有的樣式功能。主要有兩種檔案型別:以.cls為副檔名的類檔案和以.sty為副檔名的樣式檔案。還可能存在輔助檔案。當您嘗試排版需要系統中未安裝的包的文件時,LaTeX 會向您發出錯誤訊息,警告您缺少包。您可以下載您已擁有包的更新(包括與您的 LaTeX 版本一起安裝的包以及您新增的包)。您的計算機上可以安裝的包數量沒有限制(除了磁碟空間!),但是對於任何一個 LaTeX 文件中同時使用的包數量,存在一個可配置的限制,儘管這取決於每個包的大小。實際上,即使有幾十個包處於活動狀態,也沒有問題。
大多數 LaTeX 安裝都附帶大量預先安裝的樣式包,因此您可以使用 TeX 發行版的包管理器或系統上的包管理器來管理它們。請參見自動安裝。但是,網上還有更多可用。在網際網路上查詢樣式包的主要地方是CTAN。一旦您確定了發行版中沒有的需要的包,請使用任何 CTAN 伺服器上的索引找到您需要的包以及可以從中下載它的目錄。請參見手動安裝。
自動安裝
[edit | edit source]如果在具有包管理器或 Portage 樹的作業系統上,您通常可以在儲存庫中找到包。
使用 MikTeX,有一個包管理器允許您單獨選擇您想要的包。作為一項方便的功能,在編譯需要未安裝包的檔案時,MikTeX 會自動提示您安裝缺少的包。
使用 TeX Live,通常將發行版打包成幾個大型包。例如,要安裝與國際化相關的某些內容,您可能需要安裝一個名為texlive-lang的包。使用手動安裝的 TeX Live,請使用tlmgr單獨管理包。
tlmgr install <package1> <package2> ... tlmgr remove <package1> <package2> ...
使用tlmgr在安裝章節中介紹。
如果您無法使用任何上述方法找到所需的包,請參見手動安裝。
特定作業系統的說明
[edit | edit source]在 Ubuntu 上,使用 Trusty 等發行版,您可以使用 texlive 和 texlive-extra 包,例如 texlive-full、texlive-latex-extra、texlive-math-extra、texlive-plain-extra、texlive-bibtex-extra、texlive-generic-extra 和語言包,這些包都可以在這裡的 Ubuntu 包站點以及這裡的 Trusty 更新中找到。您可以使用 sudo apt-get install <在 此處插入包名稱>安裝這些包。
手動安裝
[edit | edit source]下載包
[edit | edit source]您通常需要查詢兩個檔案,一個以.dtx結尾,另一個以.ins結尾。第一個是 DOCTeX 檔案,它將包程式及其文件合併到一個檔案中。第二個是安裝例程(非常小)。您必須始終下載這兩個檔案。如果這兩個檔案不存在,則表示以下兩種情況之一
- 或者該包是大型捆綁包的一部分,除非您更改 LaTeX 版本,否則您通常不應該更新它;
- 或者它是一個較舊的或相對簡單的包,由沒有使用.dtx檔案的作者編寫。
將包檔案下載到臨時目錄。通常會有一個readme.txt檔案,其中包含該包的簡要描述。您當然應該先閱讀此檔案。
安裝包
[edit | edit source]安裝 LaTeX 包有五個步驟。(這些步驟也可以應用於您自己編寫的複雜包的各個部分;在這種情況下,請直接跳到步驟 3。)
1. 提取檔案 在.ins檔案上執行 LaTeX。也就是說,在您的編輯器中開啟該檔案,並像處理 LaTeX 文件一樣處理它(它本身就是一個 LaTeX 文件),或者如果您願意,在您的臨時目錄中的命令視窗中鍵入 latex,後跟.ins檔名。這將從.dtx檔案中提取所有必需的檔案(這就是為什麼您必須在臨時目錄中同時擁有這兩個檔案的原因)。如果建立的檔案很多,請記下或列印建立的檔名(如果您想再次檢視檔名,請閱讀日誌檔案)。
2. 建立文件 在.dtx檔案上執行 LaTeX。您可能需要執行它兩次或更多次才能使交叉引用正確(就像任何其他 LaTeX 文件一樣)。這將建立一個.dvi文件檔案,解釋該包的用途以及如何使用它。如果您願意建立 PDF,請執行 pdfLaTeX。如果您建立了一個.idx檔案,則意味著該文件也包含索引。如果您想正確建立索引,請按照索引部分中的步驟操作。有時您會看到已生成.glo(詞彙表)檔案。請改用以下命令
makeindex -s gglo.ist -o name.gls name.glo
3. 安裝檔案 在文件列印時,將包檔案從您的臨時目錄移動或複製到 TeX 本地安裝目錄樹中的正確位置。手動安裝的包應始終放置在您的“本地”目錄樹中,而不是包含所有預安裝包的目錄樹中。這樣做是為了a)防止您的新包意外覆蓋主 TeX 目錄中的檔案;以及b)避免在您下次更新 TeX 版本時,您新安裝的檔案被覆蓋。
對於符合 TDS(TeX 目錄結構)的系統,您的“本地安裝目錄樹”是一個資料夾及其子資料夾。最外層的資料夾可能應該稱為texmf-local/或texmf/。它的位置取決於您的系統
- MacTeXUsers/使用者名稱/Library/texmf/.
- Unix 類系統:通常~/texmf/. 如果你在 Ubuntu 18 上使用 TexMaker,它可能位於
/usr/share/texmf/ - MikTeX:你的本地目錄樹可以是任何你喜歡的資料夾,只要你將其註冊為使用者管理的 texmf 目錄(參見 http://docs.miktex.org/manual/localadditions.html#id573803)
“正確位置”有時會導致混淆,尤其是在你的 TeX 安裝很舊或不符合 TeX 目錄結構 (TDS) 的情況下。對於符合 TDS 的系統,“正確位置”用於 LaTeX.sty檔案是texmf/tex/latex/的適當命名的子目錄。 “適當命名”是指有意義且合理的(並且可能很短)。例如,對於像 paralist 這樣的包,我會將目錄稱為texmf/tex/latex/paralist.
通常只有一個.sty檔案需要移動,但在複雜的包的情況下,可能會有多個檔案,並且它們可能位於不同的位置。例如,新的 BibTeX 包或字型包通常會有幾個檔案需要安裝。這就是為什麼為包建立一個子目錄而不是將檔案與其他無關的東西一起放到 misc 中是一個好主意。如果存在配置或其他檔案,請閱讀文件以瞭解是否有特殊或首選的位置可以將它們移動到。
| 型別 | 目錄(在texmf/或texmf-local/) | 描述 |
|---|---|---|
| .afm | fonts/afm/foundry/typeface | Type 1 字型的 Adobe 字型度量 |
| .bib | bibtex/bib/bibliography | BibTeX 參考文獻 |
| .bst | bibtex/bst/packagename | BibTeX 樣式 |
| .cls | tex/latex/base | 文件類檔案 |
| .dvi | doc | 包文件 |
| .enc | fonts/enc | 字型編碼 |
| .fd | tex/latex/mfnfss | METAFONT 字型的字型定義檔案 |
| .fd | tex/latex/psnfss | PostScript Type 1 字型的字型定義檔案 |
| .map | fonts/map | 字型對映檔案 |
| .mf | fonts/source/public/typeface | METAFONT 輪廓 |
| doc | 包文件 | |
| .pfb | fonts/type1/foundry/typeface | PostScript Type 1 輪廓 |
| .sty | tex/latex/packagename | 樣式檔案:正常的包內容 |
| .tex | doc | 包文件的 TeX 原始碼 |
| .tex | tex/plain/packagename | Plain TeX 宏檔案 |
| .tfm | fonts/tfm/foundry/typeface | METAFONT 和 Type 1 字型的 TeX 字型度量 |
| .ttf | fonts/truetype/foundry/typeface | TrueType 字型 |
| .vf | fonts/vf/foundry/typeface | TeX 虛擬字型 |
| 其他 | tex/latex/packagename | 除非另有指示,否則其他型別的檔案 |
對於 CTAN 上的大多數字體,foundry是public.
4. 更新索引 最後,執行你的 TeX 索引程式以更新包資料庫。該程式包含在每個現代版本的 TeX 中,並且根據你使用的 LaTeX 發行版具有不同的名稱。(閱讀隨安裝提供的文件以瞭解它是哪個,或者諮詢 http://www.tug.org/fonts/fontinstall.html#fndb)
- teTeX,TeX Live,fpTeXtexhash
- web2cmktexlsr
- MacTeX:MacTeX 似乎會為你完成此操作。
- MikTeXinitexmf --update-fndb(或使用 GUI)
- 在 Windows XP 到 Windows 7 上安裝的 MiKTeX 2.7 或更高版本:開始 -> 所有程式 -> MiKTex -> 設定。在 Windows 8 中使用關鍵字 設定並選擇帶有 MiKTex 徽標的 設定選項。在 設定選單中選擇第一個選項卡並單擊 重新整理 FNDB 按鈕(MiKTex 然後將檢查 Program Files 目錄並更新檔名稱資料庫列表)。之後只需單擊“確定”即可驗證。
此步驟絕對是必要的,否則什麼都不會起作用。 |
5. 更新字型對映 如果你的包安裝了任何 TrueType 或 Type 1 字型,你需要更新字型對映檔案,除了更新索引之外。你的包作者應該已經包含了一個.map用於字型的檔案。對映更新程式通常是updmap的某些變體,具體取決於你的發行版
- TeX Live 和 MacTeXupdmap --enable Map=mapfile.map(如果你將檔案安裝在個人樹中)或updmap-sys --enable Map=mapfile.map(如果你將檔案安裝在系統目錄中)。
- MikTeX:執行initexmf --edit-config-file updmap,在開啟的檔案中新增一行 "Map mapfile.map,然後執行initexmf --mkmaps.
參見 http://www.tug.org/fonts/fontinstall.html。
這個過程沒有被廣泛自動化的原因是,仍然有數千個不符合 TDS 的安裝,例如舊的共享 Unix 系統和一些 Microsoft Windows 系統,因此安裝程式無法猜測將檔案放在哪裡:你必須知道這一點。還有一些系統,其中所有者、使用者或安裝程式選擇不遵循推薦的 TDS 目錄結構,或者由於政治或安全原因無法這樣做(例如,共享系統,其中使用者無法寫入受保護的目錄)。存在texmf-local目錄(在某些系統上稱為texmf.local)的原因是為本地修改或個人更新提供一個位置,尤其是在你是在共享或管理的系統(Unix、Linux、VMS、Windows NT/2000/XP 等)上的使用者時,你可能沒有寫訪問許可權到主 TeX 安裝目錄樹。你也可以在自己的登入目錄中擁有一個個人texmf子目錄。但是,你的安裝必須配置為首先檢視這些目錄,以便對標準包的任何更新將在主texmf樹中的替代副本之前找到。所有現代 TeX 安裝都應該這樣做,但如果沒有,你可以編輯texmf/web2c/texmf.cnf自己。
檢查包狀態
[edit | edit source]檢查檔案是否可用於 TeX 編譯器的通用方法是使用命令列工具kpsewhich.
$ kpsewhich tikz /usr/local/texlive/2012/texmf-dist/tex/plain/pgf/frontendlayer/tikz.tex
kpsewhich實際上只搜尋檔案,而不是包。它返回檔案的路徑。有關特定包的更多詳細資訊,請使用命令列工具tlmgr(僅 TeX Live)
tlmgr info <package>
該tlmgr工具還有很多其他選項。要檢視文件
tlmgr help
包文件
[edit | edit source]要了解包提供了哪些命令(以及如何使用它),你需要閱讀文件。在texmf/doc安裝的子目錄中,應該存在一個充滿 .dvi 檔案的目錄,每個已安裝的包對應一個。此位置特定於發行版,但通常位於
| 發行版 | 路徑 |
|---|---|
| MacTeX | /Library/TeX/Documentation/texmf-doc/latex |
| MiKTeX | %MIKTEX_DIR%\doc\latex |
| TeX Live | $TEXMFDIST/doc/latex |
通常,大多數包都位於latex子目錄中,儘管其他包(如 BibTeX 和字型包)位於doc中的其他子目錄中。文件目錄與包的名稱相同(例如amsmath),通常包含一個或多個相關文件,格式多種多樣(dvi, txt, pdf等)。文件通常與包的名稱相同,但也有例外(例如,amsmath的文件位於latex/amsmath/amsdoc.dvi)。如果你的安裝過程沒有安裝文件,可以從 CTAN 下載所有 DVI 檔案。在使用包之前,你應該仔細閱讀文件,尤其是通常稱為“使用者介面”的小節,其中描述了該包提供的命令。你不能只是猜測並希望它能起作用:你必須閱讀並找出答案。
你通常可以使用 texdoc 命令自動開啟任何已安裝的包文件
texdoc <package-name>
外部資源
[edit | edit source]查詢 LaTeX 包的最佳方法是前面提到的 CTAN:搜尋。來自 TeX 目錄線上 的其他資源
另請參見
[edit | edit source]
