文章和投影仪中词汇表的行为差异

文章和投影仪中词汇表的行为差异

glossaries-extra我在文档中使用它beamer来排版首字母缩略词和词汇表。由于在德语文本中用斜体显示英语技术术语是一种很好的做法,因此我也想用斜体显示一些首字母缩略词。

所需的输出如下 - 忽略德语单词的错误换行符,因为我没有设置任何选项来保持 MWE 较短。期望输出

为了测试我在编译源时遇到的错误,beamerarticle在 sharelatex 上创建了一个文档。令人惊讶的是,我没有遇到任何问题。

我使用了相同的前言,删除了beamer相关内容 - 仍然得到了想要的结果。切换到documentclasssharelatex 时,beamer我得到了与我的项目中相同的错误。

部分错误如下:

  • ! Undefined control sequence. \in@ #1#2->\begingroup \def \in@@ ##1#1{}\toks@ \expandafter {\in@@ #2{}{}#1...
  • Illegal parameter number in definition of \glo@IAM@first. <to be read again>

我不知道为什么会出现这个问题。也许有人有想法 - 否则我就把\textit这两个首字母缩略词的定义删掉了。

\documentclass{article}

\usepackage{siunitx}
\usepackage[acronym,nopostdot,shortcuts=all,nonumberlist,xindy]{glossaries-extra}
\setabbreviationstyle{long-short}
\makeglossaries

\newglossaryentry{IAM}{
    type=\acronymtype,
    name={IAM},
    description={\textit{immobilized artificial membrane}, \glsseeformat[Glossar:]{IAM-gls}{}},
    first={\textit{immobilized artificial membrane} (IAM)\glsadd{IAM-gls}},
    plural={IAMs}
}
\newglossaryentry{FAC}{
    type=\acronymtype,
    name={FAC},
    description={\textit{frontal affinity chromatography}, \glsseeformat[Glossar:]{FAC-gls}{}},
    first={\textit{frontal affinity chromatography} (FAC)\glsadd{FAC-gls}},
    plural={FACs}
}

\newglossaryentry{IAM-gls}{%
    name={IAM},
    description={Eine \gls{IAM} ist ein System, welches eine feste Membran imitiert. Hergestellt wird sie durch kovalente Bindung von membranbildenden Lipiden in einen amorphen Siliciumdioxid-Substrat. \Glspl{IAM} werden erfolgreich genutzt, um Stofftransporte durch Zellmembranen hervorzusagen; und um Membranproteine aufzureinigen und wiederherzustellen. Die typische Größe einer \gls{IAM} besträgt \SI{54}{\angstrom} mal \SI{54}{\angstrom} mit einer durchschnittlich \SI{30}{\angstrom} dicken Schicht Wasser, welche die Oberfläche solvatisiert.}
}
\newglossaryentry{FAC-gls}{%
    name={FAC},
    description={In einem Lauf können die Bindungskonstanten K\textsubscript{d} aller aktiven, in Sub-Mikrogramm-Mengen vorliegenden Verbindungen einer Ligandenbibliothek bestimmt werden. Dazu wird das Ligandengemisch kontinuierlich auf eine Säule mit immobilisiertem Rezeptor gegeben und das Eluat Elektrospray-massenspektrometrisch analysiert. Aus dem erhaltenen Affinitätschromatogramm können die Durchbruchvolumina der einzelnen Verbindungen abgelesen und daraus die K\textsubscript{d}-Werte berechnet werden.}
}

\begin{document}

\Gls{IAM} is a nice thing. One can use the \gls{IAM} for \gls{FAC}, because \glspl{FAC} are good.

\printglossary[type=\acronymtype]

\glsresetall
\printglossary[type=main]

\end{document}

答案1

这是一个更简短的例子,可以说明这个问题:

\documentclass{beamer}

\usepackage{glossaries}

\makeglossaries

\newglossaryentry{sample}{name=sample,first={\textit{sample}},
  description={an example}}

\begin{document}

\begin{frame}
\gls{sample}
\end{frame}

\begin{frame}
\printglossary
\end{frame}

\end{document}

问题是\textit不是一个强大的命令,beamer而 是一个强大的命令article。默认情况下,该键的值first扩展自\newglossaryentry而现在,它\textit不再强大,这种扩张就中断了。

最简单的解决方案是抑制这种扩展:

\documentclass{beamer}

\usepackage{glossaries}

\glsnoexpandfields

\makeglossaries

\newglossaryentry{sample}{name=sample,first={\textit{sample}},
  description={an example}}

\begin{document}

\begin{frame}
\gls{sample}
\end{frame}

\begin{frame}
\printglossary
\end{frame}

\end{document}

相关内容