在词汇表包中对首字母缩略词使用自定义别名吗?

在词汇表包中对首字母缩略词使用自定义别名吗?

我正在尝试使用包 glossaries 为我的论文整理一份首字母缩略词列表。但是,在某些情况下,我需要使用该项目的不同语法形式(德语有点复杂……),它不等同于单数或复数形式。

一般问题是:有没有办法在文本中定义项目的自定义别名形式,而不影响对首字母缩略词是否已被引入的检测?

这是我的 MWE:

\documentclass[a4paper,11pt,oneside]{scrbook}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}


\usepackage[acronym,shortcuts,toc]{glossaries} % Abkürzungsverzeichnis
\makeglossaries
\newacronym{EZM}{EZM}{extrazelluläre Matrix}

\begin{document}
In der \ac{EZM} befindet sich xyz. Die \ac{EZM} ist weiterhin xyz.
\printglossary[type=\acronymtype]
\end{document}

文本输出为:

在超大矩阵 (EZM) 中,它看起来是 xyz。 EZM 是下一个 xyz。

词汇表输出为:

EZM 超临界基质。 1

词汇表输出很好,但我希望我的文本输出看起来像这样:

在冰层外n矩阵(EZM)本身就是 xyz。 EZM 是下一个 xyz。

(注意:“extrazellulären”中多了一个“n”)

有想法吗?

答案1

我使用这段代码让它工作:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[acronym]{glossaries}
\usepackage{xspace}

\glsaddkey
 {alternative}% key
 {}% default value
 {\glsentryalternative}% no link cs
 {\Glsentryalternative}% no link ucfirst cs
 {\glsalternative}% link cs
 {\Glsalternative}% link ucfirst cs
 {\GLSalternative}% link all caps cs

\newcommand{\glslongalias}[1]{%
  \ifglsused{#1}{\glsalternative{#1}}{\glsalternative{#1} (\glsentrytext{#1})\glsunset{#1}}\xspace
}

\newacronym[
    alternative={extrazellulären Matrix}
]{EZM}{EZM}{extrazelluläre Matrix}

\makeglossaries

\begin{document}

In der \glslongalias{EZM} befindet sich xyz. Die \gls{EZM} ist weiterhin xyz.

\printacronyms

\end{document}

答案2

为此,词汇表中预定义了六个“用户键”。这些键称为user1... user6,可以使用罗马数字命令(或和形式)访问\glsuseri\glsuservi有关\Gls...示例\GLS...以及为它们指定自定义别名(宏)的方法,请参阅词汇表手册部分“4.2 其他语法结构”。

我将在此引用该手册的相关部分:

您可以使用六个用户键来提供替代方案,例如分词。例如:

\let\glsing\glsuseri
\let\glsd\glsuserii

\newcommand*{\ingkey}{user1}
\newcommand*{\edkey}{user2}

\newcommand*{\newword}[3][]{%
    \newglossaryentry{#2}{%
        name={#2},%
        description={#3},%
        \edkey={#2ed},%
        \ingkey={#2ing},#1%
    }%
}

通过上述定义,我现在可以定义如下术语:

\newword{play}{to take part in activities for enjoyment}
\newword[\edkey={ran},\ingkey={running}]{run}{to move fast using
the legs}

并在文中使用它们:

Peter is \glsing{play} in the park today.
Jane \glsd{play} in the park yesterday.
Peter and Jane \glsd{run} in the park last week.

或者,您也可以使用 \glsaddkey 定义自己的键,如下面第 4.3 节所述。

相关内容