如何將 \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只是為了使範例獨立,而不是破壞我的檔案。

相關內容