如何使用 \endnotes 包在 URL 中包含 # 符号

如何使用 \endnotes 包在 URL 中包含 # 符号

我试图在我的 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}}

相关内容