引用首字母缩略词、清理和脆弱命令中的词汇表文本

引用首字母缩略词、清理和脆弱命令中的词汇表文本

第一次发帖,请多多包涵。

这似乎不是重复的,但也许我没有输入正确的关键字。

我正在尝试将首字母缩略词描述仅作为词汇表项的文本(使用包glossaries)。这样,我只需将首字母缩略词扩展保存在一个地方。问题是,只有在或不是第一次使用时,才能使用\glstextin 。请参阅下面的最低工作示例:\newacronym\gls

\documentclass[12pt]{article}

% Load hyperref before glossaries
\usepackage[colorlinks]{hyperref}

%%% Glossary support
\usepackage[xindy,
    acronym]{glossaries}

\newglossaryentry{inMyOpinion}{name={in my opinion (IMO)},
text={in my opinion},
description={This is my opinion
}}

\newacronym[]{imo}{IMO}{\protect\glstext{inMyOpinion}}


\makeglossaries

%%% BEGIN DOCUMENT
\begin{document}

% Uncomment for this to fail
%\Gls{imo}, I am right.

This is \gls{imo}! 

\Gls{imo}, I am right.

\printglossary[type=\acronymtype,title={List of Acronyms}]

%%% Start Glossary
\printglossary[type=main,,style=altlist]


\end{document}

给我:

在此处输入图片描述

如果第一\Gls{imo}行没有注释,则会出现错误。在我看来,试图将第一个单词大写的机制会因为一个脆弱的命令而失败,因为第二个用法工作正常。我尝试关闭清理并应用\protect我能想到的所有排列,但都没有成功。任何关于如何实现我想要的行为的帮助都将不胜感激。

提前致谢!

答案1

sample-dual.tex您当然可以使用词汇表文档中的代码。

\documentclass[12pt]{article}
\usepackage[colorlinks]{hyperref}
\usepackage[xindy,acronym]{glossaries}

% ------------------------------------------------------------
% The code from sample-dual.tex:
% \newdualentry[main options]{label}{short}{long}{description}

\newcommand*{\newdualentry}[5][]{%
  \newglossaryentry{main-#2}{name={#4},%
  text={#3\protect\glsadd{#2}},%
  description={#5},%
  #1
  }%
  \newacronym{#2}{#3\protect\glsadd{main-#2}}{#4}
}

\newdualentry{imo}          % label
  {IMO}                     % abbreviation
  {in my opinion}           % long form
  {This is my opinion}      % description

\makeglossaries

%%% BEGIN DOCUMENT
\begin{document}

\Gls{imo}, I am right.

This is \gls{imo}! 

\Gls{imo}, I am right.

\printglossary[type=\acronymtype,title={List of Acronyms}]
\printglossary[type=main,style=altlist]

\end{document}

相关内容