這是thomasWeise/texlive圖像的重大改革。現在,它基於thomasweise/docker-pandoc ,反過來又基於thomasweise/docker-texlive-full 。這意味著它變得更大,但是現在它具有最新的pandoc , TeX Live的發行版,並且包含比以前更多的Pandoc過濾器。有關容器的原始版本,請參閱標籤1.0.0。
這是一個包含TeX Live安裝(版本2015.2016)的Docker映像,其中有幾個支持腳本,用於將乳膠文件彙編為PDF。目的是提供一個統一的環境,用於以可預測且可再現的行為編譯乳膠文檔,同時減少安裝和維護乳膠安裝所需的精力。該圖像旨在特別適合中國觀眾,並配備了幾種預裝的開放式字體。
可以按照以下準則安裝Docker:
curl -fsSL http://get.docker.com/ | sh ,一切都會自動完成(如果您安裝了curl ,通常是這種情況),在下面,我們討論運行時可以傳遞給此圖像的各種參數。如果您已經安裝了Docker,則無需執行任何其他安裝:您第一次進行docker run -t -i thomasweise/texlive或類似的東西(請參見下文),該圖像將自動下載並從Docker Hub安裝。
此圖像有兩個基本用例:
此外,有兩種方式向容器提供數據:
命令的常見形式如下:
docker run -v /my/path/to/document/:/doc/ -v /path/to/fonts/:/usr/share/fonts/external/ -t -i thomasweise/texlive COMMAND ARG1 ARG2...
在哪裡
/my/path/to/document/必須用包含要編譯的乳膠文檔的文件夾的路徑替換。該文件夾將作為文件夾/doc/在容器內部提供。如果您使用沒有命令參數的圖像(請參見下文),則將在此/doc/文件夾中獲得BASH命令提示符。-v /path/to/fonts/:/usr/share/fonts/external/ parameter。這裡, /path/to/fonts/必須用包含這些字體的文件夾的路徑代替。如果您不需要其他字體,則可以將整個-v /path/to/fonts/:/usr/share/fonts/external/ away留下整個-v/path/for。COMMAND ARG1 ARG2...在上面命令行中的代表。如果您指定了此類命令,則容器將啟動,執行命令,然後關閉。如果您不提供這樣的命令,則容器將啟動,並在文件夾/doc/中為您提供bash提示。為了在文件夾/my/path/to/document/使用xelatex.sh中編譯一些名為myDocument.tex的文檔,並使用文件夾/path/to/fonts/使用其他字體,您將在下面的命令中輸入類似於正常終端的命令(Linux), Docker QuickStart QuickStart終端(MAC OS)或Docker Toolbox Terminal (Windows)(Windows):
docker run -v /my/path/to/document/:/doc/ -v /path/to/fonts/:/usr/share/fonts/external/ -t -i thomasweise/texlive
xelatex.sh myDocument
exit
或者,您也可以做
docker run -v /my/path/to/document/:/doc/ -v /path/to/fonts/:/usr/share/fonts/external/ -t -i thomasweise/texlive xelatex.sh myDocument
第一個版本啟動了容器,並在命令提示符下將您留下。現在,您可以使用我們的xelatex.sh助手腳本編譯文檔,然後exit容器。在第二版中,您將命令直接提供給容器。容器執行它,然後直接退出。
兩者都應將編譯的PDF文件留在文件夾/my/path/to/document/中。如果您不使用我的預定義腳本進行構建(請參見下面的第3.1點),我建議在編譯後執行chmod 777 myDocument.pdf ,以確保可以在您的真實(Host)系統的用戶中訪問生產的文檔,而不僅僅是從Docker容器中訪問。如果您直接提供一個單個命令進行執行,則容器嘗試啟發您的pdf並正確設置其權限。
-v sourcepath:destpath選項是可選的。它們允許您從本地系統“安裝”文件夾( sourcepath )到Docker容器中,在該容器中作為路徑destpath可用。我們可以使用此方法允許在容器中運行的乳膠編譯器通過將其文件夾安裝到名為/doc/文件夾中,從而在您的乳膠文檔上工作。但是我們還可以將帶字體的外部文件夾安裝到Linux字體目錄結構中。為此,請始終將您的本地字體目錄安裝到/usr/share/fonts/external/ 。
如果您只想在不安裝外部文件夾的情況下使用(或偷窺)圖像,則可以通過以下方式運行此圖像:
docker run -t -i thomasweise/texlive
使用語法直接傳遞單個命令執行的另一個示例是基於USTC論文模板編制論文。可以使用make來編譯此類文檔,因此您可以做類似的事情
docker run -v /path/to/my/thesis/:/doc/ -v /path/to/fonts/:/usr/share/fonts/external/ -t -i thomasweise/texlive make
圖像具有以下組件:
TeX Live版本2015.2016ghostscript版本9.18你可以用它來構建
docker build -t thomasweise/texlive .
我們提供一組腳本(在/bin/ )中,可用於編譯乳膠文檔:
通常,乳膠編譯意味著調用乳膠編譯器程序,然後是bibtex,然後是編譯器,然後再調整編譯器,然後將各個編譯器輸出格式的一些轉換程序轉換為PDF。使用編譯器腳本,我們嘗試將這些調用凝結到一個程序調用中。
latex.sh <document>用乳膠(也可以bibtex)編譯乳膠<document>lualatex.sh <document>用lualatex(也可以bibtex)編譯乳膠<document>pdflatex.sh <document>用pdflatex編譯乳膠<document> (也做bibtex)xelatex.sh <document>用Xelatex編譯乳膠<document> (也做bibtex)mintex.sh <document> <compiler1> <compiler2> ...允許您調用上述編譯器腳本的任意選擇以產生最小的pdf 。例如,使用mintex.sh mydoc latex lualatex xelatex將使用latex.sh , lualatex.sh和xelatex.sh編譯mydoc.tex ,並保留最小的最小的pdf文件。我們還提供了一些用於使用PDF , PS和EPS文件的實用腳本。
eps2pdf.sh <document>將EPS文件<document>轉換為PDFfilterPdf.sh <document>將文檔(以PostScript/ PS , EPS或PDF格式)轉換為PDF ,並將文檔中使用的同樣多的字體包括在最終的PDF中。這允許從.ps文件<document>產生PDF ,該PDF應在盡可能多的計算機上正確顯示。sudo是偽sudo命令:在Docker容器中,我們不需要sudo 。但是,如果您只使用一個符合要求的命令來稱呼普通的sudo (沒有其他參數),則此腳本將模仿sudo 。通過什麼都不做。downscalePdf.sh <document> {resolution}通過縮小所有包含的圖像(指定分辨率),使PDF文檔較小。findNonASCIIChars.sh <document>在文檔中找到非ASCII字符。在.tex文檔中,此類字符可能會帶來問題。 此圖像均根據GNU通用公共許可證版本3,2007年6月29日,您可以在文件許可證中找到。許可證適用於構建圖像的方式,而圖像內部的軟件組件則在其各自的版權持有人選擇的相應許可下。
如果您有任何疑問或建議,請聯繫中國安河Hefei的Hefei University Applied優化研究所的Thomas Weise。