![词汇表:强调每个部分的第一次出现](https://linux22.com/image/282295/%E8%AF%8D%E6%B1%87%E8%A1%A8%EF%BC%9A%E5%BC%BA%E8%B0%83%E6%AF%8F%E4%B8%AA%E9%83%A8%E5%88%86%E7%9A%84%E7%AC%AC%E4%B8%80%E6%AC%A1%E5%87%BA%E7%8E%B0.png)
我正在寻找一种方法来强调每个部分中第一次出现的词汇表术语
\usepackage{glossaries}
\makeglossaries
\newglossaryentry{webapp}{
name=webapp,
first={\underline{webapp}},
description={description of the webapp}
}
如果我以这种方式使用它
\section{first}
\gls{webapp} \gls{webapp} \gls{webapp} \gls{webapp}
\section{second}
\gls{webapp} \gls{webapp} \gls{webapp} \gls{webapp}
仅第一部分中第一次出现的项会被加下划线,其他出现的项则不会。
是否有解决方案可以使第二部分中第一次出现的“webapp”也带下划线?
答案1
是的,这是可能的,您只需在需要时发出命令\glsreset{webapp}
来重置行为即可。如果您想重置所有词汇表条目的行为,请使用\glsresetall
。
平均能量损失
\documentclass{article}
\usepackage{glossaries}
\makeglossaries
\newglossaryentry{webapp}{
name=webapp,
first={\underline{webapp}},
description={description of the webapp}
}
\begin{document}
\section{frist}
\gls{webapp} \gls{webapp} \gls{webapp} \gls{webapp}
\section{second}
\glsreset{webapp}
\gls{webapp} \gls{webapp} \gls{webapp} \gls{webapp}
\printglossaries
\end{document}
输出:
如果你不想每次发出时手动插入该行\section
,你可以在序言中插入以下行
\pretocmd{\section}{\glsresetall}{}{}
它需要etoolbox
自动加载glossaries
。
例如,以下 MWE 产生与上述相同的结果:
\documentclass{article}
\usepackage{glossaries}
\makeglossaries
\newglossaryentry{webapp}{
name=webapp,
first={\underline{webapp}},
description={description of the webapp}
}
\pretocmd{\section}{\glsresetall}{}{}
\begin{document}
\section{first}
\gls{webapp} \gls{webapp} \gls{webapp} \gls{webapp}
\section{second}
\gls{webapp} \gls{webapp} \gls{webapp} \gls{webapp}
\printglossaries
\end{document}