![Hyperref:为什么我会收到致命的 TeX 容量超出错误?](https://linux22.com/image/453916/Hyperref%EF%BC%9A%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E4%BC%9A%E6%94%B6%E5%88%B0%E8%87%B4%E5%91%BD%E7%9A%84%20TeX%20%E5%AE%B9%E9%87%8F%E8%B6%85%E5%87%BA%E9%94%99%E8%AF%AF%EF%BC%9F.png)
我正在将一份用于印刷发行的文档转换为一份用于电子发行的文档,方法是将所有 URL 转换为超链接 URL。使用 hyperref 包和 \url 命令。单个 URL 给我以下错误:
! TeX capacity exceeded, sorry [input stack size=5000].
\font@name -> \OT1/cmr/m/n/10.95
l.4 .../$FILE/Open%20Meetings%20Law%20FAQ.pdf}
! ==> Fatal error occurred, no output PDF file produced!
Transcript written on FSGuide2022ElecProbMinEx.log.
我不知道为什么。
这是一个产生这种行为的最小示例(带有有问题的 URL)。
\documentclass[11pt]{article}
\usepackage{hyperref}
\begin{document}
\url{https://app.lla.state.la.us/llala.nsf/BAADB2991272084786257AB8006EE827/\$FILE/Open\%20Meetings\%20Law\%20FAQ.pdf}
\end{document}
我可能犯了一些愚蠢的错误,但我无论如何也想不出那是什么!
谢谢
答案1
您发帖中显示的 URL 字符串存在根本性错误。具体来说,为什么$
“和”%20
部分要用反斜杠字符转义?
在我看来,以下两个版本的 URL 字符串都是正确的 - 请注意,它们都没有使用\
字符来“转义” TeX 特殊字符,例如$
和%
。
https://app.lla.state.la.us/llala.nsf/BAADB2991272084786257AB8006EE827/$FILE/Open Meetings Law FAQ.pdf
https://app.lla.state.la.us/llala.nsf/BAADB2991272084786257AB8006EE827/$FILE/Open%20Meetings%20Law%20FAQ.pdf
果然,测试程序
\documentclass{article}
\usepackage[obeyspaces]{xurl}
\usepackage[colorlinks,allcolors=blue]{hyperref} % optional
\begin{document}
\url{https://app.lla.state.la.us/llala.nsf/BAADB2991272084786257AB8006EE827/$FILE/Open Meetings Law FAQ.pdf}
\url{https://app.lla.state.la.us/llala.nsf/BAADB2991272084786257AB8006EE827/$FILE/Open%20Meetings%20Law%20FAQ.pdf}
\end{document}
得到以下截图:
令人高兴的是,单击两个超链接即可将您发送到正确的文件。