调用首字母缩略词时,它可能 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}
但是,尝试使其适应\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}