chemfig và MolDraw: dán chemfig, chỉnh sửa trực quan, xuất LaTeX

Đăng: 17/10/2026 · Tác giả: Scidart Academy · Thời gian đọc: ~9 phút
Mã chemfig của caffeine trong khung mã nền tối bên cạnh cấu trúc caffeine do MolDraw vẽ từ mã đó, kèm nhãn Paste chemfig và Download .tex
Dán chemfig để vẽ, chỉnh sửa trên khung vẽ và tải lại dưới dạng file .tex.

Trả lời ngắn: Sao chép mã \chemfig{…} (hoặc cả sơ đồ \schemestart … \schemestop, hay toàn bộ file .tex), mở trình soạn thảo MolDraw và nhấn Ctrl+V. MolDraw vẽ nó ra, kể cả mũi tên cong. Chỉnh sửa bằng chuột, rồi chọn Download → chemfig (.tex) để có file biên dịch được bằng pdflatex, hoặc Copy as chemfig (LaTeX) để lấy mã dán vào luận văn hay bài báo.

Bài viết này dành cho ai

chemfig là cách chuẩn để vẽ phân tử trong LaTeX. Kết quả rất đẹp và nằm ngay trong cùng file với văn bản, nhưng viết thì chậm. Bạn gõ -[:30] và =[::-60], biên dịch, xem, rồi chỉnh một góc. Sửa chemfig của người khác còn khó hơn, và một mũi tên cong trong \chemmove có thể mất nhiều lần thử.

MolDraw giờ đọc và ghi được chemfig. Bạn vẫn giữ chemfig làm định dạng và dùng khung vẽ để vẽ:

  • Xem một đoạn chemfig vẽ ra gì mà không cần biên dịch.
  • Sửa bằng chuột: di chuyển nguyên tử, lật liên kết đôi, thêm điện tích hoặc mũi tên cong.
  • Lấy lại chemfig biên dịch được bằng pdflatex, với đúng các góc bạn thấy trên màn hình.
  • Bắt đầu từ định dạng khác (SMILES, MOL, file ChemDraw, tên hợp chất) và xuất ra chemfig.

Mọi thứ chạy trên trình duyệt của bạn. Mã của bạn không được gửi lên máy chủ để chuyển đổi.

Dán chemfig lên khung vẽ

Trình soạn thảo MolDraw hiển thị sơ đồ SN2 được dán từ chemfig: hydroxide cộng bromomethane, mũi tên phản ứng ghi SN2 trên acetone, methanol cộng bromide, với hai mũi tên cong và tên dưới mỗi hợp chất
Một sơ đồ chemfig được dán bằng Ctrl+V. Tên chất, chữ trên mũi tên và cả hai mũi tên cong đều được giữ lại.
  1. Sao chép mã từ trình soạn thảo hoặc Overleaf. Một lệnh \chemfig{…}, nhiều lệnh, một khối \schemestart … \schemestop hay một tài liệu hoàn chỉnh đều được.
  2. Mở trình soạn thảo MolDraw, nhấp vào vùng trống của khung vẽ và nhấn Ctrl+V (Cmd+V trên Mac). Bạn cũng có thể dùng nút Paste hoặc nhấp chuột phải → Paste.
  3. Hình vẽ xuất hiện ở trạng thái được chọn, bên cạnh những gì đã có trên khung vẽ. Kéo nó đến chỗ bạn muốn.

Thử với sơ đồ này:

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

MolDraw giữ nguyên góc và độ dài liên kết bạn đã viết, nên hình vẽ có cùng hình dạng như trong file PDF. Các nhãn như H_3C, NH_2 hay {CO_2Me}, điện tích, cặp electron tự do từ \lewis hoặc \charge, và các nút @{name} đều được giữ lại.

Chỉnh sửa như mọi hình vẽ khác

Hình vẽ được dán là một cấu trúc MolDraw bình thường, nên mọi công cụ đều dùng được:

  • kéo nguyên tử, hoặc chọn một nhóm và xoay nó;
  • rê chuột lên một liên kết và nhấn 1, 2 hoặc 3 để thành liên kết đơn, đôi hoặc ba, và nhấp vào liên kết đôi bằng công cụ liên kết đôi để chuyển nét thứ hai sang phía bên kia;
  • thêm điện tích, cặp electron tự do và gốc tự do từ thanh công cụ hoặc menu chuột phải;
  • vẽ mũi tên cong và mũi tên lưỡi câu bằng công cụ mũi tên. Chúng gắn vào cặp electron tự do, liên kết và điện tích, và vẫn gắn khi bạn di chuyển nguyên tử;
  • sửa chữ phía trên và phía dưới mũi tên phản ứng bằng cách nhấp đúp vào nó.

Bạn còn có các phép kiểm tra hóa học mà chemfig không có: cảnh báo hóa trị, công thức và khối lượng, SMILES, và khung nhìn 3D của từng cấu trúc.

Xuất chemfig trở lại LaTeX

Menu Download của MolDraw đang mở với các nhóm Image, Chemistry và Text; mục cuối của nhóm Text, chemfig .tex, được tô sáng
Download → chemfig (.tex), ở cuối nhóm Text.

Có hai cách xuất:

  • Download → chemfig (.tex) lưu một file LaTeX hoàn chỉnh, độc lập. Biên dịch riêng nó để có file PDF của hình vẽ, hoặc chèn PDF đó vào tài liệu bằng \includegraphics.
  • Copy as chemfig (LaTeX) (trong menu Copy và trong menu chuột phải Copy as) chỉ sao chép mã hình vẽ, không có \documentclass. Dán thẳng vào luận văn hoặc bài báo.

Với mã được sao chép, hãy thêm hai dòng này vào phần preamble một lần:

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

Nếu hình vẽ có mũi tên cong hoặc ngoặc polymer, hãy biên dịch hai lần. chemfig vẽ chúng từ các vị trí lưu ở lần chạy đầu. Nếu bạn chọn một phần khung vẽ trước, chỉ phần được chọn được xuất.

Mã xuất ra trông như thế nào

Đây là file MolDraw ghi ra cho sơ đồ SN2 trong ảnh chụp màn hình đầu tiên:

% 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}

Một vài điểm cần lưu ý:

  • Liên kết dùng góc tuyệt đối (-[:90]), nên mỗi liên kết hướng giống như trên khung vẽ. Liên kết không có độ dài chuẩn sẽ có hệ số độ dài như -[:30,1.2].
  • Nguyên tử và liên kết mà mũi tên cong chạm tới được đặt tên nút (@{a1}, @{b1}). \chemmove vẽ mỗi mũi tên giữa chúng, với góc bend khớp với đường cong trên khung vẽ.
  • Tên hợp chất nằm dưới cấu trúc, chừa chỗ cho các mũi tên cong uốn xuống bên dưới.
  • Liên kết vòng được khép bằng móc (?[a]), và mỗi liên kết đôi có =^ hoặc =_ để nét thứ hai nằm cùng phía như trong MolDraw, nằm bên trong vòng đối với các vòng.
Một phản ứng tách E2 được vẽ hai lần: trên khung vẽ MolDraw ở trên, và bên dưới là cùng sơ đồ được biên dịch bằng pdflatex từ chemfig đã xuất, với cùng góc liên kết, mũi tên cong, tiêu đề và điều kiện
Phản ứng tách E2 trên khung vẽ (trên) và chemfig đã xuất được biên dịch bằng pdflatex (dưới).

Lấy chemfig từ SMILES, MOL hoặc file ChemDraw

Vì MolDraw đọc được nhiều định dạng, nó cũng hoạt động như một công cụ chuyển đổi sang chemfig:

  1. Đưa cấu trúc vào: dán SMILES hoặc InChI, tìm tên hợp chất trong ô PubChem, hoặc mở file MOL, SDF, RXN, CDXML hay CDX (ChemDraw).
  2. Làm gọn nếu cần. Chức năng làm gọn (Clean up) và xoay nằm trên thanh công cụ.
  3. Chọn Download → chemfig (.tex).

Đây là cách nhanh nhất để chuyển một loạt hình ChemDraw vào luận văn LaTeX: mở từng file và tải về dưới dạng chemfig.

Cơ chế phản ứng và mũi tên cong

Mũi tên cong là phần khó viết tay nhất trong chemfig. Trong MolDraw bạn vẽ chúng bằng chuột, hoặc nhờ trợ lý AI vẽ một cơ chế, và bản xuất sẽ tự viết các tên @{…} và khối \chemmove cho bạn.

Khi bạn dán chemfig đã có mũi tên \chemmove, MolDraw đọc xem mỗi mũi tên nối nguyên tử hay liên kết nào và bend cong về phía nào. Sau đó nó đặt mũi tên theo quy tắc vẽ riêng: đuôi bắt đầu tại cặp electron tự do, điện tích hoặc liên kết, còn đầu dừng ngay trước đích. Bạn không cần sao chép chính xác đường cong TikZ.

Để xem ví dụ hoàn chỉnh, hãy xem mẫu cơ chế chemfig: phản ứng dây chuyền gốc tự do với mũi tên lưỡi câu và cơ chế phân cực nhiều bước, mỗi mẫu là một file .tex có thể tải về.

Hỏi trợ lý AI

Trợ lý chat trong trình soạn thảo hiểu chemfig. Ví dụ, bạn có thể hỏi:

  • “Xuất hình này dưới dạng chemfig.” Trợ lý trả về mã cho nội dung trên khung vẽ.
  • “Vẽ cái này: \chemfig{H_3C-C(=[:60]O)-[:-60]OH}.” Trợ lý đặt cấu trúc lên khung vẽ.
  • “Vẽ cơ chế thủy phân ester xúc tác acid, rồi cho tôi mã chemfig.”

Những gì được giữ lại theo cả hai chiều

Mỗi mục dưới đây đều được xuất ra, biên dịch bằng pdflatex, đọc lại vào MolDraw và đối chiếu với hình vẽ gốc.

Liên kếtĐơn -, đôi =, ba ~; vòng thơm ở dạng Kekulé; phía của nét thứ hai trong liên kết đôi (=^ / =_); liên kết nêm và gạch với hướng của chúng (< > <: >:).
Kiểu liên kếtLiên kết lượn sóng, đậm, chấm và cho nhận, cùng màu liên kết, được ghi thành tùy chọn TikZ trên liên kết.
Nguyên tửNhãn có H ẩn, nhóm viết gọn (CO2Me, Ph), điện tích, điện tích khoanh tròn (\oplus), đồng vị, D và T, cặp electron tự do và chấm gốc tự do (\charge, \lewis), màu nguyên tử.
VòngMọi vòng và vòng ngưng tụ; khi nhập còn hỗ trợ *6(…), **6(…) và vòng lồng nhau.
Sơ đồ phản ứng->, <-, cân bằng <=>, nửa cân bằng <->>, cộng hưởng <->, mũi tên tổng hợp ngược; điều kiện phía trên và dưới trên nhiều dòng; \+; \chemname; sơ đồ ngắt thành nhiều hàng.
Văn bảnTiêu đề phía trên sơ đồ và ghi chú phía dưới.
Dấu ngoặcNgoặc trạng thái chuyển tiếp với ‡ (\chemleft[ … \chemright]) và đơn vị lặp polymer (\polymerdelim).
Mũi tên congMũi tên hai electron và mũi tên lưỡi câu một electron giữa các nguyên tử và liên kết được đặt tên (\chemmove).

Khi dán, MolDraw còn hiểu \definesubmol với !{name}, góc bắt đầu như \chemfig{[:30]…}, liên kết ẩn (draw=none), mũi tên nghiêng như \arrow{->}[-90] (hợp chất tiếp theo nằm bên dưới), \subscheme, và tên màu như red và blue.

Những gì chemfig không chứa được

Một số thứ trên khung vẽ MolDraw không có dạng chemfig: ảnh được dán, hình khối và dụng cụ thủy tinh, nét vẽ tay, orbital, tô màu vòng và tô sáng. Chúng bị bỏ khỏi bản xuất, và thanh gợi ý cho bạn biết những gì bị bỏ sau mỗi lần tải hoặc sao chép, nên không có gì biến mất mà không báo trước.

Mũi tên sơ đồ cong hoặc hình chữ S trở thành mũi tên chemfig thẳng. Chữ đặt bên cạnh hình vẽ (không ở trên hay dưới) được giữ thành chú thích % trong file.

Tra cứu nhanh chemfig

Các phần cú pháp chemfig bạn sẽ gặp thường xuyên nhất, và MolDraw vẽ gì cho mỗi phần:

A-B=C~DLiên kết đơn, đôi và ba. Không có góc thì liên kết hướng sang phải.
-[2], -[:30], -[::60]Góc theo bước 45°, góc tuyệt đối, hoặc góc tương đối so với liên kết trước.
-[:30,1.5]Góc và hệ số độ dài (gấp 1,5 lần độ dài liên kết bình thường).
< <: > >:Liên kết nêm và gạch. < hẹp ở nguyên tử bắt đầu.
C(-[2]H)(-[6]H)Nhánh đặt trong ngoặc đơn.
*6(=-=-=-)Vòng sáu cạnh, ở đây là benzene. **6(------) vẽ một vòng tròn bên trong; MolDraw đọc nó thành vòng benzene với các liên kết đôi xen kẽ.
?[a] … ?[a]Móc nối: tạo liên kết giữa hai nguyên tử mang cùng chữ cái (khép vòng).
=^, =_Liên kết đôi với nét thứ hai ở bên trái hoặc bên phải so với chiều đi.
\charge{90=\:}{O}Một cặp electron tự do ở góc 90° trên O. \. là một electron đơn.
@{a1}Đặt tên cho nguyên tử hoặc liên kết để \chemmove vẽ được mũi tên tới nó.
\arrow{->[above][below]}Mũi tên sơ đồ có chữ phía trên và phía dưới.

Khắc phục sự cố

  • Dán mà không có gì xảy ra. Văn bản phải chứa \chemfig hoặc \schemestart. Hãy nhấp vào khung vẽ trước, để nội dung được dán vào hình vẽ chứ không vào ô văn bản.
  • Mũi tên cong sai vị trí trong PDF. Biên dịch lần thứ hai.
  • “I do not know the key /tikz/Stealth”. Thêm \usetikzlibrary{arrows.meta,decorations.pathmorphing} vào preamble.
  • Cấu trúc bị dồn méo sau khi dán. Nếu chemfig đặt hai nguyên tử vào cùng một chỗ, MolDraw sắp xếp lại cấu trúc và báo trên thanh gợi ý. Dùng nút làm gọn (Clean up) để chỉnh lại.
  • “B” hoặc “D” biến thành boron hoặc deuterium. MolDraw đọc nhãn nguyên tử theo nghĩa hóa học. Các chữ cái giữ chỗ trong tài liệu chemfig được đọc thành nguyên tố nếu có nguyên tố tương ứng.

Hỏi và đáp

Có thể chuyển mã chemfig thành hình vẽ không?

Có. Dán mã \chemfig{…}, sơ đồ \schemestart hoặc cả file .tex lên khung vẽ MolDraw. MolDraw đọc liên kết, góc, vòng, điện tích, cặp electron tự do, mũi tên, tên hợp chất và mũi tên cong \chemmove rồi vẽ chúng ra.

MolDraw có xuất được mã chemfig không?

Có. Download → chemfig (.tex) lưu một file LaTeX độc lập, còn Copy as chemfig (LaTeX) chỉ sao chép mã hình vẽ cho tài liệu của bạn. Mã biên dịch được bằng pdflatex và lualatex.

Cần những gói LaTeX nào?

chemfig, cùng các thư viện TikZ arrows.meta và decorations.pathmorphing: \usepackage{chemfig} và \usetikzlibrary{arrows.meta,decorations.pathmorphing}. File tải về đã có sẵn các dòng này.

Vì sao mũi tên cong nằm sai chỗ sau khi biên dịch?

\chemmove của chemfig vẽ mũi tên cong từ các vị trí được lưu ở lần chạy LaTeX đầu tiên. Biên dịch file lần thứ hai, các mũi tên sẽ nằm đúng trên nguyên tử và liên kết.

Có thể chuyển file ChemDraw hoặc MOL sang chemfig không?

Có. Mở file MOL, SDF, CDXML hoặc CDX trong MolDraw, hoặc dán SMILES, rồi chọn Download → chemfig (.tex).

Những gì không chuyển được sang chemfig?

Hình ảnh, hình khối và dụng cụ thủy tinh, nét vẽ tay, orbital, tô màu vòng và tô sáng không có dạng chemfig. MolDraw liệt kê mọi thứ bị bỏ qua trên thanh gợi ý sau khi bạn tải xuống hoặc sao chép.

Có miễn phí không?

Có. Dán chemfig và chỉnh sửa là miễn phí trên trình duyệt. Tải file xuống cần một tài khoản MolDraw miễn phí.

Hướng dẫn liên quan

Cập nhật lần cuối: