将词汇表缩略词纳入其他缩略词中

将词汇表缩略词纳入其他缩略词中

我想使用词汇表包将一个缩写词包含在另一个缩写词中,例如

\usepackage[acronym]{glossary}
\newacronym{a}{A}{apples}
\newacronym{ao}{AO}{apples oranges}

\begin{document}

A basket of \gls{ao} includes \gls{a}.

\end{document}

目前导致

一篮子苹果橙子(AO)包括苹果(A)。

但我想

一篮苹果橙子(AO)包括 A。

我怎样才能做到这一点?

答案1

如果您想要去掉“A”周围的括号,可以尝试以下命令\acrshort{}

\documentclass{article}
\usepackage[acronym]{glossaries}

\newacronym{a}{A}{apples}
\newacronym{ao}{AO}{apples oranges}

\begin{document}

A basket of \gls{ao} includes \acrshort{a}.

\end{document}

产生

在此处输入图片描述

如果您想要 glossary.sty 而不是 glossaries.sty,您可以类似地尝试\acrsh{}

答案2

\glsunset将标记条目为用于glossaries我相信等效的宏是\unsetacronym如果你真的在使用glossary—如果是这样,请考虑切换。

\documentclass{article}
\usepackage[acronym]{glossaries}
\newacronym{a}{A}{apples}
\newacronym{ao}{AO}{apples oranges}

\begin{document}
A basket of \gls{ao}\glsunset{a} includes \gls{a}.
\end{document}

一篮苹果橙子(AO)包括 A。

不幸的是,尝试使用 as\newacronym{ao}{AO}{apples oranges\glsunset{a}}会出现错误,传统上将首字母缩略词嵌套为 as\newacronym{ao}{AO}{\gls{a} oranges}也不起作用。可能有办法解决这个问题,但我错过了。

但是你可以修补 glossaries每次将首字母缩略词标记为已使用时,手动检查一组存储的依赖键,并将这些依赖项标记为已使用。

\documentclass{article}
\usepackage[acronym]{glossaries}
\newacronym{a}{A}{apples}
\newacronym{ao}{AO}{apples oranges}

\ExplSyntaxOn
\seq_new:N \l_DurdnT_sub_seq
\seq_new:N \l_DurdnT_sup_seq
\NewDocumentCommand{\AddAcronymDep}{mm}{
\seq_put_right:Nn \l_DurdnT_sub_seq {#1}
\seq_put_right:Nn \l_DurdnT_sup_seq {#2}
}
\NewDocumentCommand{\CheckDependentAcronyms}{m}{
  \tl_set:Nn \l_tmpa_tl {#1}
  \seq_map_pairwise_function:NNN 
    \l_DurdnT_sup_seq
    \l_DurdnT_sub_seq
    \unsetgls_if:nn
}
\cs_new:Nn \unsetgls_if:nn {
  \tl_if_eq:NnT \l_tmpa_tl {#1} {
    \glsunset{#2}
  }
}
\ExplSyntaxOff

\makeatletter
\AtBeginDocument{%
  \renewcommand*{\glsunset}[1]{%
    \gls@ifnotmeasuring
    {%
      \glsdoifexists{#1}%
      {%
        \@glsunset{#1}%
        \CheckDependentAcronyms{#1}%
      }%
    }%
  }%
}
\makeatother

\AddAcronymDep{a}{ao}% Indicate that a should be marked used when ao is used

\begin{document}
\showoutput
A basket of \gls{ao} includes \gls{a}.
\end{document}

一篮苹果橙子(AO)包括 A。

相关内容