¿Cuál es la forma correcta de importar archivos dentro de subarchivos?

¿Cuál es la forma correcta de importar archivos dentro de subarchivos?

Elsubfiles documentosexplica que maneja problemas de ruta cuando los archivos principales y subarchivos están en directorios diferentes y los subarchivos contienen rutas relativas a sus propios directorios usando el \importpaquete.Apareceque esto significa subfilesse utiliza \importal agregar el contenido de los archivos pasados ​​a \subfile. Por ejemplo, \subfile{ch/ch1.tex}es aproximadamente equivalente a modificar el preámbulo de ch1.texluego llamar a \import{ch/ch1.tex}. Lo que no está claro es cómo hacerlo correctamente.importaciones de nidos, es decir, importar dentro de subarchivos importados.

A continuación proporciono un ejemplo de estructura de proyecto/directorio y dos archivos de ejemplo asumiendo que main.tex debería importar ch1.tex y ch1.tex debería importar fig.png y text.txt.

 +-- main.tex
 +-- chapters
     |
     +-- ch1.tex
     +-- content
         |
         +-- text1.txt
         +-- fig1.png
%% main.tex
\documentclass{book}
\usepackage{graphicx}
\usepackage{subfiles}

\begin{document}
    \subfile{chapters/ch1.tex} % \imports ch1.tex
\end{document}
%% ch1.tex
\documentclass[../main.tex]{subfiles}
\begin{document}
    \import{content}{text.txt}        % adds some text - note use of \import
    \includegraphics{content/fig.png} % adds a figure
\end{document}

Cuando compilo los archivos anteriores, producen el resultado deseado. Sin embargo, como \importse usa en la \subfile{chapters/ch1.tex}llamada en main.tex pero luego estambiénusadodentroch1.tex en la \import{content}{text.txt}llamada. Elimport documentosindica \subimportque debe usarse para este último. Como \subimport requires a path relative to the currently imported file, the call should be\subimport{content/}{text1.txt}`.

¿Debería utilizarse siempre la importación dentro de subarchivos subimport? Si es así, no entiendo por qué el intercambio \importproduce \subimportlos mismos resultados cuando presumiblemente deberían apuntar a directorios diferentes como en los ejemplos de los importdocumentos.

Respuesta1

Puedes usarlo \inputdirectamente.

│  main.tex
└─chapters
    │  ch1.tex
    └─content
            fig1.png
            text1.txt

main.tex

\documentclass{book}
\usepackage{graphicx}
\graphicspath{{chapters/content/}}
\makeatletter
\newcommand{\input@path}{{chapters/}{chapters/content/}}
\makeatother
\begin{document}
aaa
\input{ch1.tex}
bbb
\end{document}

ch1.tex

ccc
\input{text1.txt}
\includegraphics[width=3cm]{fig1.png}
ddd

text1.txt

eee

ingrese la descripción de la imagen aquí

información relacionada