Dieser Code lässt sich problemlos mit lualatex, xelatex und pdflatex kompilieren:
\documentclass{article}
\usepackage{fancyvrb}
\begin{document}
\begin{VerbatimOut}{x.txt}
^^_
\end{VerbatimOut}
\end{document}
Dieses hier wird jedoch nur mit pdflatex kompiliert und schlägt mit lualatex und xelatex fehl:
\documentclass{article}
\usepackage{fancyvrb}
\begin{document}
\openin 15=x.txt
\ifeof 15
\begin{VerbatimOut}{x.txt}
^^_
\end{VerbatimOut}
\fi
\end{document}
Das ist, was ich bekomme:
! Text line contains an invalid character.
l.7 ^^_
Wie kann ich es kompilieren mitalleLatex?
Antwort1
Nun, hier haben Sie ein kleines Problem. ^^_
ist eine ungültige Eingabe in Luatex und wenn es diese sieht, wird es sich beschweren. Das Problem ist nicht das \VerbatimOut
, sondern dass x.txt
Sie sich in einem falschen Zweig befinden, wenn es bereits vorhanden ist. Luatex überspringt den Inhalt, sieht aber trotzdem das ^^_
.
Beispielsweise lässt sich das hier problemlos kompilieren:
\documentclass{article}
\begin{document}
{
\iftrue
\catcode`\^=11
\catcode`\_=11
^^_
\fi
}
\end{document}
aber wenn Sie es ändern \iffalse
Fehler
\documentclass{article}
\begin{document}
{
\iffalse
\catcode`\^=11
\catcode`\_=11
^^_
\fi
}
\end{document}
Und in deinem Beispiel funktioniert sowohl das Schreiben als auch das Prüfen der Datei:
\documentclass{article}
\usepackage{fancyvrb}
\begin{document}
\begin{VerbatimOut}{x.txt}
^^_
\end{VerbatimOut}
\openin 15=x.txt
\ifeof 15
aaa
\fi
\end{document}
aber sobald Sie es aaa
durch ^^_
es ersetzen, treten Fehler auf. Sie müssen also solche Eingaben in falschen Verzweigungen vermeiden.