원래 경로에 관계없이 LaTeX 문서에서 호출한 모든 그래픽 파일을 하위 디렉터리에 복사하시겠습니까?

원래 경로에 관계없이 LaTeX 문서에서 호출한 모든 그래픽 파일을 하위 디렉터리에 복사하시겠습니까?

나는 라텍스가 호출한 모든 이미지 파일을 단일 디렉토리에 복사하는 쉬운(자동) 방법을 원합니다. 비슷한 문제가 여기에서 해결되었습니다.마스터 LaTeX 문서에서 사용되는 모든 외부 파일 목록을 생성하시겠습니까? 작동하려면 모든 파일이 tex 파일과 동일한 디렉터리에 있어야 한다는 점을 제외하면 @imriss가 제안한 솔루션이 마음에 듭니다. 내 이미지 파일 중 일부는 다른 곳에 있고 TEXINPUTS를 통해 액세스되며 이 기술로는 찾을 수 없습니다. 스냅샷으로 생성된 dep 파일에는 경로가 아닌 파일 이름만 포함되어 있기 때문입니다.

답변1

@muzimuzhi Z의 의견과 질문에 대한 @imriss의 답변 작성마스터 LaTeX 문서에서 사용되는 모든 외부 파일 목록을 생성하시겠습니까?img, 파일 확장자 선택에 따라 라텍스 문서에서 사용하는 모든 외부 파일을 디렉토리에 복사하는 방법이 있습니다 .

라텍스 파일 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

관련 정보