2

Some glossary entries do not show up. But I am using \glsaddall. What am I missing here?

\documentclass[10pt,ngerman]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\usepackage[xindy]{imakeidx}
\usepackage[xindy,acronym]{glossaries}
\newglossary{symbolslist}{syiX1}{sygX1}{Symbolverzeichnis} 
\makeglossaries
\makeindex
\newglossaryentry{physical_t}{
type=symbolslist,
name={\ensuremath{t}},
description={text t}
}
\newglossaryentry{physical_dt}{
type=symbolslist,
name={\ensuremath{\Delta t}},
description={missing text delta}
}
\newglossaryentry{tau_k}{
type=symbolslist,
name={\ensuremath{\tau_k}},
description={text tau}
}
\newglossaryentry{gamma_k}{
type=symbolslist,
name={\ensuremath{\gamma_k}},
description={missing text gamma}
}
\newacronym{abc}{ABC}{the ABC thing}
\begin{document}
\glsaddall
\printglossary[type=\acronymtype,style=long]
\printglossary[type=symbolslist,style=long]
\end{document}

After running

pdflatex MWE

the file MWE.sygX1 contains all four entries. Now running

makeglossaries MWE

creates MWE.syiX1, which contains only the entry for "tau_k" and "physical_t", but not "physical_dt" or "gamma_k". Running

makeglossaries -n MWE

reveals:

makeglossaries version 2.15 (2014-07-30)
[..]
xindy  -L ngerman -C utf8 -I xindy -M "MWE" -t "MWE.glg" -o "MWE.syiX1" "MWE.sygX1"

As the xindy module for ngerman cannot be located, the effective call is

xindy  -L general -I xindy -M "MWE" -t "MWE.glg" -o "MWE.syiX1" "MWE.sygX1"

as far as i can see, the missing entries were both assigned to the "default" letter group by xindy. (this was seen by directly invoking xindy and examining the logfile MWE.glg afterwards)

  • Welcome to TeX.SX! If you don't use xindy for the glossaries it will work. Thanks for the working MWE! – user31729 Sep 7 '15 at 17:22
  • 1
    I think this is some xindy problem – user31729 Sep 7 '15 at 17:57
  • There's also some problem with style=long that produces Overfull \hbox (4587.61314pt too wide), though this seems unrelated. – egreg Sep 8 '15 at 10:07
1

The explanation why it happens is as follows:
xindy makes use of merge-rules that bring differently formatted keys into a canonical form. The file "/usr/share/xindy/base/tex.xdy" contains:

(merge-rule "\\[a-zA-Z@]+ *" "" :eregexp)

Therefor "\Delta" and "\gamma" are dropped. Now there is key clash:

  • "\Delta t" == "t" and
  • "\gamma_k" == "\tau_k".

As there are now only two keys, xindy picks one entry for each key and is done.

I suppose this behavior is not intended by the authors of "tex.xdy". I am not deep enough into the subject to tell whether a sort-rule would fit better.

My way to get around it:
provide each entry with sort=.. making it unique by adding trailing gibberish.

\newglossaryentry{physical_dt}{
  type=symbolslist,
  name={\ensuremath{\Delta t}},
  sort={\ensuremath{\Delta t}uniqtrailer01212},
  description={missing text delta}
}
  • As I wrote in a previous comment: Use the more traditional makeindex, i.e. omit xindy for the glossaries here. I am no xindy expert too – user31729 Sep 8 '15 at 14:51
  • pointed [xindy] mailing list towards this entry. Thank you Christian. – Fabian Sep 8 '15 at 16:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.