Hyperref 将 URL 首字母大写

Hyperref 将 URL 首字母大写

我尝试在文本中嵌入一个链接(包含大写和小写字母)。以下是代码片段:

\documentclass{article}

\usepackage[hidelinks]{hyperref}

\begin{document}

\href{http://goo.gl/maps/vcZfr}{Publications}

%% The above embedding could not redirect me to the correct link. 
%% Instead it led me to https://goo.gl/MAPS/VCZFR
\end{document}

你能帮我解释一下为什么有些字母要大写吗?

答案1

hyperref没有做任何类似的事情。问题的 MWE 在 PDF 文件 (pdflatex) 中给出以下内容:

/Subtype/Link/A<</Type/Action/S/URI/URI(http://goo.gl/maps/vcZfr)>>

URL 未发生改变。可能 位于\href参数内部,之后会大写(例如 via \MakeUppercase)。

解决方法是使用受保护的宏,它不受\MakeUppercase或 的影响\uppercase

\documentclass{article}

\usepackage[hidelinks]{hyperref}

\protected\def\hrefvcZfr{\href{http://goo.gl/maps/vcZfr}}

\begin{document}

\href{http://goo.gl/maps/vcZfr}{Publications}
\MakeUppercase{\hrefvcZfr{Publications}}

\end{document}

相关内容