wie kann verhindert werden, dass \input fehlschlägt, wenn die Datei fehlt?

wie kann verhindert werden, dass \input fehlschlägt, wenn die Datei fehlt?

Ich habe hier gelesen (zweiter Kommentar zur Frage)

Wann sollte ich \input statt \include verwenden?

das \@input„keinen Fehler auslöst, wenn die Datei nicht existiert“.

Wenn ich es versuche

\documentclass{article}
\begin{document}
\@input{toBeIncluded.tex}
\end{document}

Ich bekomme tatsächlich keinetödlichFehler, aber ich bekomme immer noch drei Kompilierungsfehler und, was noch wichtiger ist, mein PDF enthält das Wort „inputtoBeIncluded.tex“.

Gibt es eine einfache Möglichkeit,völlig ignorierender Eingabebefehl, wenn die Eingabedatei nicht existiert?

Vielen Dank

Antwort1

Sie müssen es hinzufügen \makeatletter, um die Verwendung des Symbols @in einem Makro zu ermöglichen.

\documentclass{article}
\begin{document}
abc
\makeatletter
\@input{myfile.tex}
\makeatother   

\end{document}

BEARBEITEN

Wie von @Emil Jeřábek angemerkt, hat dies den Nebeneffekt, dass der Catcode von @ während myfile.texdes Lesens geändert wird. Dies hat wahrscheinlich keine negativen Auswirkungen, kann aber wie folgt vermieden werden:

\documentclass{article}

\makeatletter
\let\conditionalinput\@input
\makeatother

\begin{document}
abc
\conditionalinput{fred.tex}
\end{document}

Trotzdem ist es wahrscheinlich besser, zu verwenden \InputIfFileExists{file}{}{}, wie von @daleif vorgeschlagen.

Antwort2

Anstatt zu verwenden, \@inputist die bessere Methode wahrscheinlich zu verwenden

\InputIfFileExists{file}{then}{else}

Dies wird ausgeführt, \inputwenn die Datei fileexistiert, und führt dann den Code in aus then. Wenn die Datei nicht existiert, elsewird der Code in ausgeführt. Sie könnten beispielsweise eine Warnung in den elseTeil einfügen, nur um Sie darüber zu informieren, dass diese bestimmte Datei nicht gefunden wurde.

Wenn Sie nur eine blinkende Eingabe wünschen, wenn die Datei existiert, verwenden Sie einfach

\InputIfFileExists{file}{}{}

Weitere Einzelheiten zu diesem Makro finden Sie texdoc source2eim ltfiles.dtxAbschnitt 19.Dateiverwaltung

verwandte Informationen