LaTeX/化學圖形
| 此頁面最後編輯於 10 個月前,可能已被放棄 此頁面自 2023 年 11 月 22 日起未進行編輯,但本書中的其他頁面可能已進行編輯。檢視 相關更改 瞭解本書的當前狀態。 您可以透過編輯和更新本書來提供幫助。如果此頁面沒有被積極編輯,請刪除此頁面上的 {{正在建設中}}。在 WB:PROJECTS 中尋求幫助。 |
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
有關\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 手冊,其中提供了對該包的更詳細和完整的介紹。
如果你需要排版化學式,你可以選擇兩個非常好的包:mhchem 和 chemmacros。
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 是一個來自更大化學套件的包,用於排版化學式、化學方程式和基本的二維化學結構。該包使用與 mhchem 略微不同的語法。chemmacros 包將對從事化學相關工作的人員大有幫助。
要使用此包,請將以下內容新增到你的序言中
\usepackage{chemformula}
化學物種使用以下命令包含\ch命令。例如
\ch{3 H2O} \\
\ch{1/2 H2O} \\
\ch{AgCl2-} \\
\ch{H2_{(aq)}} \\
呈現
如你所見,語法幾乎相同。
以下程式碼生成 皮質酮 的影像,如下所示。
\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}



