在 \ch 中使用 \acs* (acro + chemformula)

在 \ch 中使用 \acs* (acro + chemformula)

调用首字母缩略词时,它可能 a) 以前在文档的某个地方使用过,或者 b) 是第一次使用。在 b 的情况下,需要 acro 包打印长格式。有时,应该延迟打印长格式。实现此目的的一个好方法是\acs*{},它将打印简短版本而不“使用”首字母缩略词。\acifused{}{}{}然后,可以使用 if-else 方式控制输出。

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}

\usepackage{acro}
\usepackage{chemmacros}

\DeclareAcronym{bdc}{short=bdc,long=\iupac{benzene-1,4-dicarboxylate}}

\begin{document}
I don't want the \acs*{bdc} acronym be printed in its long form here; Instead, I'll put the explanation within parentheses in case the acronym was called for the first time\acifused{bdc}{}{ (\acs{bdc}: \acl{bdc})}.
\end{document}

使用 \acs*{} 的 MWE 结果

但是,尝试使其适应\ch{}如下命令:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}

\usepackage{acro}
\usepackage{chemmacros}

\DeclareAcronym{bdc}{short=bdc,long=\iupac{benzene-1,4-dicarboxylate}}

\begin{document}
The compound of interest is \ch{[Zn4O(\acs*{bdc})3]}\acifused{bdc}{}{ (\acs{bdc}: \acl{bdc})}.
\end{document}

将导致 pdflatex 以错误结尾:

! Package acro Error: You've requested acronym `\chemformula_star_adduct: ' on
(acro)                line 13 but you apparently haven't defined it, yet!
(acro)                Maybe you've misspelled `\chemformula_star_adduct: '?

Type <return> to continue.

我确保在命令\ac{}内部有效,在外部也有效。但是,对我来说,在内部无效。我正在使用最新版本的 TeX Live 2019。你对此有什么看法?\ch{}\acs*{}\ch{}\acs*{}\ch{}

答案1

错误信息给出了提示:输入的主要问题\ch{[Zn4O(\acs*{bdc})3]}是星号*。将其解释为加合物,请参阅手册chemformula的相应部分。chemformula's

解决方法与大多数想要放入一些不寻常或“奇怪”的东西的情况相同\ch:使用转义机制"..."

\documentclass{article}
\usepackage[T1]{fontenc}

\usepackage{acro}
\usepackage{chemmacros}

\DeclareAcronym{bdc}{short=bdc,long=\iupac{benzene-1,4-dicarboxylate}}

\begin{document}

The compound of interest is \ch{[Zn4O( "\acs*{bdc}" )3]}
\acifused{bdc}{}{ (\acs{bdc}: \acl{bdc})}.

\end{document}

在此处输入图片描述

相关内容