我正在使用给定的 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}%