如何将 \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}

在此处输入图片描述

我检查了二维码,它包含所需的链接。使用filecontents只是为了使示例自成一体,而不会破坏我的文件。

相关内容