输入交叉引用中的 utf8 字符

输入交叉引用中的 utf8 字符

我正在使用给定的 hack这里作为公认的解决方案,通过名称而不是数字来引用描述列表项。它工作得很好,除非名称中的一个单词以非 ASCII 字符结尾,在这种情况下它会删除后面的空格(仅在引用中)。为什么会这样?有没有办法修改 hack 来避免这个问题?我正在使用带有 hyperref 和 inputenc 的 pdflatex。

一位 MWE 表示:

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
  \makeatletter
  \let\orgdescriptionlabel\descriptionlabel
  \renewcommand*{\descriptionlabel}[1]{%
    \let\orglabel\label
    \let\label\@gobble
    \phantomsection
    \edef\@currentlabel{#1}%
    \let\label\orglabel
    \orgdescriptionlabel{#1}%
  }
  \makeatother
\begin{document}
  \begin{description}
    \item[Arzelà and Volterra\label{av}] Reference: \ref{av}.
    \item[Arzel{à} and Volterra\label{av2}] Reference: \ref{av2}.
    \item[Arzel\`a and Volterra\label{av3}] Reference: \ref{av3}.
  \end{description}
\end{document}

β 出现了更严重的问题,而我不需要它(尝试 Weierstraß 和 Kummer)。

答案1

使用\protected@edef\@currentlabel{#1}%

相关内容