LaTeX/安裝額外包
LaTeX 的附加功能稱為包。LaTeX 預裝了數十個這樣的包,可立即在您的文件中使用。它們都應該儲存在以下子目錄中texmf/tex/latex每個包的名稱都以其名稱命名。目錄名稱“texmf”代表“TEX 和 METAFONT”。要了解哪些其他包可用以及它們的用途,您應該使用CTAN 搜尋頁面,其中包含指向 Graham Williams 的綜合包目錄的連結。
包是一個檔案或檔案集合,包含額外的 LaTeX 命令和程式設計,這些命令和程式設計新增新的樣式功能或修改已有的樣式功能。主要有兩種檔案型別:類檔案,副檔名為.cls和樣式檔案,副檔名為.sty。也可能存在輔助檔案。當您嘗試排版需要系統上未安裝的包的文件時,LaTeX 會向您發出警告,提示缺少該包。您可以下載您已擁有包的更新(包括與您的 LaTeX 版本一起安裝的包以及您新增的包)。您可以在計算機上安裝的包的數量沒有限制(除了磁碟空間!),但可以在任何一個 LaTeX 文件中同時使用的包的數量存在可配置的限制,儘管這取決於每個包的大小。實際上,即使有幾十個包處於活動狀態也沒有問題。
大多數 LaTeX 安裝都帶有一組預安裝的樣式包,因此您可以使用 TeX 發行版的包管理器或系統上的包管理器來管理它們。請參閱自動安裝。但網上還有更多可用的包。在網際網路上查詢樣式包的主要地方是CTAN。一旦您確定了您的發行版中沒有的所需包,請使用任何 CTAN 伺服器上的索引來查詢所需的包以及可以從中下載該包的目錄。請參閱手動安裝。
如果在具有包管理器或 portage 樹的作業系統上,您通常可以在儲存庫中找到包。
使用 MikTeX,有一個包管理器允許您單獨選擇所需的包。作為一個方便的功能,在編譯需要未安裝包的檔案時,MikTeX 會自動提示安裝缺少的包。
使用 TeX Live,通常將發行版打包成幾個大包。例如,要安裝與國際化相關的某些內容,您可能需要安裝一個名為texlive-lang的包。在手動安裝 TeX Live 後,使用tlmgr單獨管理包。
tlmgr install <package1> <package2> ... tlmgr remove <package1> <package2> ...
的使用tlmgr在安裝章節中介紹。
如果您無法透過上述任何方法找到所需的包,請參閱手動安裝。
在 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 <在此處插入包名稱>安裝這些包。
您需要查詢的通常是兩個檔案,一個以.dtx結尾,另一個以.ins結尾。第一個是 DOCTeX 檔案,它將包程式及其文件組合在一個檔案中。第二個是安裝程式(更小)。您必須始終下載這兩個檔案。如果這兩個檔案不存在,則表示兩種情況之一
- 或者該包是更大捆綁包的一部分,除非您更改 LaTeX 版本的 LaTeX,否則您通常不應更新該捆綁包;
- 或者它是由未使用.dtx檔案的作者編寫的較舊或相對簡單的包。
將包檔案下載到臨時目錄。通常會有一個readme.txt檔案,其中包含對包的簡要描述。您當然應該先閱讀此檔案。
安裝 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/鑄造廠/字型 | Type 1 字型的 Adobe 字型度量 |
| .bib | bibtex/bib/參考文獻 | BibTeX 參考文獻 |
| .bst | bibtex/bst/包名 | 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/字型 | METAFONT 輪廓 |
| doc | 包文件 | |
| .pfb | fonts/type1/鑄造廠/字型 | PostScript Type 1 輪廓 |
| .sty | tex/latex/包名 | 樣式檔案:正常的包內容 |
| .tex | doc | 包文件的 TeX 原始碼 |
| .tex | tex/plain/包名 | 純 TeX 宏檔案 |
| .tfm | fonts/tfm/鑄造廠/字型 | METAFONT 和 Type 1 字型的 TeX 字型度量 |
| .ttf | fonts/truetype/鑄造廠/字型 | TrueType 字型 |
| .vf | fonts/vf/鑄造廠/字型 | TeX 虛擬字型 |
| 其他 | tex/latex/包名 | 除非另有指示,否則為其他型別的檔案 |
對於 CTAN 上的大多數字體,鑄造廠是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自己。
檢查檔案是否可用於 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
要了解包提供了哪些命令(以及如何使用它),您需要閱讀文件。在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>
查詢 LaTeX 包的最佳方法是前面提到的 CTAN: 搜尋。其他資源來自 TeX 線上目錄
