
我想要一種簡單(自動)的方法來將 Latex 呼叫的所有圖像檔案複製到單一目錄中。這裡解決了類似的問題:建立主 LaTeX 文檔使用的所有外部文件的清單? 我喜歡 @imriss 提出的解決方案,除了它要求所有文件都位於與 tex 檔相同的目錄中才能運作。我的一些映像檔駐留在其他地方,並透過 TEXINPUTS 訪問,並且無法透過此技術找到,因為快照生成的 dep 檔案僅包含檔案的名稱,而不包含它們的路徑。
答案1
@muzimuzhi Z 的評論和 @imriss 對問題的回答的構建建立主 LaTeX 文檔使用的所有外部文件的清單?img
,這是根據檔案副檔名的選擇將 Latex 文件使用的所有外部檔案複製到目錄的方法。
從 Latex 檔案file.tex
類型開始
pdflatex -recover file
這創造了file.fls
.建立一個文件,例如copy_fig_fls.py
,包含以下 python 程式碼:
"""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
目錄中,無論原始影像檔案位於目前目錄還是其他位置。