我正在编写一个文档,希望通过glossaries
包强制使用首字母缩略词。我的目的是确保每个首字母缩略词都与命令正确使用,\gls{}
以便我可以在整个文档中保持拼写一致。如果在不使用命令的情况下使用首字母缩略词,我希望 LaTeX (Overleaf) 发出警告或错误。\gls
下面是一个最小工作示例 (MWE) 来说明我的目标:
\documentclass{article}
\usepackage[%
acronym, % Enable acronym functionality
nomain, % No main glossary
]{glossaries}
\newacronym{HTML}{HTML}{Hypertext Markup Language}
\makeglossaries
\begin{document}
\gls{HTML} should be valid whereas the pure usage of ``Hypertext Markup Language'' or ``HTML'' should throw warnings/errors as they are not used with \texttt{\gls\{HTML\}}
\end{document}
在此示例中, 的使用是正确的,并且应该可以编译,不会出现任何问题。但是,我希望 LaTeX 将和(不带)\gls{HTML}
的实例标记为不正确,并发出警告或错误以提醒我误用。Hypertext Markup Language
HTML
\gls
有没有办法强制执行此规则,可能是通过glossaries-extra
或自定义命令?任何有关如何实现此目的的指导都将不胜感激。提前感谢您的帮助!
答案1
https://www.overleaf.com/read/pdnvqtykcmcs#ede4b2
您可以在这里 grep(搜索)首字母缩略词及其扩展,grep.log
您可以在 overleaf 的other logs and files
菜单中看到它,它显示行号和找到的文本。
checking HTML
21:`HTML
21:`Hypertext Markup Language
从
\documentclass{article}
\usepackage[%
acronym, % Enable acronym functionality
nomain, % No main glossary
]{glossaries}
\NewCommandCopy\xnewaconym\newacronym
\makeatletter
\def\newacronym#1#2#3{%
\xnewaconym{#1}{#2}{#3}%
\immediate\write18{echo checking #1 >>grep.log}%
\immediate\write18{grep -on "[^{}]#2" *.tex >>grep.log}%
\immediate\write18{grep -on "[^{}]#3" *.tex >> grep.log}%
}
\makeatother
\newacronym{HTML}{HTML}{Hypertext Markup Language}
\makeglossaries
\begin{document}
\gls{HTML} should be valid whereas the pure usage of ``Hypertext Markup Language'' or ``HTML'' should throw warnings/errors as they are not used with \texttt{\gls{HTML}}
\end{document}
目前,上述项目有一个有效的 overleaf 链接,但我不能保证它会永远存在。