我正在使用 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]
。
以上两个示例均产生以下结果:
其他说明:
- 你不需要
section=chapter
在包选项中,因为这是定义类的默认选项\chapter
- 如果您刚开始使用
glossaries
,我不建议您使用,nowarn
因为它会隐藏一些常见的新用户错误所导致的警告。如果您阅读了这些警告,可能会省去您回来寻求更多帮助的麻烦。
其他资源: