Как преобразовать \input{} в обычный текст?

Как преобразовать \input{} в обычный текст?

Вот что у меня есть ( a.txtсодержит http://www.google.com):

\documentclass{article}
\newcommand\myurl{\input{a.txt}}
\usepackage{qrcode}
\begin{document}
\qrcode{\myurl}
\end{document}

Не работает. А вот это работает:

\documentclass{article}
\newcommand\myurl{http://www.google.com}
\usepackage{qrcode}
\begin{document}
\qrcode{\myurl}
\end{document}

Как мне преобразовать то, что оттуда поступает, \inputв обычный текст, чтобы не было путаницы qrcode?

решение1

Примитивная команда ввода является расширяемой, поэтому, скорее всего, вы можете сделать

\documentclass{article}

\usepackage{qrcode}

\begin{document}
\makeatletter
\everyeof{\noexpand}
\edef\blah{\@@input a.txt }
\makeatother

\qrcode{\blah}

\end{document}

введите описание изображения здесь

решение2

Вы можете использовать catchfile:

\begin{filecontents*}{\jobname.link}
http://www.google.com
\end{filecontents*}

\documentclass{article}
\usepackage{catchfile}
\usepackage{qrcode}

\CatchFileDef\myurl{\jobname.link}{\endlinechar=-1 }

\begin{document}

X\myurl X

\qrcode{\myurl}
\end{document}

введите описание изображения здесь

Я проверил QR-код, и он содержит нужную ссылку. Использование filecontentsтолько для того, чтобы сделать пример самодостаточным и не засорять мои файлы.

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