私は、LaTeX によって呼び出されるすべての画像ファイルを単一のディレクトリにコピーする簡単な (自動的な) 方法を望んでいます。同様の問題がここで取り上げられています:マスター LaTeX ドキュメントで使用されるすべての外部ファイルのリストを作成しますか? @imriss が提案した解決策も気に入っていますが、機能するにはすべてのファイルが tex ファイルと同じディレクトリに存在する必要があります。私の画像ファイルの一部は別の場所にあり、TEXINPUTS を介してアクセスされますが、スナップショットによって生成された dep ファイルにはファイル名のみが含まれており、パスは含まれていないため、この手法では見つかりません。
答え1
@muzimuzhi Z のコメントと @imriss の質問への回答の構築マスター LaTeX ドキュメントで使用されるすべての外部ファイルのリストを作成しますか?img
ここでは、ファイル拡張子の選択に基づいて、LaTeX ドキュメントで使用されるすべての外部ファイルをディレクトリにコピーする方法を示します。
LaTeXファイルfile.tex
タイプから始める
pdflatex -recover file
これにより、 が作成されます。次の Python コードを含むfile.fls
ファイル ( など) を作成します。copy_fig_fls.py
"""Copy figures used by document."""
import os
import shutil
FLS_FILE = 'file.fls'
TARGET_DIR = 'img/'
EXTENSIONS = ['pdf', 'png', 'jpg']
def copy_image_files():
with open(FLS_FILE, 'r') as f:
for line in f:
if 'INPUT' not in line:
continue
source = line.split(' ')[1].rstrip()
_, e = os.path.splitext(source)
e = e.lower()[1:]
if e in EXTENSIONS:
shutil.copy(source, TARGET_DIR)
if __name__ == '__main__':
copy_image_files()
入力して実行します
python3 copy_fig_fls.py
元の画像ファイルが現在のディレクトリにあるか他の場所にあるかに関係なく、変数file.tex
にリストされている拡張子を持つによって使用されるすべてのファイルをディレクトリEXTENSIONS
にコピーします。img