如何使用二维码制作类似词汇表的部分?

如何使用二维码制作类似词汇表的部分?

我正在写一篇论文,因为我必须打印它,所以我想使用 QR(与软件包一起qrcode)来显示文档中的所有链接。我想要组织它的方式是在附录中有一个部分,其中包含所有 QR 码以及书面链接。

我可以手动完成,但有没有办法让它像词汇表一样工作?然后可以用 定义每个二维码\newqrcode{link}{label}并用 引用\qr{label}。文本将只包含指向二维码的一些注释。附录中将列出所有二维码。

有办法吗?谢谢。

编辑:

基于@Marijn的回答我创建了以下 MWE:

\documentclass{article}

\usepackage{hyperref}
\usepackage{qrcode}
\usepackage{tikz}
\usepackage{fontspec}

\setlength{\parindent}{0em}
\setlength{\parskip}{1em}

\renewcommand{\familydefault}{\sfdefault}

\newcounter{qrlink}
\setcounter{qrlink}{0}

\newwrite\qrfile
\immediate\openout\qrfile=\jobname.qrs

\newfontfamily\qrfont{MinecraftTen.ttf}

\newcommand{\newqrcode}[2]{%
\stepcounter{qrlink}%
\immediate\write\qrfile{
  \noexpand\begin{minipage}{4cm}
    \noexpand\begin{tikzpicture}  
      \noexpand\draw (0,0) node{\noexpand\qrcode[height=3cm, nolink]{#1}};
      \noexpand\fill[white] (-4mm,-4mm) rectangle (4mm,4mm);
      \noexpand\node at (0,0){\noexpand\textbf{\noexpand\huge \noexpand\qrfont \theqrlink}};
      \noexpand\end{tikzpicture}
    \noexpand\end{minipage}
  \noexpand\begin{minipage}{10cm}
    \noexpand\section*{#2}
    \noexpand\url{#1} \noexpand\label{qr\theqrlink}\\[1mm]
    Used on page \thepage
  \noexpand\end{minipage}\\
}%
\hyperref[qr\theqrlink]{\theqrlink}
}

\newcommand{\printqrcodes}{
  \immediate\closeout\qrfile
  \section*{List of QR Codes}
  \addcontentsline{toc}{section}{List of QR Codes}
  \input{\jobname.qrs}
}

\begin{document}

The link to the TeX Stack Exchange can be found in QR code \newqrcode{https://tex.stackexchange.com}{TeX Stack Exchange}.

This question in particular is in QR code \newqrcode{https://tex.stackexchange.com/questions/635426/how-to-make-a-glossary-like-section-with-qr-codes}{This Question}.

You can download the font I used for the numbering in QR code \newqrcode{https://www.fontspace.com/minecraft-ten-font-f40317}{Minecraft Font}. Make sure the file names match, and you're using XeTeX.

\appendix
\printqrcodes

\end{document}

它看起来是这样的: 在此处输入图片描述

答案1

以下代码定义了一个包装器命令\newqrcode,该命令不仅打印文档中的超链接,还打印命令以将二维码生成到外部.qrs文件。此文件中打印了一个计数器、命令\qrcode和链接的标签。在文档末尾,此文件被关闭并使用添加到文档中\input

梅威瑟:

\documentclass{article}
\usepackage{hyperref}
\usepackage{qrcode}

\newcounter{qrlink}
\setcounter{qrlink}{0}

\newwrite\qrfile
\immediate\openout\qrfile=\jobname.qrs

\newcommand{\newqrcode}[2]{%
\stepcounter{qrlink}%
\immediate\write\qrfile{\theqrlink. \noexpand\qrcode[height=1cm]{#1} #2\\}%
\href{#1}{#2} (\theqrlink)%
}

\begin{document}
A link: \newqrcode{https://tex.stackexchange.com}{TeX.SE}

Another link: \newqrcode{https://tex.stackexchange.com}{also TeX.SE}

\immediate\closeout\qrfile
\section*{List of QR codes}
\input{\jobname.qrs}
\end{document}

生成的.qrs文件:

1. \qrcode [height=1cm]{https://tex.stackexchange.com} TeX.SE\\
2. \qrcode [height=1cm]{https://tex.stackexchange.com} also TeX.SE\\

主文档编译结果:

在此处输入图片描述

请注意,url 是作为普通参数传递到\newqrcode并从 传递到 的\href,这可能会导致 url 中的特殊字符出现问题(\href通常会自行处理)。因此,如果您打算实际使用此解决方案,请仔细测试,而不是将其视为概念证明。

相关内容