次のフォルダー構造があります
1st-grade-math-class/
common/
mystyle.sty
mysubstyle.sty
fonts/
font1.ttf
font2.ttf
font3.ttf
week01/
handout.tex
image1.pdf
image2.pdf
week02/
handout.tex
image1.pdf
image2.pdf
...
week13/
handout.tex
output/
[empty]
そして、次のことを行うために、最善の方法で Makefile を作成したいと思います。
TEXINPUTSに共通ディレクトリを適切に含めるようにしてください
handout.texを PDF にコンパイルし(pdflatex または xelatex を使用)、出力ディレクトリにweek01-handout-student.pdfとして配置します。
ファイルの先頭にLaTeXの行を追加して(フラグを設定する)handout.texをPDFにコンパイルし、出力ディレクトリにweek01 -handout-teacher.pdfとして配置します
すべてをクリーンアップします (ログ、aux などのファイル)
基本的な Makefile/bash スクリプトをすべてのサブディレクトリに手動で複製し、それぞれを for ループで 1 つずつ呼び出す以外の方法でこれを行う方法を知っているかどうかはわかりません。
理想的には、ルート ディレクトリに単一の Makefile を使用して、このプロセスを構築する方法について助けていただければ幸いです。ありがとう。
更新:誰かが私の現在の使用法よりも良い提案を持っている場合に備えて、意図的に LaTeX のコンパイル方法について詳細を提供したくありませんでした。今私はLatexmkを使用しています(これはすでにLaTeXのmakeのようなラッパーです):
- latexmk -pdf file.texは file.pdfを生成します
- コード行を追加するには、単純な echo "line of code" > temp.tex と cat handout.tex >> temp.tex を実行し、次に同じ latexmk コマンドを実行します
- ディレクトリ内のlatexmk -c file.texは、file.texのコンパイルに使用されたすべての一時ファイルを消去します。
- TEXINPUTS は TeX パス変数で、TeX が (そのパスで) スタイル ファイルを見つけられるようにします。 TEXINPUTS=full-path-to/common を実行し、何かをコンパイルする前に TEXINPUTS をエクスポートします。
誰かより良い提案があれば、私は喜んで引き受けます。