我正在尝试为我的文档设置一个缩写/首字母缩略词列表,如http://wiki.contextgarden.net/Command/definesynonyms。我的一些缩写是微生物的名称,例如大肠杆菌代表大肠杆菌。这些缩写必须用斜体,还必须包含点,有时还包含空格。这两件事都给我带来了麻烦:
\definesynonyms[abbreviation][abbreviations][\infull]
\abbreviation{\it{E.coli}}{\it{Escherichia coli}} % This throws an error
\starttext
Blablabla \E.coli % and this doesn't work either.
\placelistofabbreviations
\stoptext
如何才算正确呢?
答案1
您的代码中有两个错误。首先,使用\it
:它是一个切换按钮,因此正确的用法是{\it ...}
,或者您可以使用命令\italic
来代替做采取一个论点,比如\italic{...}
。
另一个是同义词。
\definesynonyms[abbreviation][abbreviations][\infull]
你现在有\abbreviation
接受参数的
\abbreviation[<optional>]{<shortform>}{<longform>},
当然也可以\shortform
得到简短形式和\infull{<shortform>}
长篇形式。
但是我们有一个问题,if <shortform>
(在正常的 catcode 机制下)不能用作控制序列名称。我们的情况就是这样。这就是可选参数的目的,提供更合适的简写。然后你可以\optional
为短格式和\infull{optional}
长格式做同样的事情。
总而言之,MWE 成为
\definesynonyms[abbreviation][abbreviations][\infull]
\abbreviation[ECOLI]{{\it E.coli}}{{\it Escherichia coli}}
\starttext
Blablabla \ECOLI
\placelistofabbreviations
\stoptext
为了让内容变成斜体,有一个更好的方法。只需将内容在每个 中输入您想要的样式\abbreviation
,并使用 设置样式\setupsynonyms
。现在我们可以很好地分别控制“列表”中的样式,尽管您可能再次想要相同的样式。MWE 进行了以下更改:
\definesynonyms[abbreviation][abbreviations][\infull]
\setupsynonyms[abbreviation][synonymstyle=\it, textstyle=\it]
\abbreviation[ECOLI]{E.coli}{Escherichia coli}
\starttext
Blablabla \ECOLI
\placelistofabbreviations[headstyle=\it, style=\it]
\stoptext