本文的主要内容有:
- 如何直接输入结构式
- 好用的辅助在线工具
- 如何将用其他工具绘制的结构式完美地导入LaTeX
前面的四篇推送已经介绍了LaTeX的基本使用方法,相信大家已经能够排版出内容较为简单的文档了。在论文中我们常常会需要插入一个化合物的结构,而仅仅插入从网上找来或者自己绘制的.jpg
和.png
格式的图片往往会让LaTeX输出的.pdf
文档的大小急剧增大,同时也并不是非常好看。这篇推送将简要介绍在LaTeX中最为基础的绘制结构式的方法。
直接绘制结构式
在LaTeX中,我们可以通过一个名叫chemfig
的宏包来直接在正文中绘制矢量格式的结构式。这种结构式不仅美观好看,而且不会让文件内容增大很多,是排版论文时的最佳选择。chemfig
宏包极其强大,能够绘制复杂的反应路线图和机理,但是高级功能的语法较为复杂,本篇推送仅仅介绍其最为基础的使用方法:绘制单个分子的结构式。
在使用chemfig
宏包的时候,需要先在导言区加载它。具体而言,需要输入这样的命令:
1 | \usepackage{chemfig} |
用chemfig
宏包绘制结构的基础命令是\chemfig{<atom-1> <bond type> [<bond angle>, <bond length coefficient>, <name-1>, <name-2>, <tikz code>]<atom-2>}
,花括号内部的信息是结构式的信息。其中<atom-1>
和<atom-2>
是需要相连的官能团;<bond type>
是键的类型;中括号里的<bond angle>
用于调整键角,<bond length coefficient>
是用于调整键的长度的系数,而<name-1>
和<name-2>
是连线的两点的名称;<tikz code>
则是用tikz
宏包的命令调整键的颜色和形状的代码。
下面将简要介绍如何将我们想要绘制的结构式转化成chemfig
能理解的信息。
输入官能团
在chemfig
宏包中,输入原子团的方法是非常简单的,我们只需要按照书写原子团的方法,将数字放在_
后面,将电荷放在^
后面,chemfig
就能够理解我们输入的信息(但数字和电荷都需要被花括号包裹,不然会报错!)。需要注意的是,如果我们想要输入一个比较长的容易引起歧义的原子团,可以用圆括号括起来。每个原子会自动和下一个大写字母或者以一下特殊符号开头的内容连起来:-, =, ~, (, !, *, <, >, @
。
键
化学中非常重要的一个概念就是键了。我们可以用形同\chemfig{A-B}
的命令来将A和B这两个原子团用一根单键相联起来。而键也有许多参数,如键型、键长、键角等。接下来将简要介绍一下如何在chemfig
中自定义一根你想要的键。
键型
在chemfig
中,有非常多种类的键。下面是一个例子:
1 | 单键是\chemfig{A-B}; |
下面是上面的例子的输出结果。
键角
通过在原子团前面输入一个被方括号包裹的数字,我们可以人为地制定键的角度。有一些角度已经是实现设定好的了,比如[0]
代表零度,[1]
代表45度等。
下面是一个例子:
1 | \chemfig{A-B-[1]C-[3]-D-[7]E-[6]F} |
下面是上面的例子的输出结果。
我们也可以改变这些预设好的角度,比如将[1]
设定为30度。下面是一个例子
1 | \setchemfig{angle increment=30} |
下面是上面的例子的输出结果。
当然,我们也可以输入绝对的角度,这时候我们需要在方括号的第一个参数前面加上一个冒号。下面是一个例子:
1 | \chemfig{A-[:30]B=[:-75]C-[:10]D-[:90]>|[:60]-[:-20]E-[:0]~[:-75]F} |
下面是上面的例子的输出结果。
有时候,考虑绝对的角度是非常繁琐的,chemfig
宏包提供了设定相对于上一根键的相对角度的方法。我们只需要在方括号中第一个参数的前面加上两个冒号,就能够设定相对的角度,像下面那个例子展示的一样:
1 | \chemfig{A-[:-5]-[::20]-[::20]B-[7]-[::20]C-[::20]} |
下面是上面的例子的输出结果。
键长
我们可以在前面提到的原子团前面的方括号中加入第二个参数,这就设定了括号前面的键的长度。下面是一个例子:
1 | \chemfig{-=[,1.5]-[,0.75]=[:-20,2]} |
下面是上面的例子的输出结果。
默认情况下,chemfig
使用的键长是相对键长而非固定键长。固定键长和相对键长的关系如下图所示:
由于某些原子团太过庞大导致显示效果不佳时,我们可以尝试使用固定键长的方法来调整输出的效果。下面是一个例子:
1 | \setchemfig{fixed length=true}\chemfig{Cl-Cl} |
下面是上面的例子的输出结果。
当然也可以直接调整整个分子的大小来改变输出的效果,下面是另外一个例子:
1 | \normalsize \chemfig{H-[:30]O-[:-30]H}\par |
下面是上面的例子的输出结果。
在线工具
chemfig
的语法非常复杂,尤其是在涉及到较大的分子的时候,非常难以用人工的方法来绘制出一个分子。还好,现在有一个非常方便的在线工具,可以让大家方便地绘制出自己想要的分子的结构式。
这个工具就是Mol2chemfig Web,它使得我们能够简单地得到我们想要的结构的chemfig
命令。这是这个网页的界面。
我们可以看到,左边是一个非常好用的绘制结构式的工具。当然,我们也可以点击上方功能栏最左侧的按钮,加载我们已经绘制好的结构的信息文件。该网站支持的格式有.cml
和.mol
等非常常用的格式。画完后点击下面的GET MOL,就可以在中间那一栏得到化合物的mol信息,随后点击中下方的CONVERT按钮,就可以得到我们需要的chemfig
命令了。
我们也可以在中间的那一栏搜索我们想要的化合物,然后直接得到mol信息。
右面的一栏允许我们自定义我们生成的结构式的细节,大家在使用的时候可以根据自己的需求进行勾选。
其他工具绘制结构式插入LaTeX的方法
我们在这里以ChemDraw为例。如果是单个化合物,我们可以选择将文件另存为.cml
或者.mol
文件,随后用刚刚提到的在线工具进行转换。
如果我们绘制了非常复杂的多步反应或者绘制了机理,不方便另存为.cml
文件,我们可以直接将文件另存为.eps
文件,并用插入图片的方法将我们绘制的反应路线插入LaTeX。
顺便一提,TeXstudio(在Windows下)支持直接单击图片文件并复制后,点击.tex
文件内合适的位置直接黏贴以插入图片,完全不需要输入代码。