chemfig 與 MolDraw:貼上 chemfig、視覺化編輯、匯出 LaTeX

發布日期:2026 年 10 月 17 日 · 作者:Scidart Academy · 閱讀時間:約 9 分鐘
深色程式碼面板中的咖啡因 chemfig 程式碼,旁邊是 MolDraw 據此畫出的咖啡因結構,並標示 Paste chemfig 與 Download .tex
貼上 chemfig 就能繪圖,在畫布上編輯,再下載回 .tex 檔。

簡短回答:複製你的 \chemfig{…} 程式碼(或整個 \schemestart … \schemestop 流程圖,或完整的 .tex 檔),開啟 MolDraw 編輯器並按 Ctrl+V。MolDraw 會把它畫出來,連彎箭頭也不例外。用滑鼠編輯後,選擇 Download → chemfig (.tex) 取得可用 pdflatex 編譯的檔案,或選擇 Copy as chemfig (LaTeX) 複製程式碼,貼到你的論文或文章中。

適合哪些人

chemfig 是在 LaTeX 中繪製分子的標準方式。它的輸出很漂亮,而且與內文放在同一個檔案裡,但撰寫起來很慢:你要輸入 -[:30] 與 =[::-60],編譯、查看,再調整角度。修改別人寫的 chemfig 更困難,而 \chemmove 裡的一個彎箭頭可能要試好幾次。

現在 MolDraw 可以讀寫 chemfig。你可以繼續以 chemfig 為格式,同時用畫布來繪圖:

  • 不用編譯就能看到一段 chemfig 程式碼畫出來的樣子。
  • 用滑鼠修正:移動原子、翻轉雙鍵、加上電荷或彎箭頭。
  • 取回 chemfig,可用 pdflatex 編譯,角度與螢幕上看到的相同。
  • 從其他格式開始(SMILES、MOL、ChemDraw 檔案、化合物名稱),再輸出 chemfig。

一切都在你的瀏覽器中執行,你的程式碼不會被傳送到伺服器進行轉換。

把 chemfig 貼到畫布上

MolDraw 編輯器顯示從 chemfig 貼上的 SN2 流程圖:氫氧根加溴甲烷,反應箭頭上方標 SN2、下方標 acetone,生成甲醇與溴離子,含兩個彎箭頭,每個化合物下方有名稱
用 Ctrl+V 貼上的 chemfig 流程圖。名稱、箭頭文字與兩個彎箭頭都完整保留。
  1. 從你的編輯器或 Overleaf 複製程式碼。單一 \chemfig{…}、多個 \chemfig、一個 \schemestart … \schemestop 區塊或完整文件都可以。
  2. 開啟 MolDraw 編輯器,點一下畫布空白處並按 Ctrl+V(Mac 上為 Cmd+V)。你也可以使用 Paste 按鈕,或按右鍵 → Paste。
  3. 圖形出現時會呈選取狀態,位於畫布上既有內容的旁邊。把它拖曳到你想要的位置。

用這個流程圖試試看:

\schemestart
  \chemname{\chemfig{*6(=-=-=-)}}{benzene}
  \+
  \chemfig{Br-Br}
  \arrow{->[FeBr$_3$][CH$_2$Cl$_2$]}
  \chemname{\chemfig{*6(=-=(-Br)-=-)}}{bromobenzene}
\schemestop

MolDraw 會保留你寫的鍵角與鍵長,所以圖形與你 PDF 中的形狀相同。H_3C、NH_2 或 {CO_2Me} 等標籤、電荷、來自 \lewis 或 \charge 的孤電子對,以及 @{name} 節點都會一併保留。

像一般圖形一樣編輯

貼上的圖形就是一般的 MolDraw 結構,所以每種工具都能使用:

  • 拖曳原子,或選取一組原子後旋轉;
  • 將滑鼠移到鍵上並按 1、2 或 3,可改為單鍵、雙鍵或參鍵;用雙鍵工具點一下雙鍵,可把第二條線移到另一側;
  • 從工具列或右鍵選單加入電荷、孤電子對與自由基;
  • 用箭頭工具畫彎箭頭與魚鉤箭頭。它們會附著在孤電子對、鍵與電荷上,移動原子時仍保持附著;
  • 在反應箭頭上方與下方的文字上按兩下即可編輯。

你還能得到 chemfig 無法提供的化學檢查:價數警告、分子式與質量、SMILES,以及每個結構的 3D 檢視。

把 chemfig 匯出回 LaTeX

開啟的 MolDraw Download 選單,含 Image、Chemistry 與 Text 群組;Text 群組的最後一項 chemfig .tex 已醒目標示
Download → chemfig (.tex),位於 Text 群組末端。

有兩種匯出方式:

  • Download → chemfig (.tex) 會儲存一個完整、獨立的 LaTeX 檔。單獨編譯就能得到該圖形的 PDF,也可以在文件中用 \includegraphics 插入這個 PDF。
  • Copy as chemfig (LaTeX)(位於 Copy 選單與右鍵的 Copy as 選單中)只複製圖形程式碼,不含 \documentclass。可直接貼到你的論文或文章中。

若是複製的程式碼,請在導言區(preamble)加入以下兩行(只需加一次):

\usepackage{chemfig}
\usetikzlibrary{arrows.meta,decorations.pathmorphing}

如果圖形中有彎箭頭或聚合物括號,請編譯兩次。chemfig 會依據第一次執行時儲存的位置繪製它們。若先選取畫布的一部分,就只會匯出選取的內容。

匯出的程式碼長什麼樣子

這是 MolDraw 為第一張截圖中的 SN2 流程圖所寫出的檔案:

% Exported from MolDraw — compile with pdflatex / lualatex (twice: arrows and brackets use positions from the first run)
\documentclass[border=22pt,varwidth=60cm]{standalone}
\usepackage{chemfig}
\usetikzlibrary{arrows.meta,decorations.pathmorphing}
\begin{document}
\setchemfig{+ sep left=2em, + sep right=2em, arrow offset=6pt}
{\centering \textbf{SN2 of bromomethane}\par}
\par\bigskip
\schemestart
  \chemname[2em]{\chemfig{@{a1}HO^{-}}}{hydroxide}
  \+
  \chemname[2em]{\chemfig{@{a2}-[@{b1}:90]@{a3}Br}}{bromomethane}
  \arrow{->[SN2][acetone]}
  \chemname[2em]{\chemfig{-[:90,,,1]OH}}{methanol}
  \+
  \chemfig{Br^{-}}
\schemestop
\chemmove{
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(1.07em,0.77em)}]a1) to[bend right=47] ([shift={(-0.39em,-0.23em)}]a2);
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(0.21em,-0.36em)}]b1) to[bend right=77] ([shift={(0.64em,-0.23em)}]a3);
}
\end{document}

有幾點值得注意:

  • 鍵使用絕對角度(-[:90]),所以每根鍵的方向都與畫布上相同。長度不是標準值的鍵會加上長度係數,例如 -[:30,1.2]。
  • 被彎箭頭碰到的原子與鍵會得到節點名稱(@{a1}、@{b1})。\chemmove 會在它們之間畫出每個箭頭,其 bend 角度與畫布上的弧度一致。
  • 化合物名稱位於結構下方,並為往下彎的彎箭頭預留空間。
  • 環上的鍵以鉤子(?[a])閉合,每個雙鍵都會加上 =^ 或 =_,讓第二條線與 MolDraw 中位於同一側;若是環,則位於環內。
同一個 E2 脫去反應畫了兩次:上方是 MolDraw 畫布,下方是用 pdflatex 編譯匯出的 chemfig 所得的同一流程圖,鍵角、彎箭頭、標題與條件都相同
畫布上的 E2 脫去反應(上)與匯出的 chemfig 經 pdflatex 編譯後的結果(下)。

從 SMILES、MOL 或 ChemDraw 檔案取得 chemfig

由於 MolDraw 能讀取多種格式,它也可以當作chemfig 轉換工具:

  1. 匯入結構:貼上 SMILES 或 InChI、在 PubChem 搜尋框中搜尋化合物名稱,或開啟 MOL、SDF、RXN、CDXML 或 CDX(ChemDraw)檔案。
  2. 必要時先整理一下。Clean up 與旋轉功能都在工具列中。
  3. 選擇 Download → chemfig (.tex)。

這是把一批 ChemDraw 圖移到 LaTeX 論文中最快的方法:逐一開啟檔案,下載成 chemfig。

反應機構與彎箭頭

彎箭頭是 chemfig 中最難手寫的部分。在 MolDraw 中,你可以用滑鼠畫出它們,或請 AI 助理畫出反應機構,匯出時會自動替你寫好 @{…} 名稱與 \chemmove 區塊。

當你貼上已含 \chemmove 箭頭的 chemfig 時,MolDraw 會讀取每個箭頭連接哪些原子或鍵,以及它的 bend 彎向哪一側,再依自己的繪圖規則擺放箭頭:箭尾從孤電子對、電荷或鍵出發,箭頭在目標前方稍微停住。你不必照抄精確的 TikZ 曲線。

完整範例請參閱 chemfig 反應機構範例:含魚鉤箭頭的自由基連鎖反應,以及多步驟的極性反應機構,每個都可以下載成 .tex 檔。

詢問 AI 助理

編輯器中的聊天助理懂 chemfig。例如,你可以這樣問:

  • 「Export this as chemfig.」(把這個匯出成 chemfig。)它會傳回畫布上內容的程式碼。
  • 「Draw this: \chemfig{H_3C-C(=[:60]O)-[:-60]OH}.」(畫出這個。)它會把結構放到畫布上。
  • 「畫出酸催化酯水解的反應機構,然後給我 chemfig 程式碼。」

雙向都能保留的內容

以下每一項都經過匯出、以 pdflatex 編譯、再讀回 MolDraw,並與原圖核對。

鍵單鍵 -、雙鍵 =、參鍵 ~;克庫勒式芳香環;雙鍵第二條線所在的一側(=^ / =_);楔形鍵與虛線鍵及其方向(< > <: >:)。
鍵的樣式波浪鍵、粗鍵、點線鍵與配位鍵,以及鍵的顏色,以 TikZ 選項的形式寫在鍵上。
原子含隱含 H 的標籤、縮寫基團(CO2Me、Ph)、電荷、圓圈電荷(\oplus)、同位素、D 與 T、孤電子對與自由基點(\charge、\lewis)、原子顏色。
環任何環與稠環;匯入時也支援 *6(…)、**6(…) 與巢狀環。
流程圖->、<-、平衡 <=>、半平衡 <->>、共振 <->、逆合成箭頭;箭頭上下的多行條件;\+;\chemname;分成多列排列的流程圖。
文字流程圖上方的標題與下方的註解。
方括號含 ‡ 的過渡態括號(\chemleft[ … \chemright])與聚合物重複單元(\polymerdelim)。
彎箭頭已命名原子與鍵之間的雙電子箭頭與單電子魚鉤箭頭(\chemmove)。

貼上時,MolDraw 也能理解搭配 !{name} 的 \definesubmol、像 \chemfig{[:30]…} 這樣的起始角度、隱形鍵(draw=none)、像 \arrow{->}[-90] 這樣的斜向箭頭(下一個化合物位於下方)、\subscheme,以及 red、blue 等顏色名稱。

chemfig 無法容納的內容

MolDraw 畫布上有些內容在 chemfig 中沒有對應形式:貼上的圖片、圖形與實驗玻璃器材、手繪筆跡、軌域、環填色與醒目標示。這些內容不會被匯出;每次下載或複製後,提示列都會告訴你省略了哪些,所以不會有東西無聲無息地消失。

彎曲或 S 形的流程圖箭頭會變成直的 chemfig 箭頭。放在圖形旁邊(而非上方或下方)的文字,會以 % 註解的形式保留在檔案中。

chemfig 速查表

你最常遇到的 chemfig 語法片段,以及 MolDraw 為每一種畫出的內容:

A-B=C~D單鍵、雙鍵與參鍵。未指定角度時,鍵會朝右。
-[2], -[:30], -[::60]以 45° 為單位的角度、絕對角度,或相對於前一根鍵的角度。
-[:30,1.5]角度與長度係數(正常鍵長的 1.5 倍)。
< <: > >:楔形鍵與虛線鍵。< 在起始原子那一端較窄。
C(-[2]H)(-[6]H)括號中的支鏈。
*6(=-=-=-)六員環,此處為苯。**6(------) 會在環內畫一個圓;MolDraw 會把它讀成單雙鍵交替的苯環。
?[a] … ?[a]鉤子:把標有相同字母的兩個原子連起來(使環閉合)。
=^, =_第二條線位於行進方向左側或右側的雙鍵。
\charge{90=\:}{O}O 上 90° 方向的一對孤電子對。\. 表示單一電子。
@{a1}為原子或鍵命名,讓 \chemmove 可以畫箭頭指向它。
\arrow{->[above][below]}上下附有文字的流程圖箭頭。

疑難排解

  • 貼上後沒有反應。文字中必須包含 \chemfig 或 \schemestart。請先點一下畫布,讓貼上的內容進入圖形,而不是文字框。
  • PDF 中的彎箭頭位置不對。再編譯一次。
  • 「I do not know the key /tikz/Stealth」。在導言區加入 \usetikzlibrary{arrows.meta,decorations.pathmorphing}。
  • 貼上後結構看起來被壓扁了。如果 chemfig 把兩個原子放在同一個位置,MolDraw 會重新排列該結構,並在提示列中說明。可用 Clean up 按鈕把它整理好。
  • 「B」或「D」變成了硼或氘。MolDraw 會把原子標籤當作化學符號讀取。chemfig 手冊中的佔位字母,只要有對應的元素,就會被讀成元素。

問與答

可以把 chemfig 程式碼轉成圖形嗎?

可以。把 \chemfig{…} 程式碼、\schemestart 流程圖或整個 .tex 檔貼到 MolDraw 畫布上。MolDraw 會讀取鍵、角度、環、電荷、孤電子對、箭頭、化合物名稱與 \chemmove 彎箭頭,並把它們畫出來。

MolDraw 能匯出 chemfig 程式碼嗎?

可以。Download → chemfig (.tex) 會儲存一個獨立的 LaTeX 檔,Copy as chemfig (LaTeX) 則只複製圖形程式碼,方便貼到你自己的文件。程式碼可用 pdflatex 與 lualatex 編譯。

需要哪些 LaTeX 套件?

chemfig,以及 TikZ 函式庫 arrows.meta 與 decorations.pathmorphing:\usepackage{chemfig} 與 \usetikzlibrary{arrows.meta,decorations.pathmorphing}。下載的檔案中已經包含這幾行。

為什麼編譯後彎箭頭的位置不對?

chemfig 的 \chemmove 會依據第一次 LaTeX 執行時儲存的位置繪製彎箭頭。再編譯一次,箭頭就會落在對應的原子與鍵上。

可以把 ChemDraw 或 MOL 檔轉成 chemfig 嗎?

可以。在 MolDraw 中開啟 MOL、SDF、CDXML 或 CDX 檔,或貼上 SMILES,再選擇 Download → chemfig (.tex)。

哪些內容無法轉成 chemfig?

圖片、圖形與玻璃器材、手繪筆跡、軌域、環填色與醒目標示在 chemfig 中沒有對應形式。下載或複製後,MolDraw 會在提示列中列出被省略的內容。

是免費的嗎?

是的。在瀏覽器中貼上並編輯 chemfig 是免費的。下載檔案需要一個免費的 MolDraw 帳號。

相關指南

最後更新: