Ввод данных для табличной среды приводит к появлению странного дополнительного пространства

Ввод данных для табличной среды приводит к появлению странного дополнительного пространства

Я пишу таблицу и пытаюсь импортировать ее содержимое из внешнего файла. Любопытно, что я обнаружил, что при импорте содержимого TeX добавляет странный пробел к последней записи. Этого не происходит, когда я копирую содержимое из внешнего файла и вставляю его непосредственно в документ. Как исправить это поведение?

МВЭ:

\documentclass[margin=0.1cm]{standalone}

\begin{filecontents*}{data.tex}
01 & 02 & 03 & 04 & 05\\06 & 07 & 08 & 09 & 10\\11 & 12 & 13 & 14 & 15\\16 & 17 & 18 & 19 & 20\\21 & 22 & 23 & 24 & 25
\end{filecontents*}

\begin{document}

\begin{tabular}{c|c|c|c|c}
\input{data.tex}
\end{tabular}

\begin{tabular}{c|c|c|c|c}
01 & 02 & 03 & 04 & 05\\06 & 07 & 08 & 09 & 10\\11 & 12 & 13 & 14 & 15\\16 & 17 & 18 & 19 & 20\\21 & 22 & 23 & 24 & 25
\end{tabular}

\end{document}

Результат MWE показан ниже. Левая таблица вводится, а правая печатается напрямую. Обратите внимание, как 25 имеет разное выравнивание в каждом случае. введите описание изображения здесь

решение1

Это происходит из-за обработки \input{…}(в LaTeX с 2020-10-01 AFAIK есть даже дополнительный код хука после конца \input) и потому, что у вас есть дополнительный пробельный токен: конец строки после \input{…}. Чтобы избежать этого, закомментируйте конец строки после \input{…}:

\documentclass[margin=0.1cm]{standalone}

\begin{filecontents*}{data.tex}
01 & 02 & 03 & 04 & 05\\06 & 07 & 08 & 09 & 10\\11 & 12 & 13 & 14 & 15\\16 & 17 & 18 & 19 & 20\\21 & 22 & 23 & 24 & 25
\end{filecontents*}

\begin{document}

\begin{tabular}{c|c|c|c|c}
\input{data.tex}% <-- this percent is needed
\end{tabular}

\begin{tabular}{c|c|c|c|c}
01 & 02 & 03 & 04 & 05\\06 & 07 & 08 & 09 & 10\\11 & 12 & 13 & 14 & 15\\16 & 17 & 18 & 19 & 20\\21 & 22 & 23 & 24 & 25
\end{tabular}

\end{document}

выравнивание 25 здесь такое же

Примечание: Этого не произойдет с plainTeX's \input …, поскольку в этом случае пробельный токен (конца строки) будет концом имени файла. Но это, например, не будет поддерживать имена файлов с пробелами.

Смотрите также:Для чего используются знаки процента (%) в конце строк? (Почему мой макрос создает лишние символы?)

Связанный контент