通常,glossaries-extra
包仅在第一次显示缩写的长形式。
我想设置在开始显示缩写的短形式之前显示长形式的次数。
例如:
\documentclass{article}
\usepackage{glossaries-extra}
\setabbreviationstyle{long-only-short-only}
\glssetcategoryattribute{shortperiod}{discardperiod}{true}
\glssetcategoryattribute{shortperiod}{retainfirstuseperiod}{true}
\newabbreviation[category=shortperiod]{etc}{etc.}{etcetera}
\begin{document}
\gls{etc}. \gls{etc}. \gls{etc}. \gls{etc}.
\end{document}
结果是:
etcetera. etc. etc. etc.
但是,我想设置长格式显示的次数。例如,如果我将长格式设置为显示三次,则输出将是:
etcetera. etcetera. etcetera. etc.
答案1
我认为你很难做到这一点。据我所知,你需要打开计数,然后检查计数器才能做出相应的响应。不过,还有其他方法。
\glsreset{etc}
将取消设置与第一次使用相对应的标志。因此,在下一期中\gls{...}
,您将根据全局设置获得“第一个形式”或“完整形式”。在附加词汇表,相当于,它将和\gls[prereset]{etc}
结合在一个宏中。\glsreset{...}
\gls{...}
我认为如果您想在第一次使用后在特定位置以长格式或全格式排版术语,建议的宏分别是\glsxtrfull{...}
全格式、长格式和短格式的、\glsxtrlong{...}
或\glsxtrshort{...}
;此外,这些宏独立于全局设置。
此代码将产生预期的输出
\documentclass{article}
\usepackage{glossaries-extra}
\setabbreviationstyle{long-only-short-only}
\glssetcategoryattribute{shortperiod}{discardperiod}{true}
\glssetcategoryattribute{shortperiod}{retainfirstuseperiod}{true}
\newabbreviation[category=shortperiod]{etc}{etc.}{etcetera}
\begin{document}
\gls{etc}. \glsxtrlong{etc}. \glsxtrlong{etc}. \gls{etc}.
\end{document}