在 URL 后面添加该域名的图标(自定义外部链接符号)

在 URL 后面添加该域名的图标(自定义外部链接符号)

在一个现有线程中展示了如何hyperref在 URL 后面添加通用的“外部 URL”符号。在另一个线程,最佳答案展示了如何使用 FontAwesome 将各个公司的图标/徽标插入 LaTeX 文档中。

我想将这两个结合起来,如下所示:我想获得与第一个线程相同的结果,除了\href对于在序言中注册了图标的域名,对于使用该域名的所有调用,通用符号将由该图标替换。

平均能量损失

\documentclass{article}
\usepackage{hyperref}
\usepackage{fontawesome}

% ... the logic that defines \faExternalLink as the default suffix for \href ...
% ... some logic that defines \registerDomain[2] ...

\registerDomain{github.com}{\faGithub}
\registerDomain{twitter.com}{\faTwitterSquare}

\begin{document}
\href{https://twitter.com/elonmusk}{Link to Twitter/X's CEO}

\href{https://docs.github.com/en/get-started}{Link to GitHub's documentation}

\href{https://en.wikipedia.org/wiki/Donald_Knuth}{Link to a miscellaneous webpage}
\end{document}

请注意,最后两个 URL 使用子域名。中间的 URL 仍需使用超级域名的图标。

实现思路

如果域和图标在命令定义中被硬编码,那么使用一个条件语句可能就足够了检查 URL 字符串中是否存在子字符串,尽管这在理论上可能导致虚假匹配(类似于github.com.mywebsite.org),而这可能需要一个适当的 URL 解析器。

这里,我们需要某种从域到图标名称的全局词典。

相关内容