makeglossaries 不支持负薄空间的问题

makeglossaries 不支持负薄空间的问题

我有一个使用负数细空格(“\!”)的词汇表条目,但似乎makeglossaries生成了错误的代码。我提交了一份错误报告,但也许有解决方法?

这是一个最小的工作示例:

\documentclass[12pt,a4paper,twoside]{memoir}

\usepackage{lipsum}

\usepackage[acronym,toc]{glossaries}

\newglossaryentry{foo}{text=foo,name=Foo,description={This is foo}}
\newglossaryentry{footoo}{text={foo-too},name={Foo-\!Too},description={This is foo-too}}

\makeglossaries

\begin{document}

\lipsum[1]
\gls{foo}
\lipsum[1]
\gls{footoo}
\lipsum[1]

\printglossaries{}

\end{document}

在词汇表中,“Foo”行的末尾,有一个残留的“Foo- ̈”。我Foo-\"\relax \glsresetentrylist在 .gls 文件中发现,一旦删除它,就会清理输出pdflatex,但根本原因很可能是在 glo 文件中,它将“\!”替换为“\”!”。

答案1

该字符在索引程序(后台使用)!中具有特殊含义。我认为它们都不会查看是否“转义”。相反,我建议给出一个不同的名称,然后使用它。makeglossaries!\!

这似乎有效

\documentclass[12pt,a4paper,twoside]{memoir}

\usepackage{lipsum}

\usepackage[acronym,toc]{glossaries}
\let\ts\!


\newglossaryentry{foo}{text=foo,name=Foo,description={This is foo}}
\newglossaryentry{footoo}{text={foo-too},name={Foo-\ts Too},description={This is foo-too}}

\makeglossaries


\begin{document}

\lipsum[1]
\gls{foo}
\lipsum[1]
\gls{footoo}
\lipsum[1]

\printglossaries{}

\end{document}

答案2

daleif 的回答是正确的。但是,如果您在文档中只需要此操作一次,并且不想为此目的创建新的宏,您也可以插入手动字距调整:

\newglossaryentry{footoo}{text={foo-too},name={Foo-\kern-.1667emToo},description={This is foo-too}}

相关内容