¿Copiar todos los archivos gráficos llamados por un documento LaTeX en un subdirectorio, independientemente de su ruta original?

¿Copiar todos los archivos gráficos llamados por un documento LaTeX en un subdirectorio, independientemente de su ruta original?

Quiero una manera fácil (automática) de copiar todos los archivos de imagen llamados por látex en un único directorio. Aquí se abordó un problema similar:¿Crear una lista de todos los archivos externos utilizados por el documento maestro LaTeX? y me gusta la solución propuesta por @imriss excepto que requiere que todos los archivos residan en el mismo directorio que el archivo tex para funcionar. Algunos de mis archivos de imagen residen en otro lugar y se accede a ellos a través de TEXINPUTS y esta técnica no los encuentra porque el archivo dep producido por la instantánea solo contiene los nombres de los archivos, no su ruta.

Respuesta1

Construcción del comentario de @muzimuzhi Z y la respuesta de @imriss a la pregunta¿Crear una lista de todos los archivos externos utilizados por el documento maestro LaTeX?, esta es una forma de copiar todos los archivos externos utilizados por un documento de látex al directorio img, según una selección de extensiones de archivo.

Comenzando con un file.textipo de archivo de látex

pdflatex -recover file

que crea file.fls. Cree un archivo, digamos copy_fig_fls.py, que contenga el siguiente código 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()

Ejecútelo escribiendo

python3 copy_fig_fls.py

Copiará todos los archivos utilizados file.texcon las extensiones enumeradas en la EXTENSIONSvariable en el imgdirectorio, independientemente de dónde resida el archivo de imagen original, en el directorio actual o en otro lugar.

información relacionada