哪个化学包可用于路易斯公式和电子运动箭头?

哪个化学包可用于路易斯公式和电子运动箭头?

我想在我的论文中重现这组步骤,但我不知道哪个软件包可以做到这一点。我是几周前才开始使用 latex 的新手。

在此处输入图片描述

答案1

正如我在评论中所说:chemfig可以使用。但有一个缺点:在尝试掌握时,有一个无法避免的学习曲线chemfig。这需要练习和时间。想想看,这并不是一个真正的缺点:每个软件都一样。:)

让我们尝试逐步构建第一个反应。开头应该很清楚:

\begin{center}
  \schemestart
    \chemfig{Cl-Cl}
    \arrow
    2\,[Cl]
  \schemestop
\end{center}

在此处输入图片描述

现在,下一步是使用chemfig命令\lewis和添加电子\Lewis。两者的区别在于,第一个命令中的点不会扩展相应原子的边界框,而第二个命令中的点会扩展相应原子的边界框。它们的语法相同:

\lewis{<electron spec>,<atom>}

其中,<electron spec>您可以使用数字 0 到 7 来确定 45° 倍数的逆时针角度,从原子的右侧开始。每个数字后面可以跟一个:(电子对)、一个.(单个电子)、一个|(缺失电子)或什么都没有(用一条线表示的电子对)。让我们试试:

\begin{center}
  \schemestart
    \chemfig{\lewis{2:4:6:,Cl}-\lewis{0:2:6:,Cl}}
    \arrow
    2\,[\Lewis{0.2:4:6:,Cl}]
  \schemestop
\end{center}

在此处输入图片描述

现在到了最难的部分:箭头代表电子运动。为此,必须具备 TikZ 的基本知识。(无论如何,在使用时,应该了解 TikZ 基础知识chemfig。)

电子运动箭头的想法如下:

  • 在分子中箭头开始或结束的位置标记某些节点
  • tikzpicture使用选项绘制一个remember picture,overlay(它们允许引用先前定义的节点,从而可以将这些箭头添加到反应中)。为了使这更方便,chemfig提供了\chemmove宏,它只不过是所述 的包装器tikzpicture

chemfig使用符号可以标记 的分子中的节点@。其语法在一定程度上取决于您是否要标记原子或键。对于标记原子,它有一个强制参数,该参数采用节点的名称,并且必须在相关原子之前使用:标记包含名为的原子的\chemfig{@{xxx}A}节点。对于键,它必须作为键的可选参数中的第一项使用,并且再次有一个用于节点名称的强制参数:。这会将节点放置在从到 的键的中间。可以扩展参数以改变键上的位置::节点位于键的 20% 之后,即更靠近。Axxx\chemfig{A-[@{xxx}]B}xxxAB\chemfig{A-[@{xxx,.2}]B}A

我们来试试这个:

\begin{center}
  \schemestart
    \chemfig{@{Cl1}\lewis{2:4:6:,Cl}-[@{b}]@{Cl2}\lewis{0:2:6:,Cl}}
    \arrow
    2\,[\Lewis{0.2:4:6:,Cl}]
  \schemestop
\end{center}

现在应该可以用 来引用第一个氯Cl1,用 来引用第二个氯Cl2,用 来引用键b。如果我们改编手册中的示例,chemfig我们会得到如下内容:

\begin{center}
  \schemestart
    \chemfig{@{Cl1}\lewis{2:4:6:,Cl}-[@{b}]@{Cl2}\lewis{0:2:6:,Cl}}
    \arrow
    2\,[\Lewis{0.2:4:6:,Cl}]
  \schemestop
  \chemmove{
    \draw[->]
      (b) ..controls +(-90:7mm) and +(-90:7mm) .. (Cl1) ;
    \draw[->]
      (b) ..controls +(90:7mm) and +(90:7mm) .. (Cl2) ;
  }
\end{center}

经过两次编译后,它看起来如下所示:

在此处输入图片描述

语法..controls <coord1> and <coord2> ..pgf 手册。当你像我一样使用时+(<angle>:<radius>),你可以将这两个坐标视为相对于曲线将“附近”经过的箭头的起点和终点坐标的两个点。

还剩下什么?我们需要半个箭头(因为这是单个电子的运动),并且箭头的起点和终点不应该像现在这样接近:

  • 使用新的 TikZ 库 ,第一件事很容易arrows.meta。使用 加载后,\usetikzlibrary{arrows.meta}我们可以使用-Stealth而不是->。更重要的是:Stealth接受一个可选参数,您可以选择仅绘制尖端的左半部分或右半部分:-Stealth[left]-Stealth[right]。在 的可选参数中使用可选参数\draw需要我们将整个尖端放在括号中:-{Stealth[left]}
  • 对于第二点,我们可以使用 TikZ 语法shorten >=<dim>来缩短右端和shorten <=<dim>左端附近的箭头。

为了让我们的生活更舒适一点,我现在定义一个 TikZ 风格:

\tikzset{
  elmove/.style={-{Stealth[#1]},shorten >=3pt,shorten <=2pt}
}

这样我们就可以使用elmove=leftelmove=right作为 TikZ 选项,箭头在末尾缩短 3pt,在开头缩短 2pt(从箭头的角度来看):

现在完整的例子

\documentclass{article}
\usepackage{chemfig}
\usetikzlibrary{arrows.meta}
\tikzset{
  elmove/.style={-{Stealth[#1]},shorten >=3pt,shorten <=2pt}
}

\begin{document}

\begin{center}
  \schemestart
    \chemfig{@{Cl1}\lewis{2:4:6:,Cl}-[@{b}]@{Cl2}\lewis{0:2:6:,Cl}}
    \arrow
    2\,[\Lewis{0.2:4:6:,Cl}]
  \schemestop
  \chemmove{
    \draw[elmove=left]
      (b) ..controls +(-90:7mm) and +(-90:7mm) .. (Cl1) ;
    \draw[elmove=left]
      (b) ..controls +(90:7mm) and +(90:7mm) .. (Cl2) ;
  }
\end{center}

\end{document}

给出

在此处输入图片描述

我希望这能帮助你入门。:)

相关内容