我正在尝试使用acronym
来自acronym
包裹在我的文档中排版缩略词列表。我想使用\acroplural
(根据包装文档,“应该在首字母缩略词环境中使用”),但这样做会给我一个错误消息。
平均能量损失
文档
\documentclass{article}
\usepackage{acronym,hyperref}
\begin{document}
\begin{acronym}
\acro{POI}{point of interest} \acroplural{POI}{POIs}{points of interest}
\end{acronym}
\end{document}
错误消息
LaTeX Warning: Hyper reference `acro:POI' on page 1 undefined on input line 8.
LaTeX Warning: Hyper reference `acro:POI' on page 1 undefined on input line 8.
document.tex:8: Undefined control sequence.
\hyper@@link ->\let \Hy@reserved@a
\relax \@ifnextchar [{\hyper@link@ }{\hyp...
l.8 ...}{point of interest} \acroplural{POI}{POIs}
{points of interest}
document.tex:8: Argument of \AC@acroplurali has an extra }.
<inserted text>
\par
l.8 ...}{point of interest} \acroplural{POI}{POIs}
{points of interest}
Runaway argument?
{POI}{\hyper@link@ }\def \reserved@b {\hyper@link@ [link]}\futurelet \ETC.
document.tex:8: Paragraph ended before \AC@acroplurali was complete.
<to be read again>
\par
l.8 ...}{point of interest} \acroplural{POI}{POIs}
{points of interest}
[1] (./document.aux)
有关的
如何正确地将以“S”结尾的首字母缩略词复数化?是一个类似的问题,但它询问的是定义非标准复数形式外部环境acronym
。
答案1
省略hyperref
代码编译但插入虚假代码points of interest
,这也会导致\aclp{POI}
给予POIs
而不是points of interest
。
这是因为第二个参数\acroplural
(短形式复数)是可选参数,如果提供,则应提供为\acroplural{POI}[POIs]{points of interest}
。从包文档中:
在这种情况下,没有必要提供它,因为只有长形式复数不是通过附加来给出的s
。此问题并不特定于\acroplural
或acronym
环境,它也会发生在使用相同语法的\newacroplural
和中。\acrodefplural
\documentclass{article}
\usepackage{acronym}
\begin{document}
\begin{acronym}
\acro{POI}{point of interest}
\acroplural{POI}{points of interest}
\end{acronym}
\end{document}
但是,hyperref
如果没有提供可选参数,则会出现第二个问题
\documentclass{article}
\usepackage{acronym}
\usepackage{hyperref}
\begin{document}
\begin{acronym}
\acro{POI}{point of interest}
\acroplural{POI}{points of interest}
\end{acronym}
\end{document}
给出错误
! Undefined control sequence. \hyper@@link ->\let \Hy@reserved@a \relax \@ifnextchar [{\hyper@link@ }{\hyp... l.8 \acroplural{POI}{points of interest}
正如您在评论中指出的那样,可以通过明确提供可选参数来解决此问题\acroplural{POI}[POIs]{points of interest}
。但是,首字母缩略词的文档似乎很清楚地表明这不是必需的,这会使它成为包中的一个错误。
As\acroplural{POI}{POIs}{points of interest}
被解析为给出POI
和POIs
作为首字母缩略词和首字母缩略词的长形式复数,然后只让组{points of interest}
跟在它后面(这不会被当作参数吞掉,正如你通过省略 所看到的)。因此,即使第一个错误是在 的语法中,hyperref
你最终也会看到更严重的相关错误。hyperref
\acroplural