我试图在我的 Latex 文档中包含一个包含井号 # 的 URL。如果我在不转义 # 符号的情况下运行它,则会出错。如果我对其进行转义,则转义字符也会打印在 URL 中。(“ \#
”而不是“ #
”)关于如何修复此问题,有什么想法吗?
\documentclass[12pt, a4paper, twoside]{article}
\usepackage[T1]{fontenc}
\usepackage{endnotes}
\usepackage{url}
\begin{document}
Hello World\endnote{\url{http://www.rossettiarchive.org/docs/nb0005.duke.rad.html#0.1.19}}
\end{document}
答案1
正如您所注意到的,这#
会使 TeX 感到困惑,因为尾注最终会被读入为宏替换文本。
用于\urldef
有问题的条目:
\documentclass[12pt, a4paper, twoside]{article}
\usepackage[T1]{fontenc}
\usepackage{endnotes}
\usepackage{url}
\urldef\rossetti\url|http://www.rossettiarchive.org/docs/nb0005.duke.rad.html#0.1.19|
\begin{document}
Hello World\endnote{\rossetti}
\end{document}
替代方法:将其放在序言中
\newcommand\specialendnote{\begingroup\catcode`\#=12 \specialendnoteaux}
\newcommand\specialendnoteaux[1]{\endnote{#1}\endgroup}
并调用
\specialendnote{\url{http://www.rossettiarchive.org/docs/nb0005.duke.rad.html#0.1.19}}