Hyperref:斯堪的纳维亚字符(æø)在 \url 中不起作用,超链接错误

Hyperref:斯堪的纳维亚字符(æø)在 \url 中不起作用,超链接错误

背景

不久前,可以在 URL 中使用字母 æ、ø 和 å,一些网站(如百科全书 Store Norske Leksikon)已经使用了这些字母。

最近,挪威论坛上发布了一个问题,关于创建指向此类 URL 的超链接,但该功能不起作用,至少对于 æ 和 ø 不起作用。

一个例子

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\usepackage{hyperref}

\begin{document}
\url{http://snl.no/øl} \\
\url{http://snl.no/ære} \\
\url{http://snl.no/Ål}
\end{document}

前两个链接不起作用,它们被打印为http://snl.no/\T1\olhttp://snl.no/\T1\aere,但第三个链接可以正常工作。

(可以使用命令打印正确的 URL href,但由于超链接仍然错误,所以这并不是真正的解决方案。)

问题

我认为这与如何hyperref处理非英文字符有关。有没有办法hyperref在 URL 中创建带有 æ 或 ø 的正确链接?

更新

通过使用href命令,并使用latex和进行编译dvipdfm,超链接是正确的(请参阅下面 gerry 的回答)。我一直在使用 进行编译pdflatex

答案1

实际上我可以用 获得正确的链接href。它是用latex&编译的dvi2pdf

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\usepackage{hyperref}

\begin{document}
\href{http://snl.no/øl}{http://snl.no/øl}\\   \href{http://snl.no/ære}{http://snl.no/ære} \\   \href{http://snl.no/Ål}{http://snl.no/Ål}
\end{document}

替代文本

答案2

经过小幅修改,gerry 给出的答案甚至可以直接用于pdflatex

\documentclass[a4paper]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\usepackage[]{hyperref}

\begin{document}
  \href{http://snl.no/%C3%B8l}{http://snl.no/øl} \\
  \href{http://snl.no/%C3%A6re}{http://snl.no/ære} \\
  \href{http://snl.no/%C3%85l}{http://snl.no/Ål}
\end{document}

您只需对 URL 进行编码,例如使用W3 URL 编码器

答案3

我使用 pdflatex、latex+dvips+ps2pdf 和 latex+dvipdfmx 得到了相同的结果。如果是我,我会询问 hyperref 的作者。例如在 comp.text.tex 中。

答案4

matth 的答案有效,但应用Heiko 的回答(针对另一个问题)甚至可以这样做:

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}

\begin{document}
  \href{\detokenize{http://snl.no/øl}}{http://snl.no/øl} \\
  \href{\detokenize{http://snl.no/ære}}{http://snl.no/ære} \\
  \href{\detokenize{http://snl.no/Ål}}{http://snl.no/Ål}
\end{document}

无需查找øæ和的代码Å

相关内容