化学公式、连字符、逗号和句号的奇怪行为。

化学公式、连字符、逗号和句号的奇怪行为。

我正在尝试写出一个公式,但无法让它发挥作用chemmacros

我想要的是 2,2'-bpy,带有撇号和连字符。我得到的是 2.2"-"bpy,带有句号和连字符周围的引号(使用连字符有点烦人,因为我从未见过我需要它作为公式中的键而不是连字符。所以你必须把它放在引号中。你必须在第二个 2 后添加一个空格,这样它们就不会变成下标。)

MWE,下面给出了正在发生的事情的示例。

\documentclass{article}
\usepackage{chemmacros}
\chemsetup{formula=chemformula, %use chemformula instead of say, mhchem
    } 

\begin{document}
\ch{(UO2)2( 2, 2 \chemprime "-" bpy)(CH3CO2)(O)(OH)}


\ch{UO2 "-" H2O2 "-" K2CO3}
\end{document}

答案1

宏后空格被忽略这就是为什么

\ch{(UO2)2( 2, 2 \chemprime "-" bpy)(CH3CO2)(O)(OH)}

chemformula看到以下输入(按出现顺序):

  • (UO2)2(解释为公式
  • 2,解释为化学计量因子
  • 2解释为化学计量因子
  • \chemprime "-"解释为公式
  • bpy)(CH3CO2)(O)(OH)解释为公式

在化学计量因子中,小数可以用逗号或点输入,但输出(选项decimal-marker)始终是一个点。化学计量因子在输出(选项)中后面有一个空格stoich-space。化合物内部"不会被删除。

自从2,2'-联吡啶从逻辑上讲,它更像是一种化学物质姓名公式我会逃避整个事情——这可以防止数字被排版为下标,防止逗号和破折号的转换:

\ch{(UO2)2( "2,2\chemprime-bpy" )(CH3CO2)(O)(OH)}

甚至

\ch{(UO2)2( "\iupac{2,2'-bpy}" )(CH3CO2)(O)(OH)}

完整示例:

\documentclass{article}

\usepackage{chemmacros}
\chemsetup{
  formula=chemformula, %use chemformula instead of say, mhchem
} 

\begin{document}

\ch{(UO2)2( 2, 2 \chemprime "-" bpy)(CH3CO2)(O)(OH)} \par
\ch{(UO2)2( "2,2\chemprime-bpy" )(CH3CO2)(O)(OH)} \par
\ch{(UO2)2( "\iupac{2,2'-bpy}" )(CH3CO2)(O)(OH)}

\end{document}

在此处输入图片描述

相关内容