如何超链接前缀 URL?

如何超链接前缀 URL?

是否可以定义 URL 前缀并正确地为其提供超链接?

例如:

\defineprefix{dbo}{http://dbpedia.org/ontology/}
\prefixurl{dbo:City}

应具有与以下相同的效果:

\href{http://dbpedia.org/ontology/City}{dbo:City}

编辑:这是导致错误的已接受代码的 MWE:

\documentclass{article}
\usepackage{hyperref}

\makeatletter
\newcommand\defineprefix[2]{%
      \def\urlprefixabbrv@#1{#2}}
\newcommand\prefixurl[2]{%
      \href{\urlprefixabbrv@#1/#2}{#1:#2}}
\makeatother

\begin{document}
\defineprefix{owl}{http://www.w3.org/2002/07/owl\#}
\defineprefix{xsd}{http://www.w3.org/2001/XMLSchema\#}

\prefixurl{owl}{Class}
\prefixurl{xsd}{string}

\end{document}

答案1

以下应该有效

\documentclass{article}
\usepackage{hyperref}

\makeatletter
\newcommand\defineprefix[2]{%
      \expandafter\def\csname urlprefixabbrv@#1\endcsname{#2}}
\newcommand\prefixurl[2]{%
      \href{\csname urlprefixabbrv@#1\endcsname/#2}{#1:#2}}
\makeatother

\begin{document}
\defineprefix{dbo}{http://dbpedia.org/ontology/}
\prefixurl{dbo}{City}

\end{document}

您有责任自行跟踪,不要两次定义相同的前缀并互相覆盖。

相关内容