使用词汇表包时出错

使用词汇表包时出错

我正在使用 TeXmaker 编译.tex文件,但仍然生成错误。事实上,我使用了包,glossaries但当我添加时newglossaryentry,编译以错误结束。这是我的代码:

\documentclass[11pt,a4paper]{book}
\usepackage[utf8]{inputenc}
\usepackage[francais]{babel}
\usepackage[T1]{fontenc}

\author{sk001}
\title{My title}

\usepackage[style=long, nonumberlist, toc, xindy, nowarn, nomain, section=chapter]{glossaries}

\makeglossaries

\newglossaryentry{iai}{%
name={IAI},%
description={Institut Africain d'Informatique}%
type=\newacronym
}

\begin{document}
\titlepage

\newpage

L'Institut Africain d'Informatique(\gls{iai}) est un établissement d'enseignement supérieur.

\printglossary


\end{document}

这是日志中显示的错误:

! Missing \endcsname inserted.
<to be read again>
\glsdefaulttype
l.50 }
The control sequence marked <to be read again> should
not appear between \csname and \endcsname.
! Package glossaries Error: Glossary type '\glsdefaulttype ' has not been defin
ed.
See the glossaries package documentation for explanation.
Type H <return> for immediate help.
...
l.50 }
You need to define a new glossary type, before making entries in it
! Missing \endcsname inserted.
<to be read again>
\glsdefaulttype
l.50 }
The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

答案1

正如其他人指出的那样,问题来自于使用nomain(这会阻止创建主词汇表),但是您没有提供替代词汇表(通过包选项,例如acronym或明确使用\newglossary)。

看起来你实际上想要的是acronym带有 的选项\newacronym,而不是\newglossaryentry。像这样:

\documentclass[11pt,a4paper]{book}
\usepackage[utf8]{inputenc}
\usepackage[francais]{babel}
\usepackage[T1]{fontenc}

\author{sk001}
\title{My title}

\usepackage[style=long,nonumberlist,toc,xindy,acronym,nomain]{glossaries}

\makeglossaries

\newacronym{iai}{IAI}{Institut Africain d'Informatique}

\begin{document}

L'\gls{iai} est un établissement d'enseignement supérieur.
Next use: \gls{iai}.

\printglossary[type=\acronymtype]

\end{document}

请注意,由于您没有使用主词汇表,因此您需要在 的可选参数中指定词汇表\printglossary。或者,您也可以直接使用\printglossaries,如下所示:

\documentclass[11pt,a4paper]{book}
\usepackage[utf8]{inputenc}
\usepackage[francais]{babel}
\usepackage[T1]{fontenc}

\author{sk001}
\title{My title}

\usepackage[style=long,nonumberlist,toc,xindy,acronym,nomain]{glossaries}

\makeglossaries

\newacronym{iai}{IAI}{Institut Africain d'Informatique}

\begin{document}

L'\gls{iai} est un établissement d'enseignement supérieur.
Next use: \gls{iai}.

\printglossaries

\end{document}

或者,至少在 4.0 版本中,您可以使用\printacronyms,它与 相同\printglossary[type=acronym]

以上两个示例均产生以下结果:

Image of result

其他说明:

  1. 你不需要section=chapter在包选项中,因为这是定义类的默认选项\chapter
  2. 如果您刚开始使用glossaries,我不建议您使用,nowarn因为它会隐藏一些常见的新用户错误所导致的警告。如果您阅读了这些警告,可能会省去您回来寻求更多帮助的麻烦。

其他资源:

相关内容