自动生成文档中的链接列表(类似于图表列表等)

自动生成文档中的链接列表(类似于图表列表等)

假设您有一个文档,其中包含许多链接,但隐藏在通过 生成的描述文本下hyperref。在文档的电子版中,您可以单击链接,但如果您只有打印版本,则无法看到实际的 URL。因此,最好在文档末尾添加一个包含在文档中的超链接列表,类似于图表或表格的列表,这样只有打印副本的读者就知道文本中引用的 URL。也许还可以在链接列表中包含二维码。这是一个最小示例:

\documentclass{article}

\usepackage[short labels]{enumitem}
\usepackage[colorlinks]{hyperref}

\begin{document}


\section*{Automatically generated link list}
\subsection*{Some text}

On \href{https://tex.stackexchange.com/questions/33282/list-of-url-links-with-href}{TeX Stackexchange} you can find nice questions to nice answers about \href{http://www.tug.org/}{\TeX}  and \href{https://www.latex-project.org/}{\LaTeX}.

\subsection*{List of links}

TODO: This is what the question is about
%% \makelistoflinks

\vspace*{1ex}
\hrule
\vspace*{1ex}

\section*{How it should look like}

\subsection*{Some text}

On \href{https://tex.stackexchange.com/questions/33282/list-of-url-links-with-href}{TeX Stackexchange} [L1] you can find nice questions to nice answers about \href{http://www.tug.org/}{\TeX} [L2] and \href{https://www.latex-project.org/}{\LaTeX} [L3].

\subsection*{List of links}

\begin{enumerate}[L1]
\item \url{https://tex.stackexchange.com/questions/33282/list-of-url-links-with-href}
\item 
\url{http://www.tug.org/}
\item
\url{https://www.latex-project.org/}
\end{enumerate}

\end{document}

在此处输入图片描述

我不确定如何将文本中的链接引用到链接列表。我[L1]在文本中使用了“等”作为标签,但也许使用一个小的上标会更分散注意力。因此解决方案在这方面应该是可配置的。也许你对如何引用它还有其他想法。

答案1

我没有时间考虑参考文献等等,但您可以像这样存储和检索链接:

\documentclass{memoir}
\usepackage{hyperref}
\ExplSyntaxOn
\seq_new:N\g_student_list_of_links_seq
\makeatletter
\begingroup
  \catcode`\$=6 %
  \catcode`\#=12 %
  \gdef\href@$1{\seq_gput_right:Nn \g_student_list_of_links_seq {$1}\expandafter\href@split$1##\\}%
  \gdef\href@split$1#$2#$3\\$4{%
    \hyper@@link{$1}{$2}{$4}%
    \endgroup
  }%
\endgroup  
\makeatother
\ExplSyntaxOff
\begin{document}

\href{https://tex.stackexchange.com/questions/33282/list-of-url-links-with-href}{TeX Stackexchange} you can find nice questions to nice answers about \href{http://www.tug.org/}{\TeX}  and \href{https://www.latex-project.org/}{\LaTeX}.


\ExplSyntaxOn
\seq_map_inline:Nn \g_student_list_of_links_seq {\url{#1}\par}
\ExplSyntaxOff

\end{document}

相关内容