
Я пишу таблицу и пытаюсь импортировать ее содержимое из внешнего файла. Любопытно, что я обнаружил, что при импорте содержимого 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}
Примечание: Этого не произойдет с plainTeX's \input …
, поскольку в этом случае пробельный токен (конца строки) будет концом имени файла. Но это, например, не будет поддерживать имена файлов с пробелами.
Смотрите также:Для чего используются знаки процента (%) в конце строк? (Почему мой макрос создает лишние символы?)