LaTeXからシェルスクリプトを実行する方法は?



How Execute Shell Script From Latex



解決:

私は次のようなことをします(Romanが提案したことに部分的に動機付けられています):LaTeXファイルを

 documentclass {article}  begin {document}  input {scriptoutput.tex}  end {document}

ファイルを生成しますscriptoutput.texを使用して



/usr/local/bin/my-shell-script.sh> scriptoutput.tex

必要に応じて自動的に実行したい場合は、これをmakefileにエンコードできます。または、TeXを使用することもできます write18コマンド、

 documentclass {article}  immediate  write18 {/ usr / local / bin / my-shell-script.sh> scriptoutput.tex}  begin {document}  input {scriptoutput.tex}  end {document}

ドキュメントをコンパイルするたびに、シェルスクリプトが自動的に実行されると思います。 NS immediateは、出力のページが書き込まれるまで待つのではなく、LaTeXがコマンドに遭遇したときにスクリプトが実行されるようにするために必要です。 (出荷ルーチンの詳細については、この質問を参照してください。)




デビッドが指摘したように、あなたは使用することができます write18を使用して外部プログラムを呼び出し、次に input結果の出力ファイル。しかし、あなたはおそらく使いたいでしょう immediate write18を実行して、スクリプトを呼び出す前にスクリプトが実行されていることを確認します。入力。

または、新しいバージョンのpdf(la)tex(1.40以降)を使用している場合は、パイプ入力コマンドを使用して、出力をドキュメントに直接パイプできます。

 documentclass {article}  begin {document}  input '/ usr / local / bin / my-shell-script.sh'  end {document}

どちらの方法でも、外部プログラム呼び出しを有効にする必要があります。 TeXliveディストリビューションの場合、ラテックスを呼び出す必要があります-shell-escapeオプション、またはMikTeXの場合、オプションは-enable-write18。




TeXでこれを行うことができます。このペーパー(PDF)は、TeX内でウイルスを作成して実行する方法を示しています。同じ原則がシェルスクリプトの実行にも当てはまります。ただし、私の意見では、LaTeXを実行する前に実行して結果を挿入するMakefileを作成する方が実用的です。