Este código se compila perfectamente con lualatex, xelatex y pdflatex:
\documentclass{article}
\usepackage{fancyvrb}
\begin{document}
\begin{VerbatimOut}{x.txt}
^^_
\end{VerbatimOut}
\end{document}
Sin embargo, éste se compila sólo con pdflatex y falla con lualatex y xelatex:
\documentclass{article}
\usepackage{fancyvrb}
\begin{document}
\openin 15=x.txt
\ifeof 15
\begin{VerbatimOut}{x.txt}
^^_
\end{VerbatimOut}
\fi
\end{document}
Esto es lo que obtengo:
! Text line contains an invalid character.
l.7 ^^_
¿Cómo hago para compilarlo?todo¿látex?
Respuesta1
Bueno, aquí tienes un pequeño problema. ^^_
es una entrada no válida en luatex y si la ve, se quejará. El problema no es el \VerbatimOut
, sino que si x.txt
ya existe estás en una rama falsa, luatex se salta el contenido pero aun así ve el ^^_
.
Por ejemplo, esto aquí se compila sin problemas:
\documentclass{article}
\begin{document}
{
\iftrue
\catcode`\^=11
\catcode`\_=11
^^_
\fi
}
\end{document}
pero si le cambias \iffalse
los errores
\documentclass{article}
\begin{document}
{
\iffalse
\catcode`\^=11
\catcode`\_=11
^^_
\fi
}
\end{document}
Y en su ejemplo, tanto la escritura como la verificación del archivo funcionan:
\documentclass{article}
\usepackage{fancyvrb}
\begin{document}
\begin{VerbatimOut}{x.txt}
^^_
\end{VerbatimOut}
\openin 15=x.txt
\ifeof 15
aaa
\fi
\end{document}
pero tan pronto como reemplace los aaa
errores ^^_
. Por lo tanto, deberá evitar dicha entrada en ramas falsas.