这个问题与问题相关如何避免 hyperref 的 \url 中的“http:”部分?以及解决方案https://tex.stackexchange.com/a/139934/39306和https://tex.stackexchange.com/a/139925/39306。
我想以如下方式重新定义 \url 以便产生相同的结果。
\url{ipython.org}
或者
\url{http://ipython.org}
(使用\rurl{http://ipython.org}
上面给出的解决方案似乎不起作用,实际上在用 pdflatex 编译后,单击http://ipython.org在 pdf 文件中,指向不存在的页面http://www.http.com//ipython.org)请参阅下面的基于解决方案的示例https://tex.stackexchange.com/a/139934/39306:
\documentclass{article}
\usepackage{hyperref}
\newcommand\rurl[1]{%
\href{http://#1}{\nolinkurl{#1}}%
}
\begin{document}
\rurl{ipython.org}\\
\rurl{http://ipython.org}
\end{document}
答案1
\documentclass{article}
\usepackage{hyperref}
\newcommand\rurl[1]{\xurl#1\empty\empty\empty\empty\empty\xurl}
\def\xurl#1#2#3#4#5#6\xurl{%
\def\tmp{#1#2#3#4#5}%
\href{\ifx\tmp\xurlhttp \else http://\fi#1#2#3#4#5#6}%
{\nolinkurl{#1#2#3#4#5#6}}%
}
\def\xurlhttp{http:}
\begin{document}
\rurl{ipython.org}\\
\rurl{http://ipython.org}
\end{document}