ConTeXt 中带有点和空格的斜体缩写/首字母缩略词

ConTeXt 中带有点和空格的斜体缩写/首字母缩略词

我正在尝试为我的文档设置一个缩写/首字母缩略词列表,如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

相关内容