如何处理脚注中带有 TeX 特殊字符的 URL

如何处理脚注中带有 TeX 特殊字符的 URL

当我将带有 TeX 特殊字符的 URL(如下%例所示)添加到脚注时,它不起作用。

\documentclass{article}

\usepackage{hyperref}
\usepackage{xurl}

\begin{document}

1\footnote{\url{https://tex.stackexchange.com/questions/700246/how-to-output-the-%cf%84%ce%b5%cf%87%ce%bd%ce%b9%ce%ba%ce%ae-symbol}}

\end{document}

我尝试使用该xurl软件包,但仍然无法使其工作。它在 ConTeXt 中运行良好,但在脚注中却不起作用。我是否遗漏了什么?我应该怎么做才能使其工作?

答案1

用户指南中的第 2 节,标题为“定义定义的 URL”,网址包解释说,如果要在脚注中排版包含 TeX 特殊字符的 URL 字符串,则需要通过指令创建“定义的 URL” \urldef

由于 TeX 的脚注排版机制存在局限性,因此必须绕行这一步。(您可能知道,TeX 是在万维网和相关 URL 概念出现之前发明的;因此,URL 字符串可能包含一些 TeX 特殊字符,如果 URL 字符串出现在 的参数中,可能会造成严重破坏\footnote。)该\urldef设备绕过了这一限制。

在此处输入图片描述

\documentclass{article}
\usepackage{xurl} % 'xurl' package loads 'url' package automatically
% Here comes the '\urldef' instruction:
\urldef\urlA\url{https://tex.stackexchange.com/questions/700246/how-to-output-the-%cf%84%ce%b5%cf%87%ce%bd%ce%b9%ce%ba%ce%ae-symbol}

\usepackage[colorlinks,allcolors=blue]{hyperref} % optional

\setlength\textheight{1.5cm} % just for this example

\begin{document}
aaa\footnote{\urlA}
\end{document}

答案2

stackexchange 网址中的问题标题或多或少只是装饰。如果您只有问题编号,链接仍然有效:

\documentclass{article}

\usepackage{hyperref}
\usepackage{xurl}

\begin{document}
1\footnote{\url{https://tex.stackexchange.com/questions/700246}}
\end{document}

相关内容