我正在使用该glossaries
包创建一个首字母缩略词列表,并且我想重置文档中每个章节开头的所有条目的第一个关键标志。
我尝试过网上找到的解决方案,例如
\AddToHook{cmd/chapter/after}{\glsresetall}
和
\setuphead[after=chapter][aftersection=\glsresetall]
但是,我仅限于使用带有 XeLaTeX 和特定 cls 文件的 2019 TeX Live 版本,因此这些命令未定义。
我也尝试使用重新定义章节命令
\let\oldchap\chapter\renewcommand*{\chapter}[1]{\oldchap{#1}\glsresetall}
但是,这会导致 cls 文件出现错误,特别是在摘要部分。我设置了一个示例Overleaf 项目,其中还包含 cls 文件,以演示此问题。
有没有其他方法可以在每章开始/结束时调用某个命令?特定于glossaries
包的替代解决方案(即重置每章的第一个键标志)也是可以接受的。
编辑:
根据评论,这是一个 MWE。它使用book
文档类,因为我无法在此处上传自定义 cls 文件。
\documentclass{book}
\usepackage[acronyms,nomain]{glossaries}
\usepackage{regexpatch}
\newacronym{ABC}{ABC}{Alpha Bravo Charlie}
\newacronym{NASA}{NASA}{National Aeronautics and Space Administration}
\newacronym{NSA}{NSA}{National Security Agency}
\newacronym{NATO}{NATO}{North Atlantic Treaty Organization}
\newacronym{EU}{EU}{European Union}
\newacronym{ECDC}{ECDC}{European Centre for Disease Prevention and Control}
\newacronym{EWRS}{EWRS}{Early Warning and Response System}
\newacronym{USA}{USA}{United States of America}
% \let\oldchap\chapter\renewcommand*{\chapter}[1]{\oldchap{#1}\glsresetall} % Works with \documentclass{book} but causes errors with custom cls file
% \setuphead[after=chapter][aftersection=\glsresetall] % Requires ConTeXt
% \AddToHook{cmd/chapter/after}{\glsresetall} % Requires newer TeX Live version (and apparently wouldn't work even then?)
\xapptocmd{\chapter}{\glsresetall}{}{}
\begin{document}
\chapter{A}
\gls{ABC}
\gls{NASA}
\gls{NSA}
\gls{NATO}
\chapter{B}
\gls{ABC}
\gls{ABC}
\gls{NSA}
\gls{EU}
\gls{ECDC}
\gls{EU}
\end{document}
这个修补似乎仍然不起作用,因为它没有重置 B 章的第一次用途。同样的事情也发生了xpretocmd
。