
Leí aquí (segundo comentario a la pregunta)
¿Cuándo debo usar \input frente a \include?
que \@input
"no arroja un error si el archivo no existe".
si lo intento
\documentclass{article}
\begin{document}
\@input{toBeIncluded.tex}
\end{document}
De hecho no entiendofatalerror, pero aún así recibo 3 errores de compilación y, lo que es más importante, mi pdf contiene la palabra "inputtoBeIncluded.tex".
¿Existe una forma sencilla deignorar completamente¿El comando de entrada si el archivo de entrada no existe?
Muchas gracias
Respuesta1
Debe agregar \makeatletter
para habilitar el uso del símbolo @
en una macro.
\documentclass{article}
\begin{document}
abc
\makeatletter
\@input{myfile.tex}
\makeatother
\end{document}
EDITAR
Como señaló @Emil Jeřábek, esto tiene el efecto secundario de cambiar el código cat de @ mientras myfile.tex
se lee. Es poco probable que esto tenga efectos adversos, pero podría evitarse de la siguiente manera:
\documentclass{article}
\makeatletter
\let\conditionalinput\@input
\makeatother
\begin{document}
abc
\conditionalinput{fred.tex}
\end{document}
Dicho esto, probablemente sea mejor usar \InputIfFileExists{file}{}{}
, como lo sugiere @daleif.
Respuesta2
En lugar de utilizar \@input
el mejor método probablemente sea utilizar
\InputIfFileExists{file}{then}{else}
Esto se ejecutará \input
si file
existe y luego ejecutará el código en formato then
. Si el archivo no existe, else
se ejecuta el código. Por ejemplo, podría agregar una advertencia en la else
parte, solo para informarle que no se encontró este archivo en particular.
Si solo desea una entrada parpadeante si el archivo existe, simplemente use
\InputIfFileExists{file}{}{}
Para más detalles sobre esta macro vea texdoc source2e
que se describe en la ltfiles.dtx
parte, sección 19,Manejo de archivos