首字母缩略词未定义警告

首字母缩略词未定义警告

当我使用 pdftex (texlipse) 构建 latex 文件时,我收到一些奇怪的警告。我定义了一个首字母缩略词列表,如下所示:

\chapter*{Acronyms}
\addcontentsline{toc}{chapter}{Acronyms}

\begin{acronym}

\acro{AL} {Authentication List}
\acro{AM} {Authentication Module}

...

\end{acronym}

当我引用这些首字母缩略词(列表中的所有首字母缩略词,但并未在此处全部列出)时,我是这样说的:

... of the \ac{AL} periodically ...

我在 texlipse 中收到很多类似这样的警告:

Acronym `AL' is not defined on input line 117

但是,PDF 文件生成正确。我唯一的问题是,我想通过警告来找到真正需要注意的事情(例如 /hboxes 过满),但是有数百个这样的错误,这变得非常乏味。

有人知道如何解决这个问题吗?我的 texlipse 中是否有一些设置错误?我知道 texlipse 不会自动识别缩写包,因为当我按下 ctrl+space 时,我永远不会得到“ac”选项,而其他 latex 命令(如“begin”)会显示出来。

答案1

我对此并不熟悉texlipse,但如果您还没有弄清楚,我希望第二次编译运行可以解决警告。为了使第二次运行有效,您需要保留第一次运行的输出文件(尤其是 .aux 文件,见下文)。

1)我假设包声明\usepackage{acronym}在你的.tex 文件前言中。

[如果不是,那么它仍然可以工作(某种程度上),因为会有很多错误(例如'!未定义的控制序列。l.8 \ac{AL} 定期出现,\ac{AM} 出现一次。')但首字母缩略词出现在文本中(当然都是未展开的),首字母缩略词列表出现在首字母缩略词列表中。]

2)使用该acronym软件包,下面的编译不会出现错误,但会出现很多您报告类型的警告(例如,“软件包首字母缩略词警告:首字母缩略词“AL”未在输入第 8 行定义”。):

\documentclass{book}
\usepackage{acronym}
\begin{document}
\chapter{Text sample}
\addcontentsline{toc}{chapter}{Text sample}

Not much to be said here other than to note 
the \ac{AL} periodically and the \ac{AM} once.

The second \ac{AL} occurrence, as discussed.

\chapter*{Acronyms}
\addcontentsline{toc}{chapter}{Acronyms}

\begin{acronym}
\acro{AL} {Authentication List}

\acro{AM} {Authentication Module} 
\end{acronym}

\end{document}

但是,PDF 文件看起来不正确,因为首字母缩略词被渲染为例如“AM!(AM!)”。原因是在编译器第一次运行的时候,它无法解析首字母缩略词,但在运行结束时,它已将详细信息写入与 .tex 文件同名的 .aux 文件中。例如,对于上面的简单 .tex,由以下程序生成的 .aux 文件为pdflatex

\relax 
\reset@newl@bel
\@writefile{toc}{\contentsline {chapter}{\numberline {1}Text sample}{1}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {chapter}{Text sample}{1}}
\undonewlabel{acro:AL}
\newlabel{acro:AL}{{1}{1}}
\acronymused{AL}
\undonewlabel{acro:AM}
\newlabel{acro:AM}{{1}{1}}
\acronymused{AM}
\acronymused{AL}
\@writefile{toc}{\contentsline {chapter}{Acronyms}{3}}
\newacro{AL}[\AC@hyperlink{AL}{AL}]{Authentication List}
\newacro{AM}[\AC@hyperlink{AM}{AM}]{Authentication Module}

然后,编译器的第二遍解析 .tex 文件时可以使用 .aux 文件中的信息来生成完整的 .pdf 文件,默认情况下,包括第一次出现的首字母缩略词的扩展。在我的系统上,这按预期生成了 .pdf 文件,并且没有错误或警告pdflatex

相关内容