LaTeX化学公式
原 文:Chemistry Formulae
译 者:Xovee
翻译时间:2023年7月14日
在LaTeX中,我们可以使用一些包来创建化学公式,例如:chemfig, ochem, streetex和xymtex等。最直观的包可能就是chemfig包了。本文介绍如何使用chemfig
包来在LaTeX中创建化学公式。
介绍
创建一个分子结构图(molecule)主要包括用线来链接不同的原子团(atoms group)。一个简单的线性公式可以由以下代码绘制:
\documentclass{article}
\usepackage{chemfig}
\begin{document}
\section{Introduction}
Writing chemical formulae with chemfig is straightforward.
\chemfig{A=B}
\end{document}
输出:
我们首先在文档的开头引入chemfig
包。命令\chemfig{A=B}
绘制了分子。符号=
定义了连接的类型。文末列出了常见的连接类型。
角度(Angles)
我们可以使用多种方法来定义分子结构中连接之间的角度。
To define chemical formulae you can use units that define the angles
\chemfig{A-[1]B-[7]C}
Absolute angles
\chemfig{A-[:50]B-[:-25]C}
Relative angles
\chemfig{A-[::50]B-[::-25]C}
输出:
在上面的例子中,我们使用了三种不同的定义角度的命令。
default units
:命令\chemfig{A-[1]B-[7]C}
中,方括号中的参数设定了角度。每个单位的值等于45°。因此,在这个例子中,角度的值是45°和315°。absolute units
:我们也可以使用绝对单位,在命令\chemfig{A-[:50]B-[:-25]C}
中,方括号中的参数直接表示角度(从水平线开始衡量),并且我们可以使用值为负数的角度。relative angles
:在第三个例子中,即命令\chemfig{A-[::50]B-[::-25]C}
,我们设定的角度值是相对于之前的角度的。
环 Rings
下面的例子介绍了如何绘制多边形:
Regular polygons:
\chemfig{A*5(-B=C-D-E=)}
Incomplete rings are also possible:
\chemfig{A*5(-B=C-D)}
输出:
命令\chemfig{A*5(-B=C-D-E=)}
的语法:
A
:第一个原子,剩下的原子们将会从这里开始绘制*5
:多边形的边数(-B=C-D-E=)
:剩下的原子和连接(bond)。如果它们的数目加一小于多边形的边数,那么命令将会绘制一个不完整的环。
我们还可以传递一个额外的参数:两个星号(**
)。例如,如果我们使用**5
而不是*5
,那么在多边形之内将会绘制一个圆圈(circle)。
连接环(Connected Rings)
下面的例子绘制了一个咖啡因的化学结构:
\documentclass{article}
\usepackage{chemfig}
\begin{document}
\section{I need caffeine.}
\chemfig{*6((=O)-N(-H)-(*5(-N=-N(-H)-))=-(=O)-N(-H)-)}
\end{document}
输出:
分支 Branches
化学公式并不都是线性的,分支公式其实才是最常见的类型。请看下面的例子:
Branched molecule \vspace{.5cm}
\chemfig{H-C(-[2]H)(-[6]H)-C(=[1]O)-[7]H}
输出:
每个节点的分支由括号及其参数所创建。例如,代码
C(-[2]H)(-[6]H)
创建了两个C的分支,角度分别为2个单位(90°)和6个单位(270°)。
分支还可以添加到环中:
Branched ring
\vspace{.5cm}
\chemfig{A*6(-B=C(-CH_3)-D-E-F(=G)=)}
输出:
语法是类似的,使用小括号来给原子添加分支。例如F(=G)
的含义是给节点F添加一个分支G。我们还可以使用嵌套来创建更复杂的例子。
自定义公式
我们还可以自定义化学公式的颜色和节点间距等参数,以及添加公式的描述文字。
{\huge
\setchemfig{atom sep=2em,bond style={line width=1pt,red,dash pattern=on 2pt off 2pt}}
\chemname
{\chemfig{H-C(-[2]H)(-[6]H)-C(=[1]O)-[7]H}}
{Acetaldehyde}
}
输出:
我们使用了三个新的命令:
\setbondstyle{ }
:在大括号中我们可以传递多个样式命令\setatomstep{2em}
:设置原子之间的间距为2em
。你也可以使用其他的距离单位。\chemname{}{}
:第一个参数是chemfig
公式,第二个参数是公式下所显示的文字。在这个例子中,显示的文字是Acetaldehyde。
我们使用的字体大小为huge
。你也可以使用其他的字体大小,公式的大小也会随之发生改变。
参考指南
连接类型
连接类型 | 代码 | 输出 |
---|---|---|
single | \chemfig{O-H} | ![]() |
double | \chemfig{O=H} | ![]() |
triple | \chemfig{O~H} | ![]() |
plain right cram | \chemfig{O>H} | ![]() |
plain left cram | \chemfig{O<H} | ![]() |
dashed right cram | \chemfig{O>:H} | ![]() |
dashed left cram | \chemfig{O<:H} | ![]() |
hollow right cram | \chemfig{O>|H} | ![]() |
hollow left cram | \chemfig{O<|H} | ![]() |