词汇表:长缩略词和完整缩略词的不同显示方式

词汇表:长缩略词和完整缩略词的不同显示方式

考虑以下最小示例:

\documentclass{article}

\usepackage[acronym, shortcuts]{glossaries}
\makeglossaries

\newcommand{\abbr}[1]{\underline{#1}}
\newacronym{snr}{SNR}{\abbr{s}ignal-to-\abbr{n}oise \abbr{r}atio}

\begin{document}
    This: \gls{snr} looks as desired, but \acl{snr} doesn't.
\end{document}

我希望在第一次使用缩写词时(即“完整”版本)和打印词汇表时(即“说明”)出现下划线,但使用时“长”版本不出现下划线\acl。我的主要问题是我不知道如何切换命令,\abbr使其基本上不执行任何操作。我尝试使用类似

\newcommand{\myacl}[1]{
    \renewcommand{\abbr}[1]{##1}            
    \acl{#1}
} 

但那不起作用。有什么建议吗?

答案1

可能不是最优雅的解决方案,但似乎有效。保存的原始含义\acl,然后重新定义命令,使其\@@underline在组内禁用,然后调用其自己的原始含义。

\documentclass{article}

\usepackage[acronym,shortcuts]{glossaries}
\makeglossaries

\newcommand{\abbr}[1]{\underline{#1}}

\makeatletter
\let\aclOLD=\acl
\renewcommand{\acl}[1]{%
  \begingroup    
  \let\@@underline=\relax
  \aclOLD{#1}%
  \endgroup
}
\makeatother

\newacronym{snr}{SNR}{\abbr{s}ignal-to-\abbr{n}oise \abbr{r}atio}

\begin{document}

This: \gls{snr} looks as desired, and this: \acl{snr} too.

And also the printed glossary:

\printglossaries

\end{document}

相关内容