我尝试使用 pdflatex 从我的 pdf 生成中打开一个 .pdf 到特定页面,这url
在我的浏览器中是有效的,可以执行我想要的操作:
http://www.icomos.org/charters/venice_e.pdf#page=4
#page=4
指示我想要打开的页面,但是当我使用它时似乎\footnote
不起作用:
\footnote{\url{http://www.icomos.org/charters/venice_e.pdf#page=4}}
在我的 LaTeX 文档中,不起作用,我收到此错误:
Illegal parameter number in definition of \Hy@tempa.<to be read again>p ....icomos.org/charters/venice_e.pdf#page=4}}
导致#page=4
。这是 MWE:
\documentclass[12pt,a4paper]{book}
\usepackage{hyperref}
\begin{document}
words words words \footnote{\url{http://www.icomos.org/charters/venice_e.pdf#page=4}}
\end{document}
我该如何解决这个问题?
答案1
三种可能的解决方案
使用
\
来转义特殊字符,即\footnote{\url{http://www.icomos.org/charters/venice_e.pdf\#page=4}}
使用名为 的新命令
\urlfootnote
,如序言中的以下代码所述:
代码
\makeatletter
\newcommand\urlfootnote@[1]{\footnote{\url@{#1}}}
\DeclareRobustCommand{\urlfootnote}{\hyper@normalise\urlfootnote@}
\makeatother
- 在代码的开头定义它,如下所示:
代码
\documentclass{article}
\usepackage{url}
\urldef\myurl\url{foo%.com}
\begin{document}
text\footnote{WWW: \myurl}
\end{document}