\end{filecontents} y \input{} en la misma línea

\end{filecontents} y \input{} en la misma línea

Este código genera una salida que muestra el contenido deexcerpt1.tex

\documentclass{article}
\usepackage{filecontents}

\begin{document}
Pragraph is starting.
\begin{filecontents}{excerpt1.tex}
Part that must be in two documents.
\end{filecontents}
\input{excerpt1.tex}
Paragraph ends.
\end{document}

Este código no genera resultados que muestren el contenido deexcerpt1.tex

\documentclass{article}
\usepackage{filecontents}

\begin{document}
Pragraph is starting.
\begin{filecontents}{excerpt1.tex}
Part that must be in two documents.
\end{filecontents}\input{excerpt1.tex}
Paragraph ends.
\end{document}

Me pregunto el motivo de esta situación. He encontrado esta anomalía en un documento muy importante. ¿Existe una lista de advertencias que deban tenerse en cuenta antes de que se produzcan errores irrecuperables?

Respuesta1

Como se indica en los comentarios, \end{filecontents}se ignora el texto desde hasta el final de la línea. Por lo tanto, el espacio antes del extracto no se debe a que esté \inputen la línea siguiente. De hecho, el espacio antes del extracto se debe al salto de línea después de "El párrafo está comenzando". La forma más sencilla de deshacerse de esto es utilizar signos de porcentaje al final de la línea. De manera similar, necesitará porcentajes después de "dos documentos". y \input{excerpt1.tex}para evitar un espacio después del extracto.

\documentclass{article}
\usepackage{filecontents}
\begin{document}
Paragraph is starting.%
\begin{filecontents}{excerpt1.tex}
Part that must be in two documents.% 
\end{filecontents}
\input{excerpt1.tex}%
Paragraph ends.
\end{document}

Uno de ellos se puede automatizar usando \ignorespaces.

\documentclass{article}
\usepackage{filecontents}
\newcommand\myinput[1]{\input{#1}\ignorespaces} 
Paragraph is starting.%  
\begin{filecontents}{excerpt1.tex}
Part that must be in two documents.% 
\end{filecontents}
\myinput{excerpt1.tex}
Paragraph ends.
\end{document}

información relacionada