glossaries-extra
我在文档中使用它beamer
来排版首字母缩略词和词汇表。由于在德语文本中用斜体显示英语技术术语是一种很好的做法,因此我也想用斜体显示一些首字母缩略词。
所需的输出如下 - 忽略德语单词的错误换行符,因为我没有设置任何选项来保持 MWE 较短。
为了测试我在编译源时遇到的错误,beamer
我article
在 sharelatex 上创建了一个文档。令人惊讶的是,我没有遇到任何问题。
我使用了相同的前言,删除了beamer
相关内容 - 仍然得到了想要的结果。切换到documentclass
sharelatex 时,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}