นี่คือการยกเครื่องครั้งสำคัญของภาพ thomasWeise/texlive ตอนนี้มันเป็นตาม thomasweise/docker-pandoc ซึ่งในทางกลับกันก็ขึ้นอยู่กับ thomasweise/docker-texlive-full ซึ่งหมายความว่ามันใหญ่ขึ้น แต่ตอนนี้มันมีการเปิดตัวใหม่ล่าสุดของ pandoc , TeX Live และรวมถึงตัวกรอง Pandoc มากกว่าเดิม สำหรับคอนเทนเนอร์เวอร์ชันดั้งเดิมโปรดดูที่แท็ก 1.0.0
นี่คือภาพนักเทียบท่าที่มีการติดตั้ง TeX Live (เวอร์ชัน 2015.2016) พร้อมสคริปต์สนับสนุนหลายรายการเพื่อลดการรวบรวมไฟล์ LaTex ไปยัง PDF เป้าหมายคือการจัดหาสภาพแวดล้อมแบบครบวงจรสำหรับการรวบรวมเอกสาร LATEX ด้วยพฤติกรรมที่คาดเดาได้และทำซ้ำได้ในขณะที่ลดความพยายามที่จำเป็นในการติดตั้งและบำรุงรักษาการติดตั้ง LATEX ภาพนี้ได้รับการออกแบบให้เหมาะอย่างยิ่งสำหรับผู้ชมชาวจีนและมาพร้อมกับแบบอักษรจีนแบบเปิดที่ติดตั้งไว้ล่วงหน้าหลายแบบ
นักเทียบท่าสามารถติดตั้งตามแนวทางด้านล่าง:
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/ ต้องถูกแทนที่ด้วยเส้นทางไปยังโฟลเดอร์ที่มีเอกสาร LaTex ที่คุณต้องการรวบรวม โฟลเดอร์นี้จะพร้อมใช้งานเป็นโฟลเดอร์ /doc/ ภายในคอนเทนเนอร์ หากคุณใช้อิมเมจโดยไม่มีพารามิเตอร์คำสั่ง (ดูด้านล่าง) คุณจะได้รับพรอมต์คำสั่ง bash ภายใน /doc/ โฟลเดอร์นี้-v /path/to/fonts/:/usr/share/fonts/external/ พารามิเตอร์ ที่นี่ /path/to/fonts/ ต้องถูกแทนที่ด้วยเส้นทางไปยังโฟลเดอร์ที่มีแบบอักษรเหล่านี้ หากคุณไม่ต้องการฟอนต์เพิ่มเติมคุณสามารถปล่อยทั้งหมด -v /path/to/fonts/:/usr/share/fonts/external/ awayCOMMAND ARG1 ARG2... ในบรรทัดคำสั่งด้านบนหมายถึง หากคุณระบุคำสั่งดังกล่าวคอนเทนเนอร์จะเริ่มต้นดำเนินการตามคำสั่งแล้วปิดตัวลง หากคุณไม่ได้ให้คำสั่งดังกล่าวคอนเทนเนอร์จะเริ่มต้นและให้พรอมต์ทุบตีในโฟลเดอร์ /doc/ สำหรับการรวบรวมเอกสารบางอย่างที่ชื่อ myDocument.tex ในโฟลเดอร์ /my/path/to/document/ ด้วย xelatex.sh และใช้แบบอักษรเพิ่มเติมในโฟลเดอร์ /path/to/fonts/ คุณจะพิมพ์บางอย่างเช่นคำสั่งด้าน ล่าง ลงในเทอ ร์ มินัลปกติ (Linux)
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 หลังจากการรวบรวมเพื่อให้แน่ใจว่าเอกสารที่ผลิตสามารถเข้าถึงได้ภายในผู้ใช้ระบบจริง (โฮสต์) ของคุณไม่ใช่แค่จากคอนเทนเนอร์ Docker หากคุณให้คำสั่งเดียวโดยตรงสำหรับการดำเนินการคอนเทนเนอร์พยายามค้นหา pdf ที่ผลิตของคุณและตั้งค่าสิทธิ์อย่างถูกต้อง
ตัวเลือก -v sourcepath:destpath เป็นตัวเลือก พวกเขาอนุญาตให้คุณ "ติดตั้ง" โฟลเดอร์ ( sourcepath ) จากระบบท้องถิ่นของคุณไปยังคอนเทนเนอร์ Docker ซึ่งจะมีให้เป็น Path destpath เราสามารถใช้วิธีนี้เพื่ออนุญาตให้คอมไพเลอร์ LaTex ทำงานภายในคอนเทนเนอร์เพื่อทำงานกับเอกสาร LaTex ของคุณโดยการติดตั้งโฟลเดอร์ลงในโฟลเดอร์ชื่อ /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 Version 2015.2016ghostscript เวอร์ชัน 9.18คุณสามารถสร้างมันด้วย
docker build -t thomasweise/texlive .
เราจัดเตรียมชุดสคริปต์ (ใน /bin/ ) ที่สามารถใช้สำหรับรวบรวมเอกสาร LaTex:
โดยปกติแล้วการรวบรวม LaTex หมายถึงการเรียกโปรแกรม LaTex Compiler จากนั้น BIBTEX จากนั้นคอมไพเลอร์อีกครั้งและจากนั้นโปรแกรมการแปลงจากรูปแบบเอาต์พุตคอมไพเลอร์ที่เกี่ยวข้องเป็น PDF ด้วยสคริปต์คอมไพเลอร์เราพยายามควบแน่นการโทรเหล่านี้ลงในการเรียกใช้โปรแกรมเดียว
latex.sh <document> รวบรวม laTex <document> ด้วย latex (ยังทำ bibtex)lualatex.sh <document> รวบรวม laTex <document> ด้วย lualatex (ยังทำ bibtex ด้วย)pdflatex.sh <document> รวบรวม laTex <document> ด้วย pdflatex (ยังทำ bibtex ด้วย)xelatex.sh <document> รวบรวม laTex <document> ด้วย xelatex (ยังทำ bibtex ด้วย)mintex.sh <document> <compiler1> <compiler2> ... ช่วยให้คุณสามารถเรียกใช้การเลือกสคริปต์คอมไพเลอร์ข้างต้นเพื่อสร้าง pdf ที่เล็กที่สุด ตัวอย่างเช่นการทำ mintex.sh mydoc latex lualatex xelatex จะรวบรวม mydoc.tex ด้วย latex.sh , lualatex.sh และ xelatex.sh และเก็บไฟล์ pdf ที่เล็กที่สุด นอกจากนี้เรายังมีสคริปต์ยูทิลิตี้บางอย่างสำหรับการทำงานกับไฟล์ PDF , PS และ EPS
eps2pdf.sh <document> แปลงไฟล์ EPS <document> เป็น PDFfilterPdf.sh <document> แปลงเอกสาร (ในรูปแบบ Postscript/ PS , EPS หรือ PDF ) เป็น PDF และรวมตัวอักษรจำนวนมากที่ใช้ในเอกสารลงใน PDF สุดท้าย สิ่งนี้ช่วยให้สามารถสร้าง PDF จากไฟล์. .ps <document> เอกสาร> ซึ่งควรแสดงอย่างถูกต้องบนคอมพิวเตอร์ให้มากที่สุดเท่าที่จะทำได้sudo เป็นคำสั่งหลอก- sudo : ภายในคอนเทนเนอร์ Docker เราไม่ต้องการ sudo อย่างไรก็ตามหากคุณมีสคริปต์หรือสิ่งที่เรียกว่า sudo ธรรมดา (โดยไม่มีข้อโต้แย้งเพิ่มเติม) เพียงแค่คำสั่งที่ต้องใช้คำสั่งสคริปต์นี้จะเลียนแบบ sudo โดยไม่ทำอะไรเลยdownscalePdf.sh <document> {resolution} ทำให้เอกสาร PDF มีขนาดเล็กลงโดยการลดขนาดรูปภาพทั้งหมดรวม (ไปยังความละเอียดที่ระบุ)findNonASCIIChars.sh <document> ค้นหาอักขระที่ไม่ใช่ ascii ในเอกสาร ในเอกสาร .tex อักขระดังกล่าวอาจก่อให้เกิดปัญหา ภาพนี้ได้รับใบอนุญาตภายใต้ใบอนุญาตสาธารณะ GNU ทั่วไปเวอร์ชัน 3, 29 มิถุนายน 2550 ซึ่งคุณสามารถค้นหาได้ใน File License.md ใบอนุญาตใช้กับวิธีการสร้างภาพในขณะที่ส่วนประกอบซอฟต์แวร์ภายในภาพอยู่ภายใต้ใบอนุญาตที่เลือกโดยผู้ถือลิขสิทธิ์ที่เกี่ยวข้อง
หากคุณมีคำถามหรือข้อเสนอแนะใด ๆ โปรดติดต่อ Thomas Weise ของสถาบันการเพิ่มประสิทธิภาพของมหาวิทยาลัย Hefei ใน Hefei, Anhui, China