我想获得词汇表标题的这个定位(考虑到文档的其余部分是回忆录,两列):
在...的基础上这个问题我做了一个 MWE,结果出现了一个奇怪的错误:标题出现了两次。\glossarysection
到目前为止,每次修改尝试都失败了
\documentclass[twocolumn]{memoir}
\usepackage[hyperfirst=true,acronym,section=chapter]{glossaries}
\usepackage{multicol}
\renewcommand*{\glossarysection}[2][]{%
\onecolumn % added to display multicols correctly
\begin{multicols}{3}[\chapter*{#2}]
\setlength\glsdescwidth{0.6\linewidth}%
\glossarymark{\glossarytoctitle}%
}
\renewcommand*{\glossarypostamble}{\end{multicols}}
\makeglossaries
\newglossarystyle{Style1}{%
\glossarystyle{index}}
\newglossaryentry{ppm}{name=ppm,description={parts per million}}
\newglossaryentry{ppb}{name=ppb,description={parts per billion}}
\begin{document}
The units are expressed in \gls{ppm}.
The units are expressed in \gls{ppb}.
\printglossary[type=main,style=Style1]
\end{document}
答案1
glossaries
\glossarymark
如果尚未定义,则定义为带有一个参数的命令,但memoir
已经将其定义为没有参数的命令!
因此
\glossarymark{\glossarytoctitle}%
真正执行的只是\glossarymark
(为运行标题做一个标记),然后{\glossarytoctitle}
只是生成词汇表目录标题,然后在 multicol 中排版它。
我不太清楚为什么这样glossaries
定义,从快速浏览文档来看,这似乎是针对旧版本的一些兼容性设置(可能),因为文档中正确的官方命令是这些天的。\glossarymark
\glsglossarymark
因此,如果你将上面的代码替换为
\glsglossarymark{\glossarytoctitle}%
然后它就会正确显示。你开始的答案中可能也应该这样做。它在那里起作用的原因是,如果使用了 book 类并\glossarymark
用一个参数定义,则兼容性设置就会生效。