跳转到内容

LaTeX/化学图形

来自维基教科书,开放的书籍,开放的世界

LaTeX

入门
  1. 介绍
  2. 安装
  3. 安装额外的包
  4. 基础
  5. 如何获取帮助

常用元素

  1. 文档结构
  2. 文本格式
  3. 段落格式
  4. 颜色
  5. 字体
  6. 列表结构
  7. 特殊字符
  8. 国际化
  9. 旋转
  10. 表格
  11. 标题创建
  12. 页面布局
  13. 自定义页面页眉和页脚‎
  14. 导入图形
  15. 浮动、图和标题
  16. 脚注和边注
  17. 超链接
  18. 标签和交叉引用
  19. 首字母

机制

  1. 错误和警告
  2. 长度
  3. 计数器
  4. 规则和撑杆

技术文本

  1. 数学
  2. 高级数学
  3. 定理
  4. 化学图形
  5. 算法
  6. 源代码列表
  7. 语言学

特殊页面

  1. 索引
  2. 词汇表
  3. 参考文献管理
  4. 更多参考文献

特殊文档

  1. 科学报告(学士报告、硕士论文、博士论文)
  2. 信件
  3. 演示文稿
  4. 教师专栏
  5. 简历
  6. 学术期刊(MLA、APA 等)

创建图形

  1. 介绍过程图形
  2. MetaPost
  3. 图片
  4. PGF/TikZ
  5. PSTricks
  6. Xy-pic
  7. 创建 3D 图形

编程

  1. Plain TeX
  2. 创建包
  3. 创建包文档
  4. 主题

其他

  1. 模块化文档
  2. 协作编写 LaTeX 文档
  3. 导出到其他格式

帮助和建议

  1. 常见问题解答
  2. 提示和技巧

附录

  1. 作者
  2. 链接
  3. 包参考
  4. LaTeX 文档示例
  5. 索引
  6. 命令词汇表

编辑此框编辑目录

chemfig 是一个用于绘制二维化学结构的包。它是 ochem 的替代方案。ochem 需要 Perl 来绘制化学结构,而 chemfig 使用 tikz 包来生成其图形。chemfig 通过在序言中添加以下内容来使用

\usepackage{chemfig}

基本用法

[编辑 | 编辑源代码]

此包中使用的主要命令是\chemfig{}:

\chemfig{<atom1><bond type>[<angle>,<coeff>,<tikz code>]<atom2>}

<angle> 是两个原子(或节点)之间的键角。键角类型有三种:绝对角、相对角和预定义角。绝对角给出精确的角(通常为 0 到 360 度,但也可以为负数),并用以下语法表示[:<absolute angle>]. 相对角需要以下语法[::<relative angle>]并产生相对于前一个键角的角。最后,预定义角是 0 到 7 之间的整数,表示 45 度的间隔。它们用以下语法产生[< predefined angle>]. 预定义角及其对应的绝对角在下面的图中表示。



\chemfig{(-[:0,1.5,,,draw=none]\scriptstyle\color{red}0)
(-[1]1)(-[:45,1.5,,,draw=none]\scriptstyle\color{red}45)
(-[2]2)(-[:90,1.5,,,draw=none]\scriptstyle\color{red}90)
(-[3]3)(-[:135,1.5,,,draw=none]\scriptstyle\color{red}135)
(-[4]4)(-[:180,1.5,,,draw=none]\scriptstyle\color{red}180)
(-[5]5)(-[:225,1.5,,,draw=none]\scriptstyle\color{red}225)
(-[6]6)(-[:270,1.5,,,draw=none]\scriptstyle\color{red}270)
(-[7]7)(-[:315,1.5,,,draw=none]\scriptstyle\color{red}315)
-0}


<bond type> 描述了连接 <atom1> 和 <atom2> 的键。共有 9 种不同的键类型


\chemfig{A-B}\\
\chemfig{A=B}\\
\chemfig{A~B}\\
\chemfig{A>B}\\
\chemfig{A<B}\\
\chemfig{A>:B}\\
\chemfig{A<:B}\\
\chemfig{A>|B}\\
\chemfig{A<|B}\\

\chemfig{C(-[:0]H)(-[:90]H)(-[:180]H)(-[:270]H)}

<coeff> 表示键长将被乘以的因子。

<tikz code> 包括有关键的颜色或样式的附加选项。


例如,一个甲烷分子可以用以下代码生成


\chemfig{C(-[:0]H)(-[:90]H)(-[:180]H)(-[:270]H)}


线性分子(如甲烷)是一个比较弱的例子,但在 chemfig 中,分子是通过嵌套形成的。

骨架图

[编辑 | 编辑源代码]

骨架图可以按以下方式生成


\chemfig{-[:30]-[:-30]-[:30]}


\chemfig{-[:30]=[:-30]-[:30]}

环状结构

[编辑 | 编辑源代码]

环状结构遵循以下语法<atom>*<n>(code),其中“n”表示环的边数,“code”表示每个环的特定内容(键和原子)。

\chemfig{A*6(-B-C-D-E-F-)}

\chemfig{A*5(-B-C-D-E-)}

\chemfig{*6(=-=-=-)}

\chemfig{**5(------)}

路易斯结构

[编辑 | 编辑源代码]

路易斯结构使用语法 \charge{<position1>=<charge1>,<position2>=<charge2>...}{atom},其中 <position> 以极坐标表示,如 <angle>:<shift>,但如果不需要额外偏移,则可以省略 :<shift>。在电荷字段中,\.\: 将分别给出未配对和配对电子。配对电子也可以用一条线来表示,使用 \|

\charge{0=\.,90=\.,180=\.,270=\.}{C}


路易斯结构也可以包含在 \chemfig{} 中。


\chemfig{H-[:52.24]\charge{45=\:,135=\:}{O}-[::-104.48]H}

例如,考虑乙酸根离子

\chemfig{-(-[1]O^{-})=[7]O}

由于 chemfig 命令进入数学模式,因此离子电荷可以作为上标添加(一个注意事项:负离子需要将减号括起来,如示例所示)。

可以使用以下命令将离子的电荷圈起来\oplus\ominus:

\chemfig{-(-[1]O^{\ominus})=[7]O}

或者,可以使用 \chemabove{}{ } 将电荷放在离子上方

\chemfig{-\chemabove{N}{\scriptstyle\oplus}(=[1]O)-[7]O^{\ominus}}

共振结构和形式电荷

[编辑 | 编辑源代码]

共振结构需要一些数学命令

% see "Advanced Mathematics" for use of \left and \right
% add to preamble:
%	\usepackage{mathtools}	% \Longleftrightarrow
$\left\{\chemfig{O-N(=[:60]O)-[:300]O}\right\}
\Longleftrightarrow 
\left\{\chemfig{O=N(-[:60]O)-[:300]O}\right\} 
\Longleftrightarrow 
\left\{\chemfig{O-N(-[:60]O)=[:300]O}\right\}$


化学反应

[编辑 | 编辑源代码]

命令\chemrel\chemsign在最新版本中已从 chemfig 包中移除,因此要绘制化学反应,必须改用以下命令\arrow\+命令,该命令位于以下命令包围的块中\schemestart\schemestop.

有几种类型的箭头可以用\arrow命令绘制

\schemestart A\arrow{->}B\schemestop\par % by default
\schemestart A\arrow{-/>}B \schemestop\par
\schemestart A\arrow{<-}B \schemestop\par
\schemestart A\arrow{<->}B \schemestop\par
\schemestart A\arrow{<=>}B \schemestop\par
\schemestart A\arrow{<->>}B \schemestop\par
\schemestart A\arrow{<<->}B \schemestop\par
\schemestart A\arrow{0}B \schemestop\par
\schemestart A\arrow{-U>}B \schemestop\par
\schemestart
A\arrow[,,->] B\arrow[,,-{Triangle[slant=0.5,blue,width=10pt]}]
C\arrow[,,-{CF[sharp]}] D \+ E
\schemestop

Examples de l'instruction \arrow et \+ du paquet chemfig en \LaTeX

有关\arrow命令和 chemfig 中的化学反应的更多详细信息,请参阅 chemfig 文档文件 的第四部分“反应方案”。

旧版本

[编辑 | 编辑源代码]

可以使用以下命令创建化学反应

\chemrel[<arg1>][<arg2>]{<arrow code>}
\chemsign+	% produces a +

\chemrel{}中,<arg1> 和 <arg2> 分别表示放在箭头上方和下方的文本。

有四种类型的箭头可以用\chemrel{}:

A\chemrel{->}B\par 
A\chemrel{<-}B\par 
A\chemrel{<->}B\par 
A\chemrel{<>}B

化学图形命名

[编辑 | 编辑源代码]

可以使用以下命令对分子进行命名

\chemname[<dim>]{\chemfig{<code of the molecule>}}{<name>}

<dim> 插入到分子底部和 <name> 定义的名称顶部之间。默认情况下为 1.5ex。

<name> 将相对于它描述的分子居中。

\schemestart
\chemname{\chemfig{R-C(-[:-30]OH)=[:30]O}}{Carboxylic acid} 
\+
\chemname{\chemfig{R’OH}}{Alcohol} 
\arrow{->} 
\chemname{\chemfig{R-C(-[:-30]OR’)=[:30]O}}{Ester} 
\+
\chemname{\chemfig{H_2O}}{Water} 
\schemestop

在上面的反应中,\chemname{}在每个分子与其各自的名称之间插入 1.5ex 加上羧酸分子深度。这是因为反应中第一个分子的图形(羧酸)比其他分子延伸得更深。将醇放在首位会导致不同的结果

\schemestart
\chemname{\chemfig{R’OH}}{Alcohol} 
\+ 
\chemname{\chemfig{R-C(-[:-30]OH)=[:30]O}}{Carboxylic acid} 
\arrow{->} 
\chemname{\chemfig{R-C(-[:-30]OR’)=[:30]O}}{Ester} 
\+ 
\chemname{\chemfig{H_2O}}{Water}
\schemestop

这是通过添加\chemnameinit{<最深的分子>}在第一个实例之前\chemname{}在反应中,并且通过添加\chemnameinit{}在反应之后

\schemestart
\chemnameinit{\chemfig{R-C(-[:-30]OH)=[:30]O}} 
\chemname{\chemfig{R’OH}}{Alcohol} 
\+
\chemname{\chemfig{R-C(-[:-30]OH)=[:30]O}}{Carboxylic acid} 
\arrow{->} 
\chemname{\chemfig{R-C(-[:-30]OR’)=[:30]O}}{Ester} 
\+ 
\chemname{\chemfig{H_2O}}{Water} 
\chemnameinit{}
\schemestop

最后,添加\\在 <name> 中将产生换行符,允许名称跨越多行。

高级图形

[编辑 | 编辑源代码]

有关高级命令和示例,请参考 chemfig 手册,其中提供了对该包的更详细和完整的介绍。

化学式

[编辑 | 编辑源代码]

如果你需要排版化学式,你可以选择两个非常好的包:mhchemchemmacros

mhchem 包

[编辑 | 编辑源代码]

mhchem 是一个用于排版化学式和化学方程式的包。它还可以排版基本的二维化学结构。要使用此包,请将以下内容添加到你的序言中

\usepackage[version=4]{mhchem}

化学物种使用以下命令包含\ce命令。例如


\ce{3H2O} \\
\ce{1/2H2O} \\
\ce{AgCl2-} \\
\ce{H2_{(aq)}} \\

呈现





有关更多示例,请参见 meta:帮助:显示公式#化学 2

这里有一些东西是自动排版的;2\ce{H2O}中自动用下标表示,无需额外的命令。物种的量在公式之前。1/2 和其他分数自动排版,如\ce{1/2H2O}。中的电荷\ce{AgCl2-}自动用上标表示。如果电荷既不是 +1 也不是 -1,则用^表示上标,如\ce{AgCl2-}。相态不会自动用下标表示,需要用括号括起来,前面加上_,如\ce{H2_{(aq)}.

自 2016 年 2 月起,mhchem 包也适用于像维基百科这样的 MediaWiki 网站上的 TeX,使用标签 <ce>...</ce>

chemformula 包

[编辑 | 编辑源代码]

chemformula 是一个来自更大化学套件的包,用于排版化学式、化学方程式和基本的二维化学结构。该包使用与 mhchem 略微不同的语法。chemmacros 包将对从事化学相关工作的人员大有帮助。

要使用此包,请将以下内容添加到你的序言中

\usepackage{chemformula}

化学物种使用以下命令包含\ch命令。例如


\ch{3 H2O} \\
\ch{1/2 H2O} \\
\ch{AgCl2-} \\
\ch{H2_{(aq)}} \\

呈现





如你所见,语法几乎相同。

XyMTeX 包

[编辑 | 编辑源代码]

以下代码生成 皮质酮 的图像,如下所示。

\documentclass{letter}
\usepackage{epic,carom}
\pagestyle{empty}
\begin{document}
\begin{picture}(1000,500)
  \put(0,0){\steroid[d]{3D==O;{{10}}==\lmoiety{H$_{3}$C};{{13}}==\lmoiety{H$_{3}$C};{{11}}==HO}}
  \put(684,606){\sixunitv{}{2D==O;1==OH}{cdef}}
\end{picture}
\end{document}
由 XyMTeX 渲染的皮质酮


上一个:定理 索引 下一个:算法
华夏公益教科书