이 코드는 다음의 내용을 보여주는 출력을 생성합니다.excerpt1.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}
이 코드는 다음의 내용을 보여주는 출력을 생성하지 않습니다.excerpt1.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}
이런 상황이 발생한 이유가 궁금합니다. 나는 매우 중요한 문서에서 이 변칙적인 현상을 발견했습니다. 복구할 수 없는 오류가 발생하기 전에 고려해야 할 주의 사항 목록이 있습니까?
답변1
주석에 언급된 대로 \end{filecontents}
줄 끝까지의 텍스트는 무시됩니다. 따라서 발췌 앞의 공백은 \input
다음 줄에 있기 때문에 발생하지 않습니다. 실제로 발췌 앞의 공백은 '단락이 시작됩니다.' 이후의 줄 바꿈으로 인해 발생합니다. 이를 제거하는 가장 간단한 방법은 줄 끝에 백분율 기호를 사용하는 것입니다. 마찬가지로 '두 문서' 뒤에는 백분율이 필요합니다. \input{excerpt1.tex}
발췌문 뒤에 공백이 생기지 않도록 합니다 .
\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}
이들 중 하나는 를 사용하여 자동화할 수 있습니다 \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}