---
title: "Mẫu cơ chế chemfig: nhiều bước, mũi tên cong và mũi tên lưỡi câu gốc tự do | Blog MolDraw"
url: https://www.moldraw.com/vi/blog/chemfig-mechanism-samples.html
description: "Năm ví dụ chemfig hoàn chỉnh với mũi tên cong \\chemmove và mũi tên lưỡi câu: chlor hóa gốc tự do, cộng HBr trái quy tắc Markovnikov, aldol, E1 và brom hóa vòng thơm. Tải từng file .tex, xem PDF đã biên dịch và chỉnh sửa trong MolDraw."
lang: vi
publisher: Scidart Academy
generated: 2026-10-26
---
# Mẫu cơ chế chemfig: cơ chế nhiều bước, mũi tên cong và mũi tên lưỡi câu gốc tự do

Đăng: 17/10/2026 · Tác giả: Scidart Academy · Thời gian đọc: ~11 phút

![Mã chemfig \chemmove trong khung mã nền tối bên cạnh gốc chlorine tách hydrogen từ methane, được vẽ với ba mũi tên lưỡi câu](https://www.moldraw.com/blog/thumbs/chemfig-mechanism-samples.webp)

Cơ chế nhiều bước và cơ chế gốc tự do với mũi tên cong và mũi tên lưỡi câu, vẽ trong MolDraw và xuất ra chemfig.

**Trả lời ngắn:** dưới đây là năm cơ chế hoàn chỉnh viết bằng chemfig: hai phản ứng dây chuyền gốc tự do vẽ bằng **mũi tên lưỡi câu** một electron và ba cơ chế phân cực vẽ bằng **mũi tên cong** hai electron. Mỗi cơ chế là một file `.tex` bạn có thể tải về và biên dịch bằng pdflatex (chạy hai lần). Để sửa, dán file lên [khung vẽ MolDraw](https://www.moldraw.com/vi/), chỉnh sửa bằng chuột và chọn **Download → chemfig (.tex)**.

## Năm mẫu cơ chế

| Chlor hóa methane theo cơ chế gốc | Khơi mào, hai bước phát triển mạch và tắt mạch, dưới các tiêu đề bước. Phân cắt đồng ly, mũi tên lưỡi câu gặp nhau tạo liên kết mới. [radical-chlorination-of-methane.tex](https://www.moldraw.com/blog/chemfig-samples/radical-chlorination-of-methane.tex) |
| --- | --- |
| Cộng HBr trái quy tắc Markovnikov | Hiệu ứng peroxide trong bốn bước: phân cắt đồng ly peroxide, tạo nguyên tử bromine, cộng vào propene và tách H. Chấm gốc tự do trên carbon của công thức khung. [anti-markovnikov-hbr-addition.tex](https://www.moldraw.com/blog/chemfig-samples/anti-markovnikov-hbr-addition.tex) |
| Cộng aldol xúc tác base | Tạo enolate (cân bằng), tạo liên kết C–C và proton hóa. Mũi tên xuất phát từ điện tích và liên kết π. [base-catalysed-aldol-addition.tex](https://www.moldraw.com/blog/chemfig-samples/base-catalysed-aldol-addition.tex) |
| Tách nước E1 của tert-butanol | Một sơ đồ ngắt thành bốn hàng, với điều kiện trên mỗi mũi tên và một carbocation. [e1-dehydration-of-tert-butanol.tex](https://www.moldraw.com/blog/chemfig-samples/e1-dehydration-of-tert-butanol.tex) |
| Brom hóa benzene | Thế electrophile vào vòng thơm qua phức σ, với chất xúc tác ghi trên mũi tên. [bromination-of-benzene.tex](https://www.moldraw.com/blog/chemfig-samples/bromination-of-benzene.tex) |

Mỗi bước dưới đây có ba phần: mã chemfig (dùng nút **Copy**), file PDF mà pdflatex tạo ra từ mã đó, và hình vẽ MolDraw tạo ra khi bạn dán cùng mã đó. Cả hai hình đều được tạo từ đúng đoạn mã hiển thị, nên bạn có thể kiểm tra rằng khi dán sẽ nhận được bố cục, khoảng cách và mũi tên cong giống như trong PDF.

Để mô tả hóa học thay vì hình vẽ, hãy viết cơ chế bằng [MolScript](https://www.moldraw.com/vi/blog/molscript-reaction-mechanism-language.html): các tiểu phân dưới dạng SMILES và mỗi mũi tên cong một dòng. MolDraw tự dàn trang và có thể cho bạn cùng mã chemfig.

## Cách viết mũi tên cong trong chemfig

chemfig vẽ mũi tên giữa các nguyên tử bằng TikZ, gồm ba phần:

1. **Đặt tên hai đầu.** Đặt `@{a1}` trước một nguyên tử, hoặc trong tùy chọn của liên kết (`-[@{b1}:0]`), để đặt tên cho nó.
2. **Vẽ trong `\chemmove`.** Sau sơ đồ, `\chemmove{ \draw[…] (a1) to[bend left=50] (a2); }` vẽ mũi tên từ tên này sang tên kia.
3. **Biên dịch hai lần.** chemfig lưu vị trí của các nguyên tử được đặt tên ở lần chạy đầu và dùng chúng ở lần chạy thứ hai.

Các mẫu dùng những quy tắc sau, khớp với cách mũi tên hiển thị trên khung vẽ MolDraw:

| Hai electron | Đầu mũi tên đầy đủ: `-{Stealth[length=4pt,inset=1.5pt]}`. |
| --- | --- |
| Một electron | Mũi tên lưỡi câu, tức một nửa đầu mũi tên: `-{Straight Barb[left,length=4pt]}`. `[left]` hoặc `[right]` chỉ giữ ngạnh ở phía ngoài đường cong. |
| Đuôi bắt đầu ở đâu | Trên cặp electron tự do, điện tích âm, chấm gốc tự do hoặc giữa liên kết cho electron. `[shift={(…em,…em)}]` dời đuôi từ tâm nguyên tử tới vị trí đó. |
| Đầu dừng ở đâu | Ngay trước nguyên tử nhận electron, hoặc giữa hai nguyên tử khi tạo liên kết mới. |
| Tỉ lệ | `\setchemfig{atom sep=2.5em, …}` đặt độ dài liên kết. Mọi `shift` tính bằng em đều được đo theo nó, nên hãy giữ dòng này khi sao chép mã. |
| Độ cong | `bend left` / `bend right` kèm một góc, cùng `looseness` cho đường cong sâu. Góc được tính so với đường nối hai đầu, nên đường cong giữ nguyên hình dạng nếu chemfig giãn sơ đồ khác với khung vẽ. |

Cả năm file đều nạp hai dòng giống nhau, bạn cũng cần chúng nếu sao chép mã vào tài liệu của mình:

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

## 1. Chlor hóa methane theo cơ chế gốc

Ví dụ kinh điển đầu tiên về phản ứng dây chuyền gốc tự do, gồm bốn bước:

- **Khơi mào:** ánh sáng phá đều liên kết Cl–Cl (phân cắt đồng ly). Hai mũi tên lưỡi câu rời liên kết, mỗi mũi tên về một chlorine.
- **Phát triển mạch 1:** một nguyên tử chlorine lấy một hydrogen từ methane. Một electron từ Cl• và một electron từ liên kết C–H tạo liên kết H–Cl mới; electron C–H còn lại ở trên carbon thành gốc methyl.
- **Phát triển mạch 2:** gốc methyl lấy một nguyên tử chlorine từ Cl2 và trả lại Cl•, bắt đầu lại chu trình.
- **Tắt mạch:** hai gốc tự do kết hợp với nhau, ở đây là CH3• và Cl•.

[Tải radical-chlorination-of-methane.tex](https://www.moldraw.com/blog/chemfig-samples/radical-chlorination-of-methane.tex)

Mỗi bước là một khối `\schemestart … \schemestop` riêng. Bước tắt mạch cho thấy phần khó viết tay nhất: hai mũi tên lưỡi câu gặp nhau ở giữa liên kết mà chúng tạo ra.

### Khơi mào

```
\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{@{a1}Cl-[@{b1}:0]@{a2}Cl}
  \arrow{->[h$\nu$]}
  \chemfig{\charge{90=\.}{Cl}}
  \+
  \chemfig{\charge{90=\.}{Cl}}
\schemestop
\chemmove{
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(0.25em,-0.27em)}]b1) to[bend left=77,looseness=1.4] ([shift={(0.23em,-0.63em)}]a1);
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(-0.25em,0.27em)}]b1) to[bend left=77,looseness=1.4] ([shift={(-0.23em,0.63em)}]a2);
}
```

chemfig, biên dịch bằng pdflatex

![Chlor hóa methane theo cơ chế gốc, Khơi mào: mã chemfig này được biên dịch bằng pdflatex](https://www.moldraw.com/blog/images/chemfig-samples/radical-chlorination-of-methane-s1-latex.webp)

MolDraw, sau khi dán cùng đoạn mã

![Chlor hóa methane theo cơ chế gốc, Khơi mào: cùng mã chemfig được dán vào MolDraw, với bố cục và mũi tên cong giống nhau](https://www.moldraw.com/blog/images/chemfig-samples/radical-chlorination-of-methane-s1-moldraw.webp)

### Phát triển mạch 1: tách hydrogen

```
\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{@{a1}\charge{90=\.}{Cl}}
  \+
  \chemfig{@{a2}H-[@{b1}:0]@{a3}CH_3}
  \arrow{->}
  \chemfig{HCl}
  \+
  \chemfig{\charge{90=\.}{C}H_3}
\schemestop
\chemmove{
  \path (a2) -- (a1) coordinate[pos=0.5] (m1);
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(0em,1.71em)}]a1) to[bend left=65,looseness=1.2] ([shift={(0em,1.64em)}]m1);
  \path (a2) -- (a1) coordinate[pos=0.5] (m2);
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(0em,-0.33em)}]b1) to[bend left=57,looseness=1.1] ([shift={(0em,-1.64em)}]m2);
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(-0.45em,0.33em)}]b1) to[bend left=65,looseness=1.2] ([shift={(-0.83em,0.78em)}]a3);
}
```

chemfig, biên dịch bằng pdflatex

![Chlor hóa methane theo cơ chế gốc, Phát triển mạch 1: tách hydrogen: mã chemfig này được biên dịch bằng pdflatex](https://www.moldraw.com/blog/images/chemfig-samples/radical-chlorination-of-methane-s2-latex.webp)

MolDraw, sau khi dán cùng đoạn mã

![Chlor hóa methane theo cơ chế gốc, Phát triển mạch 1: tách hydrogen: cùng mã chemfig được dán vào MolDraw, với bố cục và mũi tên cong giống nhau](https://www.moldraw.com/blog/images/chemfig-samples/radical-chlorination-of-methane-s2-moldraw.webp)

### Phát triển mạch 2: chuyển chlorine

```
\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{@{a1}\charge{90=\.}{C}H_3}
  \+
  \chemfig{@{a2}Cl-[@{b1}:0]@{a3}Cl}
  \arrow{->}
  \chemfig{H_3C-[:0]Cl}
  \+
  \chemfig{\charge{90=\.}{Cl}}
\schemestop
\chemmove{
  \path (a2) -- (a1) coordinate[pos=0.5] (m1);
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(-0.55em,1.36em)}]a1) to[bend left=57,looseness=1.1] ([shift={(0em,0.87em)}]m1);
  \path (a2) -- (a1) coordinate[pos=0.5] (m2);
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(0em,-0.27em)}]b1) to[bend left=57,looseness=1.1] ([shift={(0em,-0.87em)}]m2);
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(-0.45em,0.27em)}]b1) to[bend left=77,looseness=1.4] ([shift={(-0.23em,0.63em)}]a3);
}
```

chemfig, biên dịch bằng pdflatex

![Chlor hóa methane theo cơ chế gốc, Phát triển mạch 2: chuyển chlorine: mã chemfig này được biên dịch bằng pdflatex](https://www.moldraw.com/blog/images/chemfig-samples/radical-chlorination-of-methane-s3-latex.webp)

MolDraw, sau khi dán cùng đoạn mã

![Chlor hóa methane theo cơ chế gốc, Phát triển mạch 2: chuyển chlorine: cùng mã chemfig được dán vào MolDraw, với bố cục và mũi tên cong giống nhau](https://www.moldraw.com/blog/images/chemfig-samples/radical-chlorination-of-methane-s3-moldraw.webp)

### Tắt mạch

```
\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{@{a1}\charge{90=\.}{C}H_3}
  \+
  \chemfig{@{a2}\charge{90=\.}{Cl}}
  \arrow{->}
  \chemfig{H_3C-[:0]Cl}
\schemestop
\chemmove{
  \path (a2) -- (a1) coordinate[pos=0.58] (m1);
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(-0.55em,1.36em)}]a1) to[bend left=57,looseness=1.1] ([shift={(0em,0em)}]m1);
  \path (a1) -- (a2) coordinate[pos=0.5] (m2);
  \draw[-{Straight Barb[right,length=4pt]}]([shift={(0em,1.37em)}]a2) to[bend right=57,looseness=1.1] ([shift={(0em,1.31em)}]m2);
}
```

chemfig, biên dịch bằng pdflatex

![Chlor hóa methane theo cơ chế gốc, Tắt mạch: mã chemfig này được biên dịch bằng pdflatex](https://www.moldraw.com/blog/images/chemfig-samples/radical-chlorination-of-methane-s4-latex.webp)

MolDraw, sau khi dán cùng đoạn mã

![Chlor hóa methane theo cơ chế gốc, Tắt mạch: cùng mã chemfig được dán vào MolDraw, với bố cục và mũi tên cong giống nhau](https://www.moldraw.com/blog/images/chemfig-samples/radical-chlorination-of-methane-s4-moldraw.webp)

Trong mã tắt mạch, các dòng `\path … coordinate` tạo một điểm giữa hai gốc tự do. Vì điểm này là một tỉ lệ của khoảng cách giữa chúng, các mũi tên lưỡi câu vẫn gặp nhau ở khoảng trống nếu bạn đổi `+ sep left` hay độ dài liên kết. Một độ lệch cố định tính từ một nguyên tử sẽ trượt khỏi khoảng trống ngay khi khoảng cách thay đổi.

Chấm gốc tự do được viết bằng `\charge{90=\.}{Cl}`: một electron đơn ở góc 90°, phía trên nguyên tử. Với CH3•, dấu chấm đặt trên carbon, `\charge{90=\.}{C}H_3`, không đặt trên cả nhóm.

## 2. Cộng HBr trái quy tắc Markovnikov (hiệu ứng peroxide)

Khi có mặt peroxide, HBr cộng vào propene theo chiều "ngược": bromine gắn vào carbon đầu mạch. Lý do là mạch phản ứng được duy trì bởi Br•, vốn cộng vào vị trí tạo ra gốc bậc hai bền hơn.

- **Khơi mào 1:** di-tert-butyl peroxide bị cắt tại liên kết O–O yếu.
- **Khơi mào 2:** gốc tert-butoxyl lấy H từ HBr và giải phóng Br•.
- **Phát triển mạch 1:** Br• cộng vào đầu CH2 của C=C. Một electron π đi vào liên kết C–Br mới và electron còn lại ở trên carbon giữa.
- **Phát triển mạch 2:** gốc bậc hai đó lấy H từ HBr, tạo 1-bromopropane và tái tạo Br•.

[Tải anti-markovnikov-hbr-addition.tex](https://www.moldraw.com/blog/chemfig-samples/anti-markovnikov-hbr-addition.tex)

### Khơi mào: phân cắt đồng ly peroxide

```
\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{-[:23](-[:-69]@{a2}O-[@{b1}:-3]@{a1}O-[:-52](-[:43])(-[:-75])-[:-161])(-[:47])-[:133]}
  \arrow{->[h$\nu$ or $\Delta$]}[,1.3]
  \chemfig{\charge{90=\.}{O}-[:-12](-[:-36])(-[:82])-[:-122]}
  \+
  \chemfig{\charge{90=\.}{O}-[:-12](-[:-36])(-[:82])-[:-122]}
\schemestop
\chemmove{
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(-0.24em,0.28em)}]b1) to[bend left=77,looseness=1.4] ([shift={(-0.23em,0.62em)}]a1);
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(0.24em,-0.28em)}]b1) to[bend left=77,looseness=1.4] ([shift={(0.23em,-0.62em)}]a2);
}
```

chemfig, biên dịch bằng pdflatex

![Cộng HBr trái quy tắc Markovnikov, Khơi mào: phân cắt đồng ly peroxide: mã chemfig này được biên dịch bằng pdflatex](https://www.moldraw.com/blog/images/chemfig-samples/anti-markovnikov-hbr-addition-s1-latex.webp)

MolDraw, sau khi dán cùng đoạn mã

![Cộng HBr trái quy tắc Markovnikov, Khơi mào: phân cắt đồng ly peroxide: cùng mã chemfig được dán vào MolDraw, với bố cục và mũi tên cong giống nhau](https://www.moldraw.com/blog/images/chemfig-samples/anti-markovnikov-hbr-addition-s1-moldraw.webp)

### Khơi mào: tạo nguyên tử bromine

```
\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{@{a1}\charge{90=\.}{O}-[:-12](-[:-36])(-[:82]@{a3})-[:-122]}
  \+
  \chemfig{@{a2}H-[@{b1}:0,0.8]@{a4}Br}
  \arrow{->}
  \chemfig{HO-[:-12](-[:-36])(-[:82])-[:-122]}
  \+
  \chemfig{\charge{90=\.}{Br}}
\schemestop
\chemmove{
  \path (a2) -- (a3) coordinate[pos=0.7] (m1);
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(0em,1.36em)}]a1) to[bend left=65,looseness=1.2] ([shift={(-0.08em,-0.19em)}]m1);
  \path (a2) -- (a1) coordinate[pos=0.5] (m2);
  \draw[-{Straight Barb[right,length=4pt]}]([shift={(0em,0.27em)}]b1) to[bend right=57,looseness=1.1] ([shift={(0em,0em)}]m2);
  \draw[-{Straight Barb[right,length=4pt]}]([shift={(-0.36em,-0.27em)}]b1) to[bend right=77,looseness=1.4] ([shift={(-0.11em,-0.63em)}]a4);
}
```

chemfig, biên dịch bằng pdflatex

![Cộng HBr trái quy tắc Markovnikov, Khơi mào: tạo nguyên tử bromine: mã chemfig này được biên dịch bằng pdflatex](https://www.moldraw.com/blog/images/chemfig-samples/anti-markovnikov-hbr-addition-s2-latex.webp)

MolDraw, sau khi dán cùng đoạn mã

![Cộng HBr trái quy tắc Markovnikov, Khơi mào: tạo nguyên tử bromine: cùng mã chemfig được dán vào MolDraw, với bố cục và mũi tên cong giống nhau](https://www.moldraw.com/blog/images/chemfig-samples/anti-markovnikov-hbr-addition-s2-moldraw.webp)

### Phát triển mạch 1: Br• cộng vào carbon ít nhóm thế hơn

```
\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{@{a1}\charge{90=\.}{Br}}
  \+
  \chemfig{@{a2}=[@{b1}:0]@{a3}-[:-60]}
  \arrow{->}
  \chemfig{-[:0]\charge{90=\.}{}-[:-60]-[:0]Br}
\schemestop
\chemmove{
  \path (a2) -- (a1) coordinate[pos=0.5] (m1);
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(0em,1.37em)}]a1) to[bend left=65,looseness=1.2] ([shift={(-0.12em,0.87em)}]m1);
  \path (a2) -- (a1) coordinate[pos=0.5] (m2);
  \draw[-{Straight Barb[right,length=4pt]}]([shift={(0em,0.48em)}]b1) to[bend right=57,looseness=1.1] ([shift={(-0.12em,0.87em)}]m2);
  \draw[-{Straight Barb[right,length=4pt]}]([shift={(-0.45em,-0.48em)}]b1) to[bend right=65,looseness=1.2] ([shift={(-0.44em,-0.53em)}]a3);
}
```

chemfig, biên dịch bằng pdflatex

![Cộng HBr trái quy tắc Markovnikov, Phát triển mạch 1: Br• cộng vào carbon ít nhóm thế hơn: mã chemfig này được biên dịch bằng pdflatex](https://www.moldraw.com/blog/images/chemfig-samples/anti-markovnikov-hbr-addition-s3-latex.webp)

MolDraw, sau khi dán cùng đoạn mã

![Cộng HBr trái quy tắc Markovnikov, Phát triển mạch 1: Br• cộng vào carbon ít nhóm thế hơn: cùng mã chemfig được dán vào MolDraw, với bố cục và mũi tên cong giống nhau](https://www.moldraw.com/blog/images/chemfig-samples/anti-markovnikov-hbr-addition-s3-moldraw.webp)

### Phát triển mạch 2: tách hydrogen từ HBr

```
\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{-[:0]@{a1}\charge{90=\.}{}-[:-60]-[:0]Br}
  \+
  \chemfig{@{a2}H-[@{b1}:0,0.8]@{a3}Br}
  \arrow{->}
  \chemfig{-[:0]-[:-60]-[:0]Br}
  \+
  \chemfig{\charge{90=\.}{Br}}
\schemestop
\chemmove{
  \path (a2) -- (a1) coordinate[pos=0.58] (m1);
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(0em,1.36em)}]a1) to[bend left=57,looseness=1.1] ([shift={(0em,0em)}]m1);
  \path (a2) -- (a1) coordinate[pos=0.5] (m2);
  \draw[-{Straight Barb[right,length=4pt]}]([shift={(0em,0.27em)}]b1) to[bend right=57,looseness=1.1] ([shift={(0.05em,0.43em)}]m2);
  \draw[-{Straight Barb[right,length=4pt]}]([shift={(-0.36em,-0.27em)}]b1) to[bend right=77,looseness=1.4] ([shift={(-0.11em,-0.63em)}]a3);
}
```

chemfig, biên dịch bằng pdflatex

![Cộng HBr trái quy tắc Markovnikov, Phát triển mạch 2: tách hydrogen từ HBr: mã chemfig này được biên dịch bằng pdflatex](https://www.moldraw.com/blog/images/chemfig-samples/anti-markovnikov-hbr-addition-s4-latex.webp)

MolDraw, sau khi dán cùng đoạn mã

![Cộng HBr trái quy tắc Markovnikov, Phát triển mạch 2: tách hydrogen từ HBr: cùng mã chemfig được dán vào MolDraw, với bố cục và mũi tên cong giống nhau](https://www.moldraw.com/blog/images/chemfig-samples/anti-markovnikov-hbr-addition-s4-moldraw.webp)

Gốc tự do ở bước phát triển mạch 2 nằm trên một carbon của công thức khung, không có chữ cái nào để gắn dấu chấm. chemfig xử lý bằng `\charge{90=\.}{}`: `\charge` trên một nguyên tử rỗng, nên các liên kết vẫn gặp nhau tại đỉnh.

Mũi tên lưỡi câu có thể bắt đầu từ liên kết cũng như từ dấu chấm. Ở bước phát triển mạch 1, các mũi tên bắt đầu trên liên kết C=C, được đặt tên bằng `=[@{b3}:0]`.

## 3. Cộng aldol xúc tác base

Một cơ chế phân cực với mũi tên hai electron, gồm ba bước:

1. Hydroxide tách một hydrogen α của acetone tạo enolate. Bước này là cân bằng (`\arrow{<=>}`).
2. Carbon của enolate tấn công carbon carbonyl của acetaldehyde, và electron π của C=O chuyển về oxygen.
3. Alkoxide lấy một proton từ nước, tạo β-hydroxy ketone và tái tạo hydroxide.

[Tải base-catalysed-aldol-addition.tex](https://www.moldraw.com/blog/chemfig-samples/base-catalysed-aldol-addition.tex)

### 1. Tạo enolate

```
\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{@{a1}HO^{-}}
  \+
  \chemfig{-[:0](-[:-60]@{a3}-[@{b1}:0,0.8]@{a2}H)=[:60]O}
  \arrow{<=>}
  \chemfig{-[:0](-[:-60]\charge{300:4pt=$\scriptstyle-$}{})=[:60]O}
  \+
  \chemfig{H_2O}
\schemestop
\chemmove{
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(1.88em,0em)}]a1) to[bend right=47] ([shift={(-0.69em,-0.4em)}]a2);
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(0.2em,0.27em)}]b1) to[bend right=65,looseness=1.2] ([shift={(0.17em,0.47em)}]a3);
}
```

chemfig, biên dịch bằng pdflatex

![Cộng aldol xúc tác base, 1. Tạo enolate: mã chemfig này được biên dịch bằng pdflatex](https://www.moldraw.com/blog/images/chemfig-samples/base-catalysed-aldol-addition-s1-latex.webp)

MolDraw, sau khi dán cùng đoạn mã

![Cộng aldol xúc tác base, 1. Tạo enolate: cùng mã chemfig được dán vào MolDraw, với bố cục và mũi tên cong giống nhau](https://www.moldraw.com/blog/images/chemfig-samples/base-catalysed-aldol-addition-s1-moldraw.webp)

### 2. Cộng nucleophile vào aldehyde

```
\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{-[:0](-[:-60]@{a1}\charge{300:4pt=$\scriptstyle-$}{})=[:60]O}
  \+
  \chemfig{@{a3}O=[@{b1}:60]@{a2}-[:0]}
  \arrow{->}
  \chemfig{O=[:0](-[:-60])-[:60]-[:0](-[:60])-[:-60]O^{-}}
\schemestop
\chemmove{
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(0.39em,1.07em)}]a1) to[bend left=57,looseness=1.1] ([shift={(-0.65em,0.38em)}]a2);
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(0.64em,0.15em)}]b1) to[bend left=77,looseness=1.4] ([shift={(0.64em,0em)}]a3);
}
```

chemfig, biên dịch bằng pdflatex

![Cộng aldol xúc tác base, 2. Cộng nucleophile vào aldehyde: mã chemfig này được biên dịch bằng pdflatex](https://www.moldraw.com/blog/images/chemfig-samples/base-catalysed-aldol-addition-s2-latex.webp)

MolDraw, sau khi dán cùng đoạn mã

![Cộng aldol xúc tác base, 2. Cộng nucleophile vào aldehyde: cùng mã chemfig được dán vào MolDraw, với bố cục và mũi tên cong giống nhau](https://www.moldraw.com/blog/images/chemfig-samples/base-catalysed-aldol-addition-s2-moldraw.webp)

### 3. Proton hóa alkoxide

```
\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{O=[:0](-[:-60])-[:60]-[:0](-[:60])-[:-60]@{a1}O^{-}}
  \+
  \chemfig{@{a3}HO-[@{b1}:90,0.8,2]@{a2}H}
  \arrow{->}
  \chemfig{O=[:0](-[:-60])-[:60]-[:0](-[:60])-[:-60]OH}
  \+
  \chemfig{HO^{-}}
\schemestop
\chemmove{
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(0.62em,1.07em)}]a1) to[bend left=40] ([shift={(-0.72em,0.26em)}]a2);
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(0.27em,0.36em)}]b1) to[bend left=77,looseness=1.4] ([shift={(1.01em,0.11em)}]a3);
}
```

chemfig, biên dịch bằng pdflatex

![Cộng aldol xúc tác base, 3. Proton hóa alkoxide: mã chemfig này được biên dịch bằng pdflatex](https://www.moldraw.com/blog/images/chemfig-samples/base-catalysed-aldol-addition-s3-latex.webp)

MolDraw, sau khi dán cùng đoạn mã

![Cộng aldol xúc tác base, 3. Proton hóa alkoxide: cùng mã chemfig được dán vào MolDraw, với bố cục và mũi tên cong giống nhau](https://www.moldraw.com/blog/images/chemfig-samples/base-catalysed-aldol-addition-s3-moldraw.webp)

Mọi mũi tên ở đây đều có đầu đầy đủ. Mỗi bước có hai mũi tên: một mũi tên tạo liên kết, một mũi tên phá liên kết và đưa electron của nó về một nguyên tử. Loại thứ hai bắt đầu trên liên kết (`b1`) và kết thúc trên nguyên tử.

Điện tích âm của enolate nằm trên một carbon của công thức khung. Nó được viết giống như gốc tự do ở mẫu 2, với `\charge` trên nguyên tử rỗng, nên liên kết không bị cắt ngắn quanh nhãn "−".

## 4. Tách nước E1 của tert-butanol: một sơ đồ trên nhiều hàng

Ba mẫu đầu đặt mỗi bước dưới một tiêu đề riêng. Bạn cũng có thể vẽ toàn bộ cơ chế thành một sơ đồ liên tục ngắt sang hàng mới, như trong nhiều sách giáo khoa:

1. Nhóm OH nhận một proton từ H3O+.
2. Nước tách ra và tạo cation tert-butyl. Đây là bước chậm.
3. Nước tách một proton từ carbon cạnh C+, và electron C–H tạo liên kết C=C của 2-methylpropene.

[Tải e1-dehydration-of-tert-butanol.tex](https://www.moldraw.com/blog/chemfig-samples/e1-dehydration-of-tert-butanol.tex)

Trong chemfig, mỗi hàng là một sơ đồ riêng bắt đầu bằng mũi tên của nó, nên điều kiện luôn đi cùng mũi tên tương ứng:

### Toàn bộ sơ đồ

```
\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
{\centering \textbf{Acid-catalysed dehydration of tert-butanol (E1)}\par}
\par\bigskip
\vspace{0.9em}
\schemestart
  \chemfig{@{a1}H\charge{90=\:,-90=\:}{O}-[:-12](-[:-36])(-[:82])-[:-122]}
  \+
  \chemfig{@{a3}H_2O^{+}-[@{b1}:90,0.8,2]@{a2}H}
\schemestop
\par\bigskip
\schemestart
  \arrow{->[protonation]}[,1.6]
  \chemfig{@{a4}H_2O^{+}-[@{b2}:-12](-[:-36])(-[:82])-[:-122]}
  \+
  \chemfig{H_2O}
\schemestop
\par\bigskip
\schemestart
  \arrow{->[$-$H$_{2}$O][slow]}
  \chemfig{-[:0]\charge{120:4pt=$\scriptstyle+$}{}(-[@{b4}:-60]-[@{b3}:0,0.8]@{a6}H)-[:60]}
  \+
  \chemfig{@{a5}H_2\charge{90=\:,-90=\:}{O}}
\schemestop
\par\vspace{1.2em}
\par\bigskip
\schemestart
  \arrow{->[$-$H$^{+}$]}
  \chemfig{-[:0](=[:-60])-[:60]}
  \+
  \chemfig{H_3O^{+}}
\schemestop
\chemmove{
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(0.37em,1.21em)}]a1) to[bend left=40] ([shift={(-0.67em,0.56em)}]a2);
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(0.27em,0.36em)}]b1) to[bend left=77,looseness=1.4] ([shift={(1.19em,0.11em)}]a3);
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(0.19em,-0.31em)}]b2) to[bend left=77,looseness=1.4] ([shift={(0.66em,-0.63em)}]a4);
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(0.55em,-1.21em)}]a5) to[bend left=47] ([shift={(0.69em,-0.4em)}]a6);
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(0em,0.27em)}]b3) to[bend right=77,looseness=1.4] ([shift={(0.08em,0.33em)}]b4);
}
```

chemfig, biên dịch bằng pdflatex

![Tách nước E1 của tert-butanol, Toàn bộ sơ đồ: mã chemfig này được biên dịch bằng pdflatex](https://www.moldraw.com/blog/images/chemfig-samples/e1-dehydration-of-tert-butanol-s1-latex.webp)

MolDraw, sau khi dán cùng đoạn mã

![Tách nước E1 của tert-butanol, Toàn bộ sơ đồ: cùng mã chemfig được dán vào MolDraw, với bố cục và mũi tên cong giống nhau](https://www.moldraw.com/blog/images/chemfig-samples/e1-dehydration-of-tert-butanol-s1-moldraw.webp)

Hai chi tiết đáng sao chép:

- `[,1.6]` làm mũi tên dài gấp 1,6 lần bình thường, để chữ *protonation* vừa phía trên thay vì lấn sang cấu trúc tiếp theo.
- Carbocation được viết là `\charge{120:4pt=$\scriptstyle+$}{}`: một dấu "+" nhỏ cách đỉnh 4 pt, ở khoảng trống rộng nhất giữa các liên kết.

## 5. Brom hóa benzene theo cơ chế thế electrophile

Electron π của benzene tấn công bromine (được FeBr3 hoạt hóa) tạo phức σ. Sau đó bromide tách proton khỏi carbon sp3, và electron C–H khôi phục vòng thơm.

[Tải bromination-of-benzene.tex](https://www.moldraw.com/blog/chemfig-samples/bromination-of-benzene.tex)

### 1. Tấn công bromine (phức σ)

```
\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{?[a]-[:90]=_[@{b1}:30]-[:-30]=_[:-90]-[:-150]?[a,{=_}]}
  \+
  \chemfig{@{a1}Br-[@{b2}:0]@{a2}Br}
  \arrow{->[FeBr$_{3}$]}[,1.1]
  \chemfig{?[a]=_[:90]-[:30](-[:90]Br)-[:-30]\charge{30:4pt=$\scriptstyle+$}{}-[:-90]=_[:-150]?[a]}
  \+
  \chemfig{Br^{-}}
\schemestop
\chemmove{
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(-0.13em,0.23em)}]b1) to[bend left=74,looseness=1.34] ([shift={(-0.13em,0.73em)}]a1);
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(-0.25em,-0.27em)}]b2) to[bend right=77,looseness=1.4] ([shift={(-0.23em,-0.63em)}]a2);
}
```

chemfig, biên dịch bằng pdflatex

![Brom hóa benzene, 1. Tấn công bromine (phức σ): mã chemfig này được biên dịch bằng pdflatex](https://www.moldraw.com/blog/images/chemfig-samples/bromination-of-benzene-s1-latex.webp)

MolDraw, sau khi dán cùng đoạn mã

![Brom hóa benzene, 1. Tấn công bromine (phức σ): cùng mã chemfig được dán vào MolDraw, với bố cục và mũi tên cong giống nhau](https://www.moldraw.com/blog/images/chemfig-samples/bromination-of-benzene-s1-moldraw.webp)

### 2. Tách H⁺ khôi phục vòng thơm

```
\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{?[a]=_[:90]-[:30](-[:90]Br)(-[@{b2}:-30]\charge{30:4pt=$\scriptstyle+$}{}-[:-90]=_[:-150]?[a])-[@{b1}:30,0.8]@{a2}H}
  \+
  \chemfig{@{a1}Br^{-}}
  \arrow{->}
  \chemfig{?[a]-[:90]=_[:30](-[:90]Br)-[:-30]=_[:-90]-[:-150]?[a,{=_}]}
  \+
  \chemfig{HBr}
\schemestop
\chemmove{
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(-1.55em,0em)}]a1) to[bend right=51] ([shift={(0.73em,0.13em)}]a2);
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(-0.04em,-0.33em)}]b1) to[bend left=51] ([shift={(0.51em,-0.02em)}]b2);
}
```

chemfig, biên dịch bằng pdflatex

![Brom hóa benzene, 2. Tách H⁺ khôi phục vòng thơm: mã chemfig này được biên dịch bằng pdflatex](https://www.moldraw.com/blog/images/chemfig-samples/bromination-of-benzene-s2-latex.webp)

MolDraw, sau khi dán cùng đoạn mã

![Brom hóa benzene, 2. Tách H⁺ khôi phục vòng thơm: cùng mã chemfig được dán vào MolDraw, với bố cục và mũi tên cong giống nhau](https://www.moldraw.com/blog/images/chemfig-samples/bromination-of-benzene-s2-moldraw.webp)

Các vòng được viết bằng góc liên kết tuyệt đối và móc nối (`?[a]`) thay vì `*6(…)`, nên mỗi vòng có đúng hướng như trên khung vẽ và mọi liên kết vòng đều có thể mang tên `@{…}` cho mũi tên. Chỉ số dưới trong FeBr3 được gõ là FeBr₃ trong MolDraw và xuất thành `FeBr$_{3}$`.

## Tự tạo cơ chế của bạn

1. Vẽ các tiểu phân và mũi tên phản ứng trong [trình soạn thảo MolDraw](https://www.moldraw.com/vi/), hoặc bắt đầu từ một trong các file này: mở file, sao chép toàn bộ và dán lên khung vẽ bằng **Ctrl+V**.
2. Chọn công cụ mũi tên cong. Kéo từ một cặp electron tự do, điện tích, chấm gốc tự do hoặc liên kết tới nguyên tử hoặc liên kết nhận electron. Với các bước một electron, chọn **Fishhook (1e⁻)** trong tùy chọn mũi tên.
3. Thêm tiêu đề bước bằng công cụ văn bản, phía trên mỗi hàng.
4. Chọn **Download → chemfig (.tex)**, hoặc **Copy as chemfig (LaTeX)** để dán mã vào tài liệu của bạn.
5. Biên dịch hai lần.

Bạn cũng có thể hỏi trợ lý AI trong trình soạn thảo, ví dụ: *“Vẽ phản ứng brom hóa gốc tự do toluene ở vị trí benzylic bằng mũi tên lưỡi câu, gồm khơi mào, phát triển mạch và tắt mạch dưới các tiêu đề.”* Trợ lý vẽ các bước lên khung vẽ, và bạn có thể xuất chúng theo cùng cách.

Khi bạn dán chemfig trở lại, MolDraw đọc mỗi mũi tên `\chemmove` bắt đầu và kết thúc trên nguyên tử hay liên kết nào, có đầu đầy đủ hay lưỡi câu, `bend` cong về phía nào và cong sâu bao nhiêu. Đầu mũi tên kết thúc tại một điểm `\path … coordinate` giữa hai nguyên tử trở thành mũi tên tạo liên kết, nên các mũi tên lưỡi câu lại gặp nhau ở khoảng trống. Khoảng cách lấy từ `\setchemfig` (`atom sep`, `compound sep`, `+ sep left`/`right`, `arrow offset`), còn chữ và nét được vẽ bằng font serif kiểu LaTeX với độ dày nét mảnh của chemfig. MolDraw vẫn điều chỉnh mỗi mũi tên theo quy tắc riêng, nên một lệnh `\draw` viết tay không cần hoàn hảo.

## Chỉnh sửa thủ công mã đã xuất

- **Đường cong thoải hơn hoặc sâu hơn:** đổi góc bend (`bend left=40` thay vì `57`), hoặc bỏ `looseness`.
- **Đường cong ở phía bên kia:** đổi `bend left` và `bend right` cho nhau. Với mũi tên lưỡi câu, đổi luôn `[left]` và `[right]` ở đầu mũi tên, để ngạnh vẫn ở phía ngoài.
- **Dời đuôi hoặc đầu mũi tên:** sửa `shift` tính bằng em. `(0em,1em)` là 1 em phía trên tâm nguyên tử.
- **Điểm gặp nhau của mũi tên lưỡi câu:** đổi `pos=0.58`. `0.5` là đúng điểm giữa hai nguyên tử.
- **Khoảng trống phía trên một hàng:** lệnh `\vspace{…em}` trước mỗi sơ đồ chừa chỗ cho các mũi tên cong lên trên. Tăng nó lên nếu mũi tên chạm vào tiêu đề.

## Hỏi và đáp

### Làm sao vẽ mũi tên lưỡi câu trong chemfig?

Đặt tên hai đầu bằng `@{…}` và vẽ mũi tên trong `\chemmove` với đầu mũi tên một nửa: `\draw[-{Straight Barb[left,length=4pt]}] (a1) to[bend left=50] (a2);` Dùng `[left]` hoặc `[right]` để ngạnh nằm ở phía ngoài đường cong. Nạp thư viện TikZ arrows.meta.

### Làm sao để hai mũi tên lưỡi câu gặp nhau ở giữa một liên kết mới?

Tạo một điểm giữa hai nguyên tử bằng `\path (a1) -- (a2) coordinate[pos=0.5] (m1);` bên trong `\chemmove`, rồi cho cả hai mũi tên lưỡi câu kết thúc tại `(m1)`. Điểm này di chuyển theo các nguyên tử dù chemfig giãn sơ đồ thế nào.

### Làm sao đặt chấm gốc tự do trên một carbon của công thức khung trong chemfig?

Dùng `\charge` trên một nguyên tử rỗng: `\charge{90=\.}{}`. Các liên kết vẫn gặp nhau tại đỉnh và dấu chấm nằm phía trên. Với nguyên tử có nhãn, viết `\charge{90=\.}{Cl}`.

### Vì sao mũi tên cong nằm sai chỗ trong file PDF?

`\chemmove` dùng các vị trí được lưu ở lần chạy LaTeX đầu tiên. Hãy biên dịch file lần thứ hai.

### Có thể chỉnh sửa các mẫu này không?

Có. Mở file .tex, sao chép nội dung và dán lên khung vẽ MolDraw. Thay đổi cấu trúc hoặc mũi tên bằng chuột, rồi tải lại chemfig (.tex).

### Các mẫu này có dùng miễn phí không?

Có. Hãy dùng chúng trong ghi chép, bộ bài tập, luận văn và bài báo.

## Hướng dẫn liên quan

[chemfig và MolDraw: dán, chỉnh sửa, xuất](https://www.moldraw.com/vi/blog/chemfig-latex-moldraw-guide.html) [MolScript: viết cơ chế dưới dạng văn bản](https://www.moldraw.com/vi/blog/molscript-reaction-mechanism-language.html) [Vẽ phản ứng hóa học](https://www.moldraw.com/vi/tools/free-chem-tools/chemical-reaction-drawer.html) [Thêm cặp electron tự do](https://www.moldraw.com/vi/blog/how-to-add-lone-pair-in-moldraw.html) [ChemDraw và MolDraw](https://www.moldraw.com/vi/blog/chemdraw-vs-moldraw-free-alternative-guide.html) [Tất cả bài viết](https://www.moldraw.com/vi/blog/)

Cập nhật lần cuối: ngày 17 tháng 10 năm 2026
