是否可以使用宏作为 \chemfig 的输入参数?

是否可以使用宏作为 \chemfig 的输入参数?

我尝试用命令( )的定义替换 ( ) code\chemfig<code>但结果不一样。\chemfig{C*6(-C-C-C-C-C-)}\mymacroC\def\mymacroC{C*6(-C-C-C-C-C-)}

有人知道为什么我不能使用自己的宏定义来实现相同的结果吗?

梅威瑟:

\documentclass{article}
\usepackage{chemfig}
\begin{document}
works as expected:\\
\chemfig{C*6(-C-C-C-C-C-)}

does not work as expected:\\
\def\mymacroC{C*6(-C-C-C-C-C-)}% or also \newcommand does not work
\chemfig{\mymacroC}
\end{document}

结果:

在此处输入图片描述

答案1

显然,\chemfig它没有尝试扩展其主要论点。

该包提供了一种定义简写的方法,

\definesubmol{hexC}{C*6(-C-C-C-C-C-)}

在序言和

\chemfig{!{hexC}}

在正文中(参见手册第 7 节)。

另一方面,“标准”

\expandafter\chemfig\expandafter{\mymacro}

就可以了(当你不需要可选参数时\chemfig)。

相关内容