一些词汇表条目未显示。但我正在使用\glsaddall
。我这里遗漏了什么?
\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}
跑步后
pdflatex MWE
文件 MWE.sygX1 包含所有四个条目。现在运行
makeglossaries MWE
创建 MWE.syiX1,其中仅包含“tau_k”和“physical_t”的条目,但不包含“physical_dt”或“gamma_k”。运行
makeglossaries -n MWE
揭示了:
makeglossaries version 2.15 (2014-07-30)
[..]
xindy -L ngerman -C utf8 -I xindy -M "MWE" -t "MWE.glg" -o "MWE.syiX1" "MWE.sygX1"
由于无法找到 ngerman 的 xindy 模块,因此有效调用是
xindy -L general -I xindy -M "MWE" -t "MWE.glg" -o "MWE.syiX1" "MWE.sygX1"
据我所知,缺失的条目都被 xindy 分配给了“默认”字母组。(这是通过直接调用 xindy 并随后检查日志文件 MWE.glg 看到的)
答案1
说明为什么事情是这样的:
xindy 利用合并规则将不同格式的密钥转换为规范格式。文件“/usr/share/xindy/base/tex.xdy”包含:
(merge-rule "\\[a-zA-Z@]+ *" "" :eregexp)
因此删除了“\Delta”和“\gamma”。现在存在键冲突:
- "\Delta t" == "t" 并且
- “\gamma_k” == “\tau_k”。
由于现在只有两个键,xindy 为每个键选择一个条目并完成。
我认为这种行为不是“tex.xdy”作者的本意。我对这个主题了解不够深入,无法判断排序规则是否更合适。
我的路绕过它:
为每个条目提供 sort=..,通过添加尾随乱码使其唯一。
\newglossaryentry{physical_dt}{
type=symbolslist,
name={\ensuremath{\Delta t}},
sort={\ensuremath{\Delta t}uniqtrailer01212},
description={missing text delta}
}