¿Cómo convertir \input{} a texto sin formato?

¿Cómo convertir \input{} a texto sin formato?

Esto es lo que tengo ( a.txtcontiene http://www.google.com):

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

No funciona. Sin embargo, este funciona:

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

¿Cómo puedo convertir lo que sale de eso \inputa texto sin formato para que no confunda qrcode?

Respuesta1

El comando de entrada primitivo es ampliable, por lo que lo más probable es que puedas hacer

\documentclass{article}

\usepackage{qrcode}

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

\qrcode{\blah}

\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Puedes usar 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}

ingrese la descripción de la imagen aquí

Revisé el código QR y contiene el enlace deseado. El uso de filecontentses sólo para hacer que el ejemplo sea autónomo y no obstruir mis archivos.

información relacionada