Wie konvertiert man \input{} in einfachen Text?

Wie konvertiert man \input{} in einfachen Text?

Das habe ich ( a.txtenthält http://www.google.com):

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

Funktioniert nicht. Das hier funktioniert jedoch:

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

Wie kann ich das, was daraus hervorgeht, \inputin Klartext umwandeln, damit es nicht zu Verwirrungen kommt qrcode?

Antwort1

Der primitive Eingabebefehl ist erweiterbar, sodass Sie höchstwahrscheinlich Folgendes tun können

\documentclass{article}

\usepackage{qrcode}

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

\qrcode{\blah}

\end{document}

Bildbeschreibung hier eingeben

Antwort2

Sie können Folgendes verwenden 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}

Bildbeschreibung hier eingeben

Ich habe den QR-Code überprüft und er enthält den gewünschten Link. Die Verwendung von filecontentsdient nur dazu, das Beispiel in sich geschlossen zu machen und meine Dateien nicht zu überschreiben.

verwandte Informationen