如何使用 pst-barcode 将当前文档编码为二维码?

如何使用 pst-barcode 将当前文档编码为二维码?
\documentclass{article}
\usepackage{pst-barcode}

\begin{document}
\begin{pspicture}
  \psbarcode{\input{\jobname.tex}}{}{qrcode}
\end{pspicture}
\end{document}

我尝试\expandafter在 之前和之后放置 s \psbarcode,但没有效果。它可以很好地处理控制序列,但它会扩展它们。我怎样才能让它完全不扩展其参数(当然,保存\input)并逐字逐句地执行它?

该特定文档的编码是

在此处输入图片描述

答案1

开始:使用catchfile包将文件内容写入宏,然后该宏将展开一次并进行去标记化\psbarcode

由于某种原因,我的扫描仪没有显示任何\s、\bs 或\ts。我不知道这是否是\psbarcode我的扫描仪的问题,或者扫描仪将它们解释为某种转义序列(德语列表)。但是,该序列\string\\正确显示为\

此外,空行显示为\par(或者更确切地说par)。

代码

\documentclass{article}
\usepackage{pst-barcode,catchfile}
\CatchFileDef\myFile{\jobname.tex}{}
\makeatletter\let\TeXinput\@@input\makeatother
\begin{document}
\ttfamily
\meaning\myFile

\begin{pspicture}
  \expandafter\psbarcode\expandafter{\detokenize\expandafter{\myFile}\string\\}{}{qrcode}
  % fails with "I can't find file" error
%  \expandafter\psbarcode\expandafter
%    {\detokenize\expandafter{\TeXinput\jobname.tex}}{}{qrcode}
\end{pspicture}
\end{document}

输出

在此处输入图片描述

答案2

这没有任何实际意义!PostScript 和 TeX 有不同的特殊字符。例如:TeX 代码中)没有对应字符的单个字符将破坏 PostScript 代码。是 PostScript 字符串的结束字符;必须用 进行转义。但这在 TeX 中有其他含义。其他字符也一样。()\)

您需要一个预处理器来转义)TeX 文件中的字符。但是,如果您的 TeX 源中没有单个字符,)则可以使用可选参数file(需要最新的 TL2013):

\documentclass{article}
\usepackage{pst-barcode,fancyvrb}
\begin{document}
\VerbatimInput{\jobname.tex}% test 

\begin{pspicture}(2in,2in)
  \psbarcode[file]{\jobname.tex}{}{qrcode}
\end{pspicture}

\end{document}

在此处输入图片描述

相关内容