背景
不久前,可以在 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\ol
和http://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}
无需查找ø
、æ
和的代码Å
。