这可能是“see”字段的一个非常简单的格式问题。在我在下面对 mwe.tex 运行“makeglossaries mwe”之后,首字母缩略词列表包含格式错误的条目,例如
EC Espoir de chelem. 1, Glossary: ECGlossary:]SansECg
我尝试在“查看”字段周围添加额外的括号,但没有成功。
MWE 是
\documentclass[a4paper, 11pt, book]{memoir}
\RequirePackage[xindy,acronym]{glossaries}%
\makeglossaries
\newglossaryentry{ECg}{name={EC},description={Espoir de chelem}}
\newglossaryentry{EC}{type=\acronymtype,name={EC},description={Espoir de chelem},first={Espoir de chelem (EC)\glsadd{ECg}},see=[Glossary:]{ECg}}
\newglossaryentry{SansECg}{name={\ensuremath{\sim}EC}, description={Sans espoir de chelem}}
\newglossaryentry{SansEC}{type=\acronymtype,name={\ensuremath{\sim}EC},description={Sans espoir de chelem},first={Sans espoir de chelem (\ensuremath{\sim}EC)\glsadd{SansECg}},see=[Glossary:]{SansECg}}
\begin{document}
First use \gls{EC}\\
Subsequent use \gls{EC}\\
First use \gls{SansEC}\\
Subsequent use \gls{SansEC}\\
\printglossary[type=\acronymtype]
\printglossary[type=main]
\end{document}
编辑:我尝试重新格式化条目,现在我有一个可以工作的 MWE 版本(下面的 MWE1)。但问题仍然存在,因为当我将下面的项目定义粘贴到我的实时词汇表中,删除所有相关的词汇表文件并执行应该是干净的重新运行我的实时系统时,错误格式仍然出现 :-(
MWE1:
\documentclass[a4paper, 11pt, book]{memoir}
%\RequirePackage[pdftex,unicode=true,psdextra,colorlinks=true,citecolor=blue,linkcolor=blue,urlcolor=blue,hyperfootnotes=false,linktoc=all]{hyperref}%
\RequirePackage[xindy,acronym]{glossaries}%
\makeglossaries
\newglossaryentry{ecg}{name={EC}, description={Espoir de chelem}}
\newglossaryentry{ec}{type=\acronymtype, name={EC}, description={Espoir de chelem}, first={Espoir de chelem (EC)\glsadd{ecg}}, see=[Glossary:]{ecg}}
\begin{document}
First use \gls{ec}\\
Subsequent use \gls{ec}\\
\newpage
Subsequent use \gls{ec}\\
\printglossary[type=\acronymtype]
\printglossary[type=main]
\end{document}
我一度认为这与 hyperref 的交互有关,但事实似乎并非如此。最初,我以为可能是语言问题,但第一个 MWE 只有英语,而实时日志文件显示法语模块正在自动加载。
答案1
此问题仅发生在 和xindy
中,而不会发生在 中makeindex
。它不是立即显而易见的,但它是由xindy
合并两个条目引起的。该.acn
文件显示正在处理的输入xindy
。前两行是:
(indexentry :tkey (("EC" "\\glossentry{EC}") ) :xref ("[Glossary:]{ECg}") :attr "see" )
(indexentry :tkey (("\\ensuremath {\\sim }EC" "\\glossentry{SansEC}") ) :xref ("[Glossary:]{SansECg}") :attr "see" )
在第一种情况下,排序值为EC
(列表中的第一个元素:tkey
)。在第二种情况下,排序值为\\ensuremath {\\sim }EC
,但xindy
会丢弃 LaTeX 标记,因此此排序值会转换为EC
。这与第一个条目相同,因此xindy
将它们合并,位置列表最终为
\glsseeformat[Glossary:]{ECg}[Glossary:]{SansECg}{}
语法\glsseeformat
是[
标签]{
标签}{
地点}
因此[
以下内容{ECg}
被视为地点部分,该部分将被忽略。其余部分是您在文档中找到的尾随文本。这种合并具有重复排序值的条目是 的一个怪癖xindy
。为了避免这种情况,您需要通过添加键来确保排序值不同sort
。例如:
\newglossaryentry{SansEC}{
sort={~EC},
type=\acronymtype,
name={\ensuremath{\sim}EC},
description={Sans espoir de chelem},
first={Sans espoir de chelem (\ensuremath{\sim}EC)\glsadd{SansECg}},
see=[Glossary:]{SansECg}}