これは、 thomasWeise/texliveイメージの大きなオーバーホールです。現在、 thomasweise/docker-pandocに基づいています。これは、 thomasweise/docker-texlive-fullに基づいています。これは、それが大きくなったことを意味しますが、現在ではpandoc 、 TeX Liveの最新リリースを備えており、以前よりも多くのPandocフィルターが含まれています。コンテナの元のバージョンについては、タグ1.0.0を参照してください。
これは、PDFへのラテックスファイルのコンパイルを緩和するためのいくつかのサポートスクリプトを備えたTeX Liveインストール(バージョン2015.2016)を含むDocker画像です。目標は、ラテックスの設置をインストールして維持するために必要な努力を減らしながら、予測可能で再現可能な動作を備えたラテックスドキュメントをコンパイルするための統一された環境を提供することです。この画像は、中国の視聴者に特に適しているように設計されており、いくつかの事前にインストールされたオープン中国のフォントが付属しています。
Dockerは、以下のガイドラインに従ってインストールできます。
curl -fsSL http://get.docker.com/ | shを実行できますコマンドラインでcurl -fsSL http://get.docker.com/ | shとすべてが自動的に行われます( curlがインストールされている場合、通常はそうです)、以下では、実行中にこの画像に渡すことができるさまざまなパラメーターについて説明します。 Dockerをインストールした場合、追加のインストールを実行する必要はありません。最初にdocker run -t -i thomasweise/texliveなど(以下を参照)を実行すると、Docker Hubから画像が自動的にダウンロードされ、インストールされます。
この画像には2つの基本的な使用ケースがあります。
さらに、コンテナにデータを提供する方法は2つあります。
コマンドの一般的な形式は次のとおりです。
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/として利用可能になります。コマンドパラメーターなしで画像を使用すると(以下を参照)、この/doc/フォルダー内にbashコマンドプロンプトが表示されます。-v /path/to/fonts/:/usr/share/fonts/external/ parameterを使用できます。ここで、 /path/to/fonts/これらのフォントを含むフォルダーへのパスに置き換える必要があります。追加のフォントが必要ない場合は、 -v /path/to/fonts/:/usr/share/fonts/external/ awayを残すことができます。COMMAND ARG1 ARG2...そのようなコマンドを指定すると、コンテナが起動し、コマンドを実行してからシャットダウンします。そのようなコマンドを提供しない場合、コンテナは起動し、フォルダー/doc/でバッシュプロンプトを提供します。フォルダー/my/path/to/document/ with xelatex.shでmyDocument.texという名前のドキュメントをコンパイルするには、フォルダー/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 。 2番目のバージョンでは、コンテナにコマンドを直接提供します。コンテナはそれを実行し、直接出ます。
両方とも、コンパイルされたPDFファイルをフォルダー/my/path/to/document/に残しておく必要があります。構築に事前に定義されたスクリプトを使用していない場合(ポイント3.1以下を参照)、コンピレーション後にchmod 777 myDocument.pdf実行することをお勧めします。実行のために単一のコマンドを直接提供する場合、コンテナは生成されたpdfヒューリスティックに見つけ、その権限を正しく設定しようとします。
-v sourcepath:destpathオプションはオプションです。これらにより、ローカルシステムからフォルダー( sourcepath )を「SourcePath)をDockerコンテナに「マウント」することができ、Path 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/ )を提供します。
通常、ラテックスコンパイルとは、LaTexコンパイラプログラム、次にBIBTEX、次にコンパイラを再度呼び出し、次にそれぞれのコンパイラ出力形式からPDFへのコンバージョンプログラムを呼び出すことを意味します。コンパイラスクリプトを使用すると、これらの呼び出しを単一のプログラムの呼び出しに凝縮しようとします。
latex.sh <document> latex <document>をLATEXでコンパイルします(bibtexもdo)lualatex.sh <document> latex <document> lualatex(do bibtex)でコンパイルするpdflatex.sh <document> pdflatex(do bibtex)を使用してlatex <document>をコンパイルしますxelatex.sh <document> laTex <document> xelatex(do 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>をPDFに変換しますfilterPdf.sh <document>ドキュメント(postscript/ PS 、 EPS 、またはPDF形式のいずれか)をPDFに変換し、ドキュメント内で使用される多くのフォントを最終的なPDFに含めます。これにより、 .psファイル<document>からPDFを生成できます。これは、できるだけ多くのコンピューターに正しく表示する必要があります。sudoは擬似sudoコマンドです:dockerコンテナの内部では、 sudoは必要ありません。ただし、スクリプトなどがある場合は、(追加の議論なしで)単純なsudoを使用して(追加の引数なし)ものを持っている場合、このスクリプトはsudoをエミュレートします。何もしないことによって。downscalePdf.sh <document> {resolution}すべての含まれた画像を(指定された解像度に)ダウンスケーリングすることにより、PDFドキュメントを小さくします。findNonASCIIChars.sh <document>ドキュメント内の非ASCII文字を見つけます。 .texドキュメントでは、そのような文字が問題を引き起こす可能性があります。 この画像は、2007年6月29日のGNU General Public Licenseバージョン3に基づいてライセンスされています。これは、File License.mdで見つけることができます。ライセンスは、画像の構築方法に適用されますが、画像内のソフトウェアコンポーネントは、それぞれの著作権所有者によって選択されたそれぞれのライセンスの下にあります。
ご質問や提案がある場合は、中国のアンフイにあるHefei大学のHefei Universityの応用最適化研究所のThomas Weiseにお問い合わせください。