![`acronym` 包:将首字母缩略词的使用链接到首字母缩略词列表,而无需将列表条目链接到首字母缩略词的首次使用](https://linux22.com/image/465062/%60acronym%60%20%E5%8C%85%EF%BC%9A%E5%B0%86%E9%A6%96%E5%AD%97%E6%AF%8D%E7%BC%A9%E7%95%A5%E8%AF%8D%E7%9A%84%E4%BD%BF%E7%94%A8%E9%93%BE%E6%8E%A5%E5%88%B0%E9%A6%96%E5%AD%97%E6%AF%8D%E7%BC%A9%E7%95%A5%E8%AF%8D%E5%88%97%E8%A1%A8%EF%BC%8C%E8%80%8C%E6%97%A0%E9%9C%80%E5%B0%86%E5%88%97%E8%A1%A8%E6%9D%A1%E7%9B%AE%E9%93%BE%E6%8E%A5%E5%88%B0%E9%A6%96%E5%AD%97%E6%AF%8D%E7%BC%A9%E7%95%A5%E8%AF%8D%E7%9A%84%E9%A6%96%E6%AC%A1%E4%BD%BF%E7%94%A8.png)
问题
我正在使用acronym
包裹。我希望将\ac
、\Ac
、\iac
等的用法链接到我的首字母缩略词列表(使用环境创建)中的相应条目acronym
,但我确实不是希望列表中的首字母缩略词成为其首次使用的超链接。我该怎么做?
平均能量损失
\documentclass{minimal}
\usepackage{hyperref}
\usepackage{acronym}
\begin{document}
The \ac{QBF} jumps over \iac{LD}. The \ac{LD} jumps over \iac{QBF}.
\begin{acronym}
\acro{QBF}{quick brown fox}
\acro{LD}{lazy dog} \acrodefindefinite{LD}{an}{a}
\end{acronym}
\end{document}
期望输出
请注意“所需输出”部分中的超链接实际上没有去任何地方。它们旨在演示超链接在输出文档中出现的位置。
描述:在文档文本中,所有缩写词的使用都链接到缩写词列表中的相应条目。在缩写词列表中(环境内
acronym
),条目不是超链接。
敏捷的棕色狐狸(准直阵线)跳过一只懒狗(LD)。 这LD跳过一个准直阵线。
准直阵线敏捷的棕色狐狸
LD懒狗
实际产量
请注意“实际输出”部分中的超链接实际上没有去任何地方。它们旨在演示超链接在输出文档中出现的位置。
描述:在文档文本中,所有缩写词的使用都链接到缩写词列表中的相应条目。在缩写词列表中(在环境内
acronym
),每个条目都链接回文档中其各自缩写词的首次使用。
敏捷的棕色狐狸(准直阵线)跳过一只懒狗(LD)。 这LD跳过一个准直阵线。
我尝试过
根据第 4.2 节软件包acronym
文档,其中讨论了包的实现,我希望这可以解决问题,但它没有起作用。
\documentclass{minimal}
\usepackage{hyperref}
\usepackage{acronym}
\begin{document}
The \ac{QBF} jumps over \iac{LD}. The \ac{LD} jumps over \iac{QBF}.
{\makeatletter\AC@nohyperlinkstrue\makeatother
\begin{acronym}
\acro{QBF}{quick brown fox}
\acro{LD}{lazy dog} \acrodefindefinite{LD}{an}{a}
\end{acronym}
}
\end{document}
答案1
首先\acrodefindefinite
,三个强制性论点,例如\acrodefindefinite{LD}{an}{a}
。由于您只使用了两个参数,因此您的示例会导致错误。请参阅手册以了解有关如何使用它的更多信息。
为了避免从首字母缩略词列表链接到首字母缩略词的使用,您可以本地重新定义\AC@hyperref
里面环境。为此,请添加
\makeatletter
\def\AC@hyperref[#1]#2{#2}
\makeatother
或者使用\begin{acronym}
通用的 LaTeX 钩子机制(lthooks-doc.pdf
有关更多信息,请参阅):
\documentclass{article}
\usepackage{hyperref}
\usepackage{acronym}
\makeatletter
\AddToHook{env/acronym/begin}{\def\AC@hyperref[#1]#2{#2}}
\makeatother
\begin{document}
The \ac{QBF} jumps over \iac{LD}. The \ac{LD} jumps over \iac{QBF}.
\section*{List of acronyms}
\begin{acronym}
\acro{QBF}{quick brown fox}
\acro{LD}{lazy dog}
\end{acronym}
\end{document}