0

The document below results in

Package hyperref Warning: Token not allowed in a PDF string (Unicode):
(hyperref)                removing `\textgerman' on input line 1.


! LaTeX Error: Something's wrong--perhaps a missing \item.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.27 \end{theglossary}
                      \glossarypostamble
? X

when after XeLaTeX, makeglossaries I XeLaTeX again.

\documentclass[a4paper, twoside]{book}%[a4paper,oneside]

\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}
\setotherlanguages{english, greek}
\usepackage[citecolor=black,urlcolor=black,linkcolor=black]{hyperref}
\hypersetup{
    colorlinks=true,
}
\usepackage[xindy={language=german,codepage=duden-utf8},
    nonumberlist,
    toc,
    nopostdot,
    style=altlist,
    nogroupskip
    ]{glossaries}
    \GlsSetXdyCodePage{duden-utf8}



\makeindex
\makeglossaries

\newglossaryentry{computer}
{
  name=computer,
  description={is a programmable machine that receives input,
               stores and manipulates data, and provides
               output in a useful format}
}


\begin{titlepage}
\title{Meine Chance\\Projektarbeit und IT-Basics}

\author{Erik Itter}
\end{titlepage}


\begin{document}

\maketitle



\tableofcontents
\printglossary

\chapter{Recherche}\index{Rechercher}
\chapter{Projektarbeit}\index{Projektarbeit}

\chapter{Präsentation}
\section{Dokument/ Ausarbeitung}
\section{Vortrag}

\chapter{Techniken}
\section{Mind-Map}\index{Techniken!Mind-Map}\index{Mind-Map}


\end{document}

and I have no idea if specifying the language/ code page this way is correct as well, just tried what I found after it told me it had no module for German utf8

  • You need to cut this example down to size. Remove the packages that you don't think are causing problems, and get it down to the one (or two) that are actually causing the problem. – Teepeemm Dec 08 '16 at 02:21
  • same thing with only the indexing stuff, see shortened code above – Erik Itter Dec 08 '16 at 02:49
  • 1
    You need to use \makeglossaries, the perl script rather than xindy directly. See page 44 of the manual. Also, it is recommended not to define glossary entries after \begin{document}. – cfr Dec 08 '16 at 03:26
  • We cannot compile your code as is. If you cannot reproduce the error without the bibliography, you'll need to provide the entries we need. But I'm guessing you can cut this out. Do you really want \printglossary twice? Is the indexing required for the error? You never use it... – cfr Dec 08 '16 at 03:29
  • Compiles fine here when I take out the bibliography. There's no glossary, as expected, of course. But no errors. – cfr Dec 08 '16 at 03:34
  • hyperref should be loaded last with certain specific exceptions, notably cleveref and glossaries. – cfr Dec 08 '16 at 03:45
  • You need the entry in the preamble. You need to specify the codepage and language (probably) for xindy for the index. Use makeglossaries for the glossary and it works fine. – cfr Dec 08 '16 at 04:17
  • ok, moved the entry to the preamble, changed the order of the usepackage commands, removed bibliography and use makeglossaries. Still getting the same error. What do you mean by no glossary being as expected? – Erik Itter Dec 08 '16 at 14:23
  • 1
    Have you used commands like \gls or glsadd in your document? There's a debugging method for glossaries in this answer – Nicola Talbot Dec 08 '16 at 19:40

2 Answers2

0

"Have you used commands like \gls or glsadd in your document? There's a debugging method for glossaries in this answer" – Nicola Talbot

That is it. Adding just a reference to any glossary-entry (\gls{computer} with the MWE) and it works.

0

What @erik-itter (and Nicola Talbot) said is correct. However, there is an additional thing that you can do as well. It all depends on what you need/don't need.

Any single reference using \gls or \glsadd will only produce a glossary with the items that have been referenced. Say you have 100 entries defined for your glossary but only 1 is referenced in the document, then you will only have one entry in your compiled glossary.

If you want all the entries to appear, despite not being referenced explicitly in the document, then use this:

\glsaddall[types={main}] (assuming just the default glossary)

\glsaddall[types={symbols}] (assuming just a symbols glossary)

\glsaddall[types={main,symbols}] (a main glossary and a symbols glossary)

etc.

Following this approach, you can have multiple glossaries where some only have referenced entries while the others have all the entries.

whatisit
  • 1,870