跳轉到內容

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 渲染的皮質酮


上一個:定理 索引 下一個:演算法
華夏公益教科書