¿Cómo cambiar rápidamente el archivo .tex pasando argumentos al nombre del archivo?

¿Cómo cambiar rápidamente el archivo .tex pasando argumentos al nombre del archivo?

Por ejemplo

Tengo dos proyectos TeX con una estructura de nombre de archivo similar:

ingrese la descripción de la imagen aquí

El master.tex tiene una estructura como esta:

\input{preamble.tex} % <- \bibliography{Projekt_A_Literature} in preamble

% ...

\begin{document}

% ...

    \include{chapter/Projekt_A_cp1.tex}
    \include{chapter/Projket_A_cp2.tex}
    \include{chapter/Projekt_A_cp3.tex}

% ...

\end{document}

El propósito es: puedo cambiar fácil y rápidamente el grupo de archivos de capítulos para ingresar.

\include{chpater/Project_A_cp1.tex}        \include{chpater/Project_B_cp1.tex}
\include{chpater/Project_A_cp2.tex}  ==>   \include{chpater/Project_B_cp2.tex} 
\include{chapter/Project_A_cp3.tex}        \include{chpater/Project_B_cp3.tex}

un enfoque simple pero no elegante es:

\newcommand{\prjindex}{A} $ or \def\prjindex{A}
%...
\begin{document}
  \include{chpater/Project_\prjindex_cp1.tex}
  \include{chpater/Project_\prjindex_cp2.tex}
  \include{chpater/Project_\prjindex_cp3.tex}    
\end{document}

la pregunta de esta solución es, si no compilo en el archivo maestro TeX, da errores como

Secuencia de control indefinida....{Project_\prjindex_Literature.tex}.

Así que vine aquí en busca de una solución más elegante.

Respuesta1

Parece que necesita un "mecanismo" para la detección automática \prjindexen situaciones en las que no se proporciona una definición \prjindex"manualmente".


Observaciones preliminares:

Generalmentela expansión de la primitiva \jobnameforma el nombre de ese archivo (sin extensión) que se utilizó para iniciar la compilación.

Por ejemplo, si compila un proyecto cuyo archivo principal se realiza testfile.texa través de la línea de comandos
latex testfile.tex
, la primitiva \jobnamese expandirá a la frase testfile.
Los tokens de caracteres en las frases entregadas por \jobnamesiempre serán del código de categoría 12 (otros), mientras que los espacios siempre serán del código de categoría 10 (espacio).

La frase testfileque proviene de expandir \jobnamese usará para

  • creando el archivo .log: El archivo .log se llamará testfile.log.
  • creando el archivo .aux principal: que se llamará testfile.aux.
  • creando el archivo .toc que contiene datos para la tabla de contenido: se llamará testfile.toc.
  • creando el archivo .lof que contiene datos para la lista de figuras: Eso se llamará testfile.lof.
  • creando el archivo .lot que contiene datos para la lista de tablas: se llamará testfile.lot.
  • etc.

Pero con la mayoría de las distribuciones TeX actuales puedes tener (La)TeXdesviarse de la forma habitual de manejar las cosas:

Con la mayoría de las distribuciones TeX actuales, en la línea de comandos puede proporcionar una opción de línea de comandos (la ‑‑jobnameopción -) que le permite cambiar la frase que \jobnamese entregará.

Por ejemplo, si compila un proyecto cuyo archivo principal se realiza testfile.texa través de la línea de comandos
latex --jobname=foobar testfile.tex
, la primitiva \jobnamese expandirá a la frase foobar.

En este caso se utilizará la frase foobarque proviene de expandir para\jobname

  • creando el archivo .log: El archivo .log se llamará foobar.log.
  • creando el archivo .aux principal: que se llamará foobar.aux.
  • creando el archivo .toc que contiene datos para la tabla de contenido: se llamará foobar.toc.
  • creando el archivo .lof que contiene datos para la lista de figuras: Eso se llamará foobar.lof.
  • creando el archivo .lot que contiene datos para la lista de tablas: se llamará foobar.lot.
  • etc.

Con mi sugerencia a continuación, es un requisito que LaTeX maneje las cosas.en elmanera usual, es decir, las cosas deben compilarsesinproporcionando algunos‑‑jobname-opción.

Por lo tanto, mi sugerencia a continuación no es adecuada para personas que usan plataformas LaTeX/editores TeX/interfaces de usuario (en línea) donde, bajo el capó, las cosas están configuradas para hacer uso de la ‑‑jobnameopción -.


En caso

  1. los nombres de todos aquellos archivos durante cuya compilación la definición de \prjindexserá "autodetectada" (ya que no se definirá "a mano") son de patrón , ambos denotan el proyecto y no están vacíos ni contienen guiones bajos ( ).Projekt_⟨#1⟩_⟨#2⟩.tex⟨#1⟩_
, y

  1. llamar a latex para archivos de "compilación independiente" durante cuya compilación \prjindexsiempre se realiza la definición de "detección automática"sininvocando la ‑‑jobnameopción (lo que implica que la expansión de la \jobnameprimitiva forma el nombre de ese archivo (sin extensión) que se usó para iniciar la compilación)
, puedo ofrecer una macro \GetPrjindexFromJobnameIfUndefinedque actúa de la siguiente manera:

En caso de que la macro \prjindexya esté definida, no hace nada.

En caso de que la macro \prjindexno esté definida, comprueba si la expansión de la \jobname-primitiva es de patrón . Si no sigue ese patrón, se activará un mensaje de error. Si es de ese patrón, se examinará si estará vacío. Si este es el caso, se activará un mensaje de error. Si este no es el caso, la macro se definirá para expandirse a .Projekt_⟨#1⟩_⟨#2⟩⟨#1⟩\prjindex⟨#1⟩

No puedo tomar una decisión sobre si esa rutina es útil para usted porque no reveló con demasiado detalle cómo está organizada esa parte de la estructura de archivos de su proyecto, lo que hace posible compilar los archivos individuales, ambos "independientes". y cuando se invoca desde un archivo tex maestro mediante o .Projekt_⟨#1⟩_⟨#2⟩.tex\input\include

En caso de que todos los archivos del proyecto compartan de alguna manera el mismo preámbulo, probablemente pueda hacer que esta rutina esté disponible para todos los archivos del proyecto a través de ese preámbulo.

Probablemente puedas incluir esa rutina (y la llamada a ella) en tu preamble.tex.Esa rutina no hace nada en caso de que \prjindexya esté definida.
Por lo tanto

  • dentro de master.texti puedes definir\prjindex antesingresando preamble.tex.
  • el escenario de compilación independiente de uno de sus archivos conduce a ingresar while aún no está definido, lo que a su vez conduce a la rutina de "detección automática" y definición al examinar el resultado de la expansión de .Projekt_⟨#1⟩_⟨#2⟩.tex\preamble.tex\prjindex\GetPrjindexFromJobnameIfUndefined\prjindex\jobname

\documentclass{article}

%%========Code for \GetPrjindexFromJobnameIfUndefined=========
\begingroup
\makeatletter
\def\prjprephrase{Projekt_}%
\def\prjpostphrase{_}%
% \jobname delivers everything but the space (which will be of catcode 10) 
% with catcode 12(other). Therefore "sanitizing" is needed for turning
% everything but the space into catcode 12(other):
\@onelevel@sanitize\prjprephrase
\@onelevel@sanitize\prjpostphrase
\newcommand\GetPrjindexFromJobnameIfUndefined[2]{%
  \endgroup
  \newcommand\GetPrjindexFromJobnameIfUndefined{%
    \@ifundefined{prjindex}{%
      \expandafter\GetPrjindexCheckPattern\jobname$#1#2$&%
    }{}%
  }%
  \@ifdefinable\GetPrjindexCheckPattern{%
    \def\GetPrjindexCheckPattern##1#1##2#2##3$##4&{%
      \GetPrjindexPatternfork
      &##4&{\expandafter\GetPrjindexExtractfrompattern\jobname$}%
      &#1#2$&{%
        \GenericError{(\string\prjindex)\space}{%
          Error on input line \the \inputlineno:\MessageBreak
          \string\GetPrjindexFromJobnameIfUndefined\space cannot extract the\MessageBreak
          \string\prjindex\space from \string\jobname's expansion.\MessageBreak
          (\string\GetPrjindexFromJobnameIfUndefined\space is defined\MessageBreak
           \space somewhere in this document.)\@gobble
        }{Have a look at the comments in this document.}%
        {%
          \string\GetPrjindexFromJobnameIfUndefined\space can extract the \string\prjindex\MessageBreak
          from \string\jobname's expansion only in case \string\jobname's expansion is\MessageBreak
          of pattern\MessageBreak
          \@spaces #1\string####1#2\string####2\MessageBreak
          while \string####1 is not empty.\MessageBreak
          If this is the case, the expansion of \string\prjindex\space will be \string####1.\MessageBreak
          \string####1 will not contain underscores (\string_).\MessageBreak
          \string####2 can contain underscores.\MessageBreak
        }%
      }%
      &&&&%
    }%
  }%
  \@ifdefinable\GetPrjindexPatternfork{%
    \def\GetPrjindexPatternfork##1&#1#2$&##2##3&&&&{##2}%
  }%
  \@ifdefinable\GetPrjindexExtractfrompattern{%
    \def\GetPrjindexExtractfrompattern#1##1#2##2${%
      \ifx\relax##1\relax
        \expandafter\@firstoftwo
      \else
        \expandafter\@secondoftwo
      \fi
      {%
        \GenericError{(\string\prjindex)\space}{%
          Error on input line \the \inputlineno:\MessageBreak
          \string\prjindex\space is empty.\MessageBreak
          (\string\GetPrjindexFromJobnameIfUndefined\space is defined\MessageBreak
           \space somewhere in this document.)\@gobble
        }{Have a look at the comments in this document.}%
        {%
          \string\GetPrjindexFromJobnameIfUndefined\space can extract the \string\prjindex\MessageBreak
          from \string\jobname's expansion only in case \string\jobname's expansion is\MessageBreak
          of pattern\MessageBreak
          \@spaces #1\string####1#2\string####2\MessageBreak
          while \string####1 is not empty.\MessageBreak
          If this is the case, the expansion of \string\prjindex\space will be \string####1.\MessageBreak
          \string####1 will not contain underscores (\string_).\MessageBreak
          \string####2 can contain underscores.\MessageBreak
        }%
      }%
      {\newcommand*\prjindex{##1}}%
    }%
  }%
}%
\expandafter\expandafter\expandafter\GetPrjindexFromJobnameIfUndefined
\expandafter\expandafter\expandafter{\expandafter\prjprephrase\expandafter}%
\expandafter{\prjpostphrase}%
%%=====End of code for \GetPrjindexFromJobnameIfUndefined=====

\GetPrjindexFromJobnameIfUndefined

\show\prjindex

\begin{document}
Some document
\end{document}

Por cierto: para probar la rutina guardé el ejemplo anterior test.texy lo compilé, invocando la ‑‑jobnameopción -con diferentes valores.

La compilación mediante el comando latex test.texprodujo el resultado esperado:

! Error on input line 80:
(\prjindex) \GetPrjindexFromJobnameIfUndefined cannot extract the
(\prjindex) \prjindex from \jobname's expansion.
(\prjindex) (\GetPrjindexFromJobnameIfUndefined is defined
(\prjindex)  somewhere in this document.)

Have a look at the comments in this document.
Type  H <return>  for immediate help.
 ...                                              

l.80 \GetPrjindexFromJobnameIfUndefined

? 
> \prjindex=undefined.
l.82 \show\prjindex

Esto era de esperarse ya que en este caso \jobnamese amplió a testlo cual no es de patrón .
Projekt_⟨#1⟩_⟨#2⟩

La compilación mediante el comando latex ‑‑jobname=Projekt_A_4  test.texprodujo el resultado esperado:

\prjindex=macro:
->A.
l.82 \show\prjindex

(Obtendría lo mismo cuando el ejemplo se guardara Projekt_A_4.texy compilara mediante el comando latex Projekt_A_4.tex).

La compilación mediante el comando latex ‑‑jobname=Projekt_B_4 test.texprodujo el resultado esperado:

\prjindex=macro:
->B.
l.82 \show\prjindex

(Obtendría lo mismo cuando el ejemplo se guardara Projekt_B_4.texy compilara mediante el comando latex Projekt_B_4.tex).

La compilación mediante el comando latex ‑‑jobname=Projekt_JohannGambolputty_12345 test.texprodujo el resultado esperado:

\prjindex=macro:
->JohannGambolputty.
l.82 \show\prjindex

(Obtendría lo mismo cuando el ejemplo se guardara Projekt_JohannGambolputty_12345.texy compilara mediante el comando latex Projekt_JohannGambolputty_12345.tex).

Por cierto:

A veces organizo los archivos de mi proyecto de la siguiente manera:

Preámbulo.tex

% Check whether the \documentclass-command was already invoked.
% If so, increment \inputlevel and stop inputting.
% If not so, don't stop imputting and thus do all the
% preamble-stuff, inclusive defining \inputlevel:
\expandafter\ifx\csname @twoclasseserror\endcsname\documentclass
  \xdef\inputlevel{\number\numexpr\inputlevel+1\relax}%
  \expandafter\endinput
\fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
\documentclass{article}%
% 
\newcommand*\inputlevel{1}%
\global\let\inputlevel=\inputlevel
%
% Whatsoever preamble-commands, etc.
%
% Here you can also place the code for defining \GetPrjindexFromJobnameIfUndefined
% and then invoke it for defining \prjindex:
%
%%========Code for \GetPrjindexFromJobnameIfUndefined=========
\begingroup
\makeatletter
\def\prjprephrase{Projekt_}%
\def\prjpostphrase{_}%
% \jobname delivers everything but the space (which will be of catcode 10) 
% with catcode 12(other). Therefore "sanitizing" is needed for turning
% everything but the space into catcode 12(other):
\@onelevel@sanitize\prjprephrase
\@onelevel@sanitize\prjpostphrase
\newcommand\GetPrjindexFromJobnameIfUndefined[2]{%
  \endgroup
  \newcommand\GetPrjindexFromJobnameIfUndefined{%
    \@ifundefined{prjindex}{%
      \expandafter\GetPrjindexCheckPattern\jobname$#1#2$&%
    }{}%
  }%
  \@ifdefinable\GetPrjindexCheckPattern{%
    \def\GetPrjindexCheckPattern##1#1##2#2##3$##4&{%
      \GetPrjindexPatternfork
      &##4&{\expandafter\GetPrjindexExtractfrompattern\jobname$}%
      &#1#2$&{%
        \GenericError{(\string\prjindex)\space}{%
          Error on input line \the \inputlineno:\MessageBreak
          \string\GetPrjindexFromJobnameIfUndefined\space cannot extract the\MessageBreak
          \string\prjindex\space from \string\jobname's expansion.\MessageBreak
          (\string\GetPrjindexFromJobnameIfUndefined\space is defined\MessageBreak
           \space somewhere in this document.)\@gobble
        }{Have a look at the comments in this document.}%
        {%
          \string\GetPrjindexFromJobnameIfUndefined\space can extract the \string\prjindex\MessageBreak
          from \string\jobname's expansion only in case \string\jobname's expansion is\MessageBreak
          of pattern\MessageBreak
          \@spaces #1\string####1#2\string####2\MessageBreak
          while \string####1 is not empty.\MessageBreak
          If this is the case, the expansion of \string\prjindex\space will be \string####1.\MessageBreak
          \string####1 will not contain underscores (\string_).\MessageBreak
          \string####2 can contain underscores.\MessageBreak
        }%
      }%
      &&&&%
    }%
  }%
  \@ifdefinable\GetPrjindexPatternfork{%
    \def\GetPrjindexPatternfork##1&#1#2$&##2##3&&&&{##2}%
  }%
  \@ifdefinable\GetPrjindexExtractfrompattern{%
    \def\GetPrjindexExtractfrompattern#1##1#2##2${%
      \ifx\relax##1\relax
        \expandafter\@firstoftwo
      \else
        \expandafter\@secondoftwo
      \fi
      {%
        \GenericError{(\string\prjindex)\space}{%
          Error on input line \the \inputlineno:\MessageBreak
          \string\prjindex\space is empty.\MessageBreak
          (\string\GetPrjindexFromJobnameIfUndefined\space is defined\MessageBreak
           \space somewhere in this document.)\@gobble
        }{Have a look at the comments in this document.}%
        {%
          \string\GetPrjindexFromJobnameIfUndefined\space can extract the \string\prjindex\MessageBreak
          from \string\jobname's expansion only in case \string\jobname's expansion is\MessageBreak
          of pattern\MessageBreak
          \@spaces #1\string####1#2\string####2\MessageBreak
          while \string####1 is not empty.\MessageBreak
          If this is the case, the expansion of \string\prjindex\space will be \string####1.\MessageBreak
          \string####1 will not contain underscores (\string_).\MessageBreak
          \string####2 can contain underscores.\MessageBreak
        }%
      }%
      {\newcommand*\prjindex{##1}}%
    }%
  }%
}%
\expandafter\expandafter\expandafter\GetPrjindexFromJobnameIfUndefined
\expandafter\expandafter\expandafter{\expandafter\prjprephrase\expandafter}%
\expandafter{\prjpostphrase}%
%%=====End of code for \GetPrjindexFromJobnameIfUndefined=====
% 
% This will define \prjindex depending on the expansion of \jobname
% while \jobname usually represents the name of the file used for
% initiating compilation:
%
% !!! I don't know whether, e.g., online-latex-plattforms like overleaf
% !!! invoke latex using the -jobname-option, which would lead to
% !!! the expansion of \jobname deviating from the name of the file
% !!! used for initiating compilation.
%
\GetPrjindexFromJobnameIfUndefined
%
% With subsequent preamble-commands you can, if you wish, fork depending on
% the expansion of \prjindex. But be aware that like \jobname \prjindex also
% holds only characters of catcode 12(other) and spaces of catcode 10(space).
% Therefore when storing a string in a temporary macro (this should, like
% \prjindex not be defined in terms of \long, which is the case with
% \def or \newcommand*) and \ifx-comparing that temporary macro to \prjindex,
% make sure that the definition of that temporary macro is "sanitized" by
% means of \@onelevel@sanitize before doing the \ifx-comparison.
%
%  \usepackage...
%  \usepackage...
%
\begin{document}%
\endinput
|
| Place whatsoever comments remarks and explanations and manuals you wish to place 
| here. They won't be processed because LaTeX ceases reading and processing this
| file when encountering \endinput.

Postámbulo.tex

\csname @\ifnum\inputlevel>1 second\else first\fi oftwo\endcsname
{%
  \end{document}%
}{%
  \xdef\inputlevel{\number\numexpr\inputlevel-1\relax}%
}%

Proyecto_A_cp1.tex

%----------------------
\input{Preamble.tex}%
%----------------------
This is file \texttt{Projekt\string_A\string_cp1.tex}\par
This is the text in file \texttt{Projekt\string_\prjindex\string_cp1.tex}.\par
The file \texttt{Projekt\string_\prjindex\string_cp1.tex} invokes the file \texttt{Projekt\string_\prjindex\string_cp2.tex}:\par
\input{Projekt_\prjindex_cp2.tex}%
%----------------------
\input{Postamble.tex}%
%----------------------

Proyecto_A_cp2.tex

%----------------------
\input{Preamble.tex}%
%----------------------
This is file \texttt{Projekt\string_A\string_cp2.tex}\par
This is the text in file \texttt{Projekt\string_\prjindex\string_cp2.tex}.\par
The file \texttt{Projekt\string_\prjindex\string_cp2.tex} invokes the file \texttt{Projekt\string_\prjindex\string_cp3.tex}:\par
\input{Projekt_\prjindex_cp3.tex}%
%----------------------
\input{Postamble.tex}%
%----------------------

Proyecto_A_cp3.tex

%----------------------
\input{Preamble.tex}%
%----------------------
This is file \texttt{Projekt\string_A\string_cp3.tex}\par
This is the text in file \texttt{Projekt\string_\prjindex\string_cp3.tex}.\par
%----------------------
\input{Postamble.tex}%
%----------------------

Proyecto_B_cp1.tex

%----------------------
\input{Preamble.tex}%
%----------------------
This is file \texttt{Projekt\string_B\string_cp1.tex}\par
This is the text in file \texttt{Projekt\string_\prjindex\string_cp1.tex}.\par
The file \texttt{Projekt\string_\prjindex\string_cp1.tex} invokes the file \texttt{Projekt\string_\prjindex\string_cp2.tex}:\par
\input{Projekt_\prjindex_cp2.tex}%
%----------------------
\input{Postamble.tex}%
%----------------------

Proyecto_B_cp2.tex

%----------------------
\input{Preamble.tex}%
%----------------------
This is file \texttt{Projekt\string_B\string_cp2.tex}\par
This is the text in file \texttt{Projekt\string_\prjindex\string_cp2.tex}.\par
The file \texttt{Projekt\string_\prjindex\string_cp2.tex} invokes the file \texttt{Projekt\string_\prjindex\string_cp3.tex}:\par
\input{Projekt_\prjindex_cp3.tex}%
%----------------------
\input{Postamble.tex}%
%----------------------

Proyecto_B_cp3.tex

%----------------------
\input{Preamble.tex}%
%----------------------
This is file \texttt{Projekt\string_B\string_cp3.tex}\par
This is the text in file \texttt{Projekt\string_\prjindex\string_cp3.tex}.\par
%----------------------
\input{Postamble.tex}%
%----------------------

De esta manera , cada uno de los archivos Projekt_A_cp1.tex, respectivamente Projekt_A_cp2.tex, Projekt_A_cp3.tex cada uno de los archivos Projekt_B_cp1.tex, se puede utilizar tanto para compilar "independiente" como para ser invocado a través de otro archivo del mismo proyecto.Projekt_B_cp2.texProjekt_B_cp3.tex\input\include

Preamble.texpuede contener código donde se produce la bifurcación dependiendo del significado de \prjindex, por lo que las cosas se pueden manejar de manera diferente para diferentes proyectos dentro del mismo archivo de preámbulo.

Respuesta2

No estoy seguro de cuál es el problema, pero seguramente necesitas hacer un cambio en tu código: el argumento \includedebenotiene la .texextensión.

\documentclass{book}

% why shouldn't this be elegant
\newcommand{\projectindex}{B}

\begin{document}

\include{chapter/Project_\projectindex_cp1}
\include{chapter/Project_\projectindex_cp2}
\include{chapter/Project_\projectindex_cp3}

\end{document}

Aquí está el resultado del terminal al compilar este código.

pdflatex sun
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
(./sun.tex
LaTeX2e <2019-10-01> patch level 3
(/usr/local/texlive/2019/texmf-dist/tex/latex/base/book.cls
Document Class: book 2019/10/25 v1.4k Standard LaTeX document class
(/usr/local/texlive/2019/texmf-dist/tex/latex/base/bk10.clo)) (./sun.aux
(./chapter/Project_B_cp1.aux) (./chapter/Project_B_cp2.aux)
(./chapter/Project_B_cp3.aux)) (./chapter/Project_B_cp1.tex
Chapter 1.
) [1{/usr/local/texlive/2019/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
(./chapter/Project_B_cp2.tex [2]
Chapter 2.
) [3] (./chapter/Project_B_cp3.tex [4]
Chapter 3.
) [5] (./sun.aux (./chapter/Project_B_cp1.aux) (./chapter/Project_B_cp2.aux)
(./chapter/Project_B_cp3.aux)) )</usr/local/texlive/2019/texmf-dist/fonts/type1
/public/amsfonts/cm/cmbx12.pfb></usr/local/texlive/2019/texmf-dist/fonts/type1/
public/amsfonts/cm/cmr10.pfb></usr/local/texlive/2019/texmf-dist/fonts/type1/pu
blic/amsfonts/cm/cmsl10.pfb>
Output written on sun.pdf (5 pages, 30009 bytes).

Si cambio a \newcommand{\projectindex}{A}, después de dos ejecuciones de LaTeX obtengo

pdflatex sun
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
(./sun.tex
LaTeX2e <2019-10-01> patch level 3
(/usr/local/texlive/2019/texmf-dist/tex/latex/base/book.cls
Document Class: book 2019/10/25 v1.4k Standard LaTeX document class
(/usr/local/texlive/2019/texmf-dist/tex/latex/base/bk10.clo)) (./sun.aux
(./chapter/Project_A_cp1.aux) (./chapter/Project_A_cp2.aux)
(./chapter/Project_A_cp3.aux)) (./chapter/Project_A_cp1.tex
Chapter 1.
) [1{/usr/local/texlive/2019/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
(./chapter/Project_A_cp2.tex [2]
Chapter 2.
) [3] (./chapter/Project_A_cp3.tex [4]
Chapter 3.
) [5] (./sun.aux (./chapter/Project_A_cp1.aux) (./chapter/Project_A_cp2.aux)
(./chapter/Project_A_cp3.aux)) )</usr/local/texlive/2019/texmf-dist/fonts/type1
/public/amsfonts/cm/cmbx12.pfb></usr/local/texlive/2019/texmf-dist/fonts/type1/
public/amsfonts/cm/cmr10.pfb></usr/local/texlive/2019/texmf-dist/fonts/type1/pu
blic/amsfonts/cm/cmsl10.pfb>
Output written on sun.pdf (5 pages, 29893 bytes).
Transcript written on sun.log.

Como puede ver, se incluyen los archivos esperados.

información relacionada