ตัวอย่างกลไกด้วย chemfig: กลไกหลายขั้น ลูกศรโค้ง และลูกศรเบ็ดตกปลาของอนุมูลอิสระ

เผยแพร่: 17 ต.ค. 2026 · ผู้เขียน: Scidart Academy · เวลาอ่าน: ~11 นาที
โค้ด chemfig \chemmove ในแผงโค้ดสีเข้ม ข้างอนุมูลคลอรีนที่ดึงไฮโดรเจนจากมีเทน วาดด้วยลูกศรเบ็ดตกปลาสามอัน
กลไกหลายขั้นและกลไกอนุมูลอิสระพร้อมลูกศรโค้งและลูกศรเบ็ดตกปลา วาดใน MolDraw และส่งออกเป็น chemfig

คำตอบสั้น ๆ: ด้านล่างคือกลไกฉบับสมบูรณ์ห้าแบบที่เขียนด้วย chemfig: ปฏิกิริยาลูกโซ่อนุมูลอิสระสองแบบที่วาดด้วยลูกศรเบ็ดตกปลาหนึ่งอิเล็กตรอน และกลไกมีขั้วสามแบบที่วาดด้วยลูกศรโค้งสองอิเล็กตรอน แต่ละแบบเป็นไฟล์ .tex ที่ดาวน์โหลดและคอมไพล์ด้วย pdflatex ได้ (คอมไพล์สองครั้ง) หากต้องการแก้ไข ให้วางไฟล์ลงบนแคนวาสของ MolDraw แก้ไขด้วยเมาส์ แล้วเลือก Download → chemfig (.tex)

ตัวอย่างทั้งห้า

คลอริเนชันแบบอนุมูลอิสระของมีเทนขั้นเริ่มต้น ขั้นแพร่กระจายสองขั้น และขั้นสิ้นสุด ใต้หัวข้อของแต่ละขั้น โฮโมไลซิส และลูกศรเบ็ดตกปลาที่มาพบกันในพันธะใหม่ radical-chlorination-of-methane.tex
การเติม HBr แบบแอนติมาร์คอฟนิคอฟผลของเพอร์ออกไซด์ในสี่ขั้น: โฮโมไลซิสของเพอร์ออกไซด์ การเกิดอะตอมโบรมีน การเติมที่โพรพีน และการดึง H จุดอนุมูลบนคาร์บอนในสูตรแบบเส้น anti-markovnikov-hbr-addition.tex
การเติมแบบแอลดอลที่เร่งด้วยเบสการเกิดอีโนเลต (สมดุล) การสร้างพันธะ C–C และการให้โปรตอน ลูกศรจากประจุและพันธะ π base-catalysed-aldol-addition.tex
การขจัดน้ำแบบ E1 ของ tert-บิวทานอลแผนภาพเดียวที่ตัดขึ้นสี่แถว พร้อมสภาวะเหนือลูกศรแต่ละอันและคาร์โบแคตไอออน e1-dehydration-of-tert-butanol.tex
โบรมิเนชันของเบนซีนปฏิกิริยาแทนที่แบบอิเล็กโทรฟิลิกบนวงอะโรมาติกผ่าน σ-complex พร้อมตัวเร่งปฏิกิริยาเหนือลูกศร bromination-of-benzene.tex

แต่ละขั้นด้านล่างมีสามส่วน: โค้ด chemfig (ใช้ปุ่ม คัดลอก) PDF ที่ pdflatex สร้างจากโค้ดนั้น และภาพที่ MolDraw วาดเมื่อคุณวางโค้ดเดียวกัน ภาพทั้งสองสร้างจากโค้ดที่แสดงทุกประการ คุณจึงตรวจได้ว่าการวางให้เลย์เอาต์ ระยะห่าง และลูกศรโค้งเหมือนใน PDF

หากต้องการอธิบายเคมีแทนภาพวาด ให้เขียนกลไกด้วย MolScript: สปีชีส์เป็น SMILES และหนึ่งบรรทัดต่อลูกศรโค้งหนึ่งอัน MolDraw จะจัดเลย์เอาต์และให้โค้ด chemfig แบบเดียวกันได้

การเขียนลูกศรโค้งใน chemfig

chemfig วาดลูกศรระหว่างอะตอมด้วย TikZ ในสามส่วน:

  1. ตั้งชื่อปลาย ใส่ @{a1} หน้าอะตอม หรือในตัวเลือกของพันธะ (-[@{b1}:0]) เพื่อตั้งชื่อ
  2. วาดใน \chemmove หลังแผนภาพ \chemmove{ \draw[…] (a1) to[bend left=50] (a2); } จะวาดลูกศรจากชื่อหนึ่งไปอีกชื่อหนึ่ง
  3. คอมไพล์สองครั้ง chemfig บันทึกตำแหน่งของอะตอมที่ตั้งชื่อไว้ในการรันครั้งแรกและใช้ในครั้งที่สอง

ตัวอย่างใช้กฎเหล่านี้ ซึ่งตรงกับหน้าตาของลูกศรบนแคนวาสของ MolDraw:

สองอิเล็กตรอนหัวลูกศรเต็ม: -{Stealth[length=4pt,inset=1.5pt]}
หนึ่งอิเล็กตรอนลูกศรเบ็ดตกปลา คือหัวลูกศรครึ่งเดียว: -{Straight Barb[left,length=4pt]} [left] หรือ [right] เก็บเงี่ยงไว้เฉพาะด้านนอกของส่วนโค้ง
หางเริ่มที่ไหนบนอิเล็กตรอนคู่โดดเดี่ยว ประจุลบ จุดอนุมูล หรือกึ่งกลางพันธะที่ให้อิเล็กตรอน [shift={(…em,…em)}] ย้ายหางจากศูนย์กลางอะตอมไปยังจุดนั้น
หัวหยุดที่ไหนก่อนถึงอะตอมที่รับอิเล็กตรอนเล็กน้อย หรือระหว่างสองอะตอมเมื่อเกิดพันธะใหม่
มาตราส่วน\setchemfig{atom sep=2.5em, …} กำหนดความยาวพันธะ ทุก shift ในหน่วย em วัดเทียบกับค่านี้ จึงควรเก็บบรรทัดนี้ไว้เมื่อคัดลอกโค้ด
ความโค้งbend left / bend right พร้อมมุม และ looseness สำหรับส่วนโค้งลึก มุมนี้สัมพัทธ์กับเส้นระหว่างปลายทั้งสอง ส่วนโค้งจึงคงรูปร่างแม้ chemfig จะจัดระยะแผนภาพต่างจากแคนวาส

ไฟล์ทั้งห้าโหลดสองบรรทัดเดียวกันนี้ ซึ่งคุณต้องใช้ด้วยหากคัดลอกโค้ดไปไว้ในเอกสารของคุณเอง:

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

1. คลอริเนชันแบบอนุมูลอิสระของมีเทน

ตัวอย่างแรกมาตรฐานของปฏิกิริยาลูกโซ่อนุมูลอิสระ ในสี่ขั้น:

  • ขั้นเริ่มต้น: แสงทำให้พันธะ Cl–Cl แตกอย่างเท่ากัน (โฮโมไลซิส) ลูกศรเบ็ดตกปลาสองอันออกจากพันธะ ไปยังคลอรีนแต่ละอะตอม
  • ขั้นแพร่กระจาย 1: อะตอมคลอรีนดึงไฮโดรเจนจากมีเทน อิเล็กตรอนหนึ่งตัวจาก Cl• และหนึ่งตัวจากพันธะ C–H สร้างพันธะ H–Cl ใหม่ อิเล็กตรอนอีกตัวของ C–H อยู่บนคาร์บอนเป็นอนุมูลเมทิล
  • ขั้นแพร่กระจาย 2: อนุมูลเมทิลดึงอะตอมคลอรีนจาก Cl2 และคืน Cl• ซึ่งเริ่มวัฏจักรใหม่อีกครั้ง
  • ขั้นสิ้นสุด: อนุมูลสองตัวจับคู่กัน ในที่นี้คือ CH3• และ Cl•
ดาวน์โหลด radical-chlorination-of-methane.tex

แต่ละขั้นเป็น \schemestart … \schemestop ของตัวเอง ขั้นสิ้นสุดแสดงส่วนที่เขียนด้วยมือยากที่สุด: ลูกศรเบ็ดตกปลาสองอันที่มาพบกันกลางพันธะที่สร้างขึ้น

ขั้นเริ่มต้น

\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 คอมไพล์ด้วย pdflatex
คลอริเนชันแบบอนุมูลอิสระของมีเทน, ขั้นเริ่มต้น: โค้ด chemfig นี้คอมไพล์ด้วย pdflatex
MolDraw หลังวางโค้ดเดียวกัน
คลอริเนชันแบบอนุมูลอิสระของมีเทน, ขั้นเริ่มต้น: โค้ด chemfig เดียวกันที่วางลงใน MolDraw ได้เลย์เอาต์และลูกศรโค้งเหมือนกัน

ขั้นแพร่กระจาย 1: การดึงไฮโดรเจน

\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 คอมไพล์ด้วย pdflatex
คลอริเนชันแบบอนุมูลอิสระของมีเทน, ขั้นแพร่กระจาย 1: การดึงไฮโดรเจน: โค้ด chemfig นี้คอมไพล์ด้วย pdflatex
MolDraw หลังวางโค้ดเดียวกัน
คลอริเนชันแบบอนุมูลอิสระของมีเทน, ขั้นแพร่กระจาย 1: การดึงไฮโดรเจน: โค้ด chemfig เดียวกันที่วางลงใน MolDraw ได้เลย์เอาต์และลูกศรโค้งเหมือนกัน

ขั้นแพร่กระจาย 2: การถ่ายโอนคลอรีน

\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 คอมไพล์ด้วย pdflatex
คลอริเนชันแบบอนุมูลอิสระของมีเทน, ขั้นแพร่กระจาย 2: การถ่ายโอนคลอรีน: โค้ด chemfig นี้คอมไพล์ด้วย pdflatex
MolDraw หลังวางโค้ดเดียวกัน
คลอริเนชันแบบอนุมูลอิสระของมีเทน, ขั้นแพร่กระจาย 2: การถ่ายโอนคลอรีน: โค้ด chemfig เดียวกันที่วางลงใน MolDraw ได้เลย์เอาต์และลูกศรโค้งเหมือนกัน

ขั้นสิ้นสุด

\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 คอมไพล์ด้วย pdflatex
คลอริเนชันแบบอนุมูลอิสระของมีเทน, ขั้นสิ้นสุด: โค้ด chemfig นี้คอมไพล์ด้วย pdflatex
MolDraw หลังวางโค้ดเดียวกัน
คลอริเนชันแบบอนุมูลอิสระของมีเทน, ขั้นสิ้นสุด: โค้ด chemfig เดียวกันที่วางลงใน MolDraw ได้เลย์เอาต์และลูกศรโค้งเหมือนกัน

ในโค้ดขั้นสิ้นสุด บรรทัด \path … coordinate สร้างจุดระหว่างอนุมูลทั้งสอง เนื่องจากเป็นสัดส่วนของระยะห่างระหว่างอนุมูล ลูกศรเบ็ดตกปลาจึงยังพบกันในช่องว่างแม้คุณจะเปลี่ยน + sep left หรือความยาวพันธะ ระยะเยื้องคงที่จากอะตอมเดียวจะพลาดช่องว่างทันทีที่ระยะห่างเปลี่ยน

จุดอนุมูลเขียนด้วย \charge{90=\.}{Cl}: อิเล็กตรอนเดี่ยวที่ 90° เหนืออะตอม สำหรับ CH3• จุดอยู่บนคาร์บอน \charge{90=\.}{C}H_3 ไม่ใช่บนทั้งหมู่

2. การเติม HBr แบบแอนติมาร์คอฟนิคอฟ (ผลของเพอร์ออกไซด์)

เมื่อมีเพอร์ออกไซด์ HBr จะเติมที่โพรพีนแบบ "กลับด้าน": โบรมีนไปอยู่ที่คาร์บอนปลาย เหตุผลคือลูกโซ่ดำเนินไปด้วย Br• ซึ่งเติมในตำแหน่งที่ทิ้งอนุมูลทุติยภูมิที่เสถียรกว่าไว้

  • ขั้นเริ่มต้น 1: ได-tert-บิวทิลเพอร์ออกไซด์แตกที่พันธะ O–O ที่อ่อน
  • ขั้นเริ่มต้น 2: อนุมูล tert-บิวทอกซิลดึง H จาก HBr และปลดปล่อย Br•
  • ขั้นแพร่กระจาย 1: Br• เติมที่ปลาย CH2 ของ C=C อิเล็กตรอน π หนึ่งตัวไปที่พันธะ C–Br ใหม่ อีกตัวอยู่บนคาร์บอนตรงกลาง
  • ขั้นแพร่กระจาย 2: อนุมูลทุติยภูมินั้นดึง H จาก HBr ได้ 1-โบรโมโพรเพน และสร้าง Br• ขึ้นใหม่
ดาวน์โหลด anti-markovnikov-hbr-addition.tex

ขั้นเริ่มต้น: โฮโมไลซิสของเพอร์ออกไซด์

\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 คอมไพล์ด้วย pdflatex
การเติม HBr แบบแอนติมาร์คอฟนิคอฟ, ขั้นเริ่มต้น: โฮโมไลซิสของเพอร์ออกไซด์: โค้ด chemfig นี้คอมไพล์ด้วย pdflatex
MolDraw หลังวางโค้ดเดียวกัน
การเติม HBr แบบแอนติมาร์คอฟนิคอฟ, ขั้นเริ่มต้น: โฮโมไลซิสของเพอร์ออกไซด์: โค้ด chemfig เดียวกันที่วางลงใน MolDraw ได้เลย์เอาต์และลูกศรโค้งเหมือนกัน

ขั้นเริ่มต้น: การเกิดอะตอมโบรมีน

\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 คอมไพล์ด้วย pdflatex
การเติม HBr แบบแอนติมาร์คอฟนิคอฟ, ขั้นเริ่มต้น: การเกิดอะตอมโบรมีน: โค้ด chemfig นี้คอมไพล์ด้วย pdflatex
MolDraw หลังวางโค้ดเดียวกัน
การเติม HBr แบบแอนติมาร์คอฟนิคอฟ, ขั้นเริ่มต้น: การเกิดอะตอมโบรมีน: โค้ด chemfig เดียวกันที่วางลงใน MolDraw ได้เลย์เอาต์และลูกศรโค้งเหมือนกัน

ขั้นแพร่กระจาย 1: Br• เติมที่คาร์บอนที่มีหมู่แทนที่น้อยกว่า

\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 คอมไพล์ด้วย pdflatex
การเติม HBr แบบแอนติมาร์คอฟนิคอฟ, ขั้นแพร่กระจาย 1: Br• เติมที่คาร์บอนที่มีหมู่แทนที่น้อยกว่า: โค้ด chemfig นี้คอมไพล์ด้วย pdflatex
MolDraw หลังวางโค้ดเดียวกัน
การเติม HBr แบบแอนติมาร์คอฟนิคอฟ, ขั้นแพร่กระจาย 1: Br• เติมที่คาร์บอนที่มีหมู่แทนที่น้อยกว่า: โค้ด chemfig เดียวกันที่วางลงใน MolDraw ได้เลย์เอาต์และลูกศรโค้งเหมือนกัน

ขั้นแพร่กระจาย 2: การดึงไฮโดรเจนจาก 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 คอมไพล์ด้วย pdflatex
การเติม HBr แบบแอนติมาร์คอฟนิคอฟ, ขั้นแพร่กระจาย 2: การดึงไฮโดรเจนจาก HBr: โค้ด chemfig นี้คอมไพล์ด้วย pdflatex
MolDraw หลังวางโค้ดเดียวกัน
การเติม HBr แบบแอนติมาร์คอฟนิคอฟ, ขั้นแพร่กระจาย 2: การดึงไฮโดรเจนจาก HBr: โค้ด chemfig เดียวกันที่วางลงใน MolDraw ได้เลย์เอาต์และลูกศรโค้งเหมือนกัน

อนุมูลในขั้นแพร่กระจาย 2 อยู่บนคาร์บอนในสูตรแบบเส้น ซึ่งไม่มีตัวอักษรให้ใส่จุด chemfig จัดการด้วย \charge{90=\.}{}: \charge บนอะตอมว่าง พันธะจึงยังมาบรรจบที่มุม

ลูกศรเบ็ดตกปลาเริ่มจากพันธะได้เช่นเดียวกับจากจุด ในขั้นแพร่กระจาย 1 ลูกศรเริ่มที่พันธะ C=C ซึ่งตั้งชื่อด้วย =[@{b3}:0]

3. การเติมแบบแอลดอลที่เร่งด้วยเบส

กลไกมีขั้วที่ใช้ลูกศรสองอิเล็กตรอน ในสามขั้น:

  1. ไฮดรอกไซด์ดึง α-ไฮโดรเจนจากแอซีโตนได้อีโนเลต ขั้นนี้เป็นสมดุล (\arrow{<=>})
  2. คาร์บอนของอีโนเลตเข้าทำคาร์บอนของหมู่คาร์บอนิลในแอซีตัลดีไฮด์ และอิเล็กตรอน π ของ C=O ย้ายไปที่ออกซิเจน
  3. แอลคอกไซด์รับโปรตอนจากน้ำ ได้ β-ไฮดรอกซีคีโตนและไฮดรอกไซด์กลับคืน
ดาวน์โหลด base-catalysed-aldol-addition.tex

1. การเกิดอีโนเลต

\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 คอมไพล์ด้วย pdflatex
การเติมแบบแอลดอลที่เร่งด้วยเบส, 1. การเกิดอีโนเลต: โค้ด chemfig นี้คอมไพล์ด้วย pdflatex
MolDraw หลังวางโค้ดเดียวกัน
การเติมแบบแอลดอลที่เร่งด้วยเบส, 1. การเกิดอีโนเลต: โค้ด chemfig เดียวกันที่วางลงใน MolDraw ได้เลย์เอาต์และลูกศรโค้งเหมือนกัน

2. การเติมแบบนิวคลีโอไฟล์ที่แอลดีไฮด์

\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 คอมไพล์ด้วย pdflatex
การเติมแบบแอลดอลที่เร่งด้วยเบส, 2. การเติมแบบนิวคลีโอไฟล์ที่แอลดีไฮด์: โค้ด chemfig นี้คอมไพล์ด้วย pdflatex
MolDraw หลังวางโค้ดเดียวกัน
การเติมแบบแอลดอลที่เร่งด้วยเบส, 2. การเติมแบบนิวคลีโอไฟล์ที่แอลดีไฮด์: โค้ด chemfig เดียวกันที่วางลงใน MolDraw ได้เลย์เอาต์และลูกศรโค้งเหมือนกัน

3. การให้โปรตอนแก่แอลคอกไซด์

\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 คอมไพล์ด้วย pdflatex
การเติมแบบแอลดอลที่เร่งด้วยเบส, 3. การให้โปรตอนแก่แอลคอกไซด์: โค้ด chemfig นี้คอมไพล์ด้วย pdflatex
MolDraw หลังวางโค้ดเดียวกัน
การเติมแบบแอลดอลที่เร่งด้วยเบส, 3. การให้โปรตอนแก่แอลคอกไซด์: โค้ด chemfig เดียวกันที่วางลงใน MolDraw ได้เลย์เอาต์และลูกศรโค้งเหมือนกัน

ลูกศรทุกอันที่นี่มีหัวเต็ม แต่ละขั้นมีลูกศรสองอัน: อันหนึ่งสร้างพันธะ อีกอันสลายพันธะและนำอิเล็กตรอนไปไว้บนอะตอม แบบที่สองเริ่มที่พันธะ (b1) และจบที่อะตอม

ประจุลบของอีโนเลตอยู่บนคาร์บอนในสูตรแบบเส้น เขียนแบบเดียวกับอนุมูลในตัวอย่างที่ 2 คือใช้ \charge บนอะตอมว่าง พันธะจึงไม่ถูกตัดสั้นรอบป้าย "−"

4. การขจัดน้ำแบบ E1 ของ tert-บิวทานอล: แผนภาพเดียวหลายแถว

สามตัวอย่างแรกแยกแต่ละขั้นไว้ใต้หัวข้อของตัวเอง คุณยังวาดกลไกทั้งหมดเป็นแผนภาพต่อเนื่องเดียวที่ตัดขึ้นแถวใหม่ได้ เหมือนในตำราหลายเล่ม:

  1. หมู่ OH รับโปรตอนจาก H3O+
  2. น้ำหลุดออกให้ tert-บิวทิลแคตไอออน นี่คือขั้นที่ช้า
  3. น้ำดึงโปรตอนจากคาร์บอนที่อยู่ติดกับ C+ และอิเล็กตรอนของ C–H สร้างพันธะ C=C ของ 2-เมทิลโพรพีน
ดาวน์โหลด e1-dehydration-of-tert-butanol.tex

ใน chemfig แต่ละแถวเป็นแผนภาพแยกที่เริ่มด้วยลูกศรของมัน สภาวะจึงอยู่กับลูกศรที่เป็นเจ้าของ:

แผนภาพทั้งหมด

\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 คอมไพล์ด้วย pdflatex
การขจัดน้ำแบบ E1 ของ tert-บิวทานอล, แผนภาพทั้งหมด: โค้ด chemfig นี้คอมไพล์ด้วย pdflatex
MolDraw หลังวางโค้ดเดียวกัน
การขจัดน้ำแบบ E1 ของ tert-บิวทานอล, แผนภาพทั้งหมด: โค้ด chemfig เดียวกันที่วางลงใน MolDraw ได้เลย์เอาต์และลูกศรโค้งเหมือนกัน

รายละเอียดสองอย่างที่น่าคัดลอกไปใช้:

  • [,1.6] ทำให้ลูกศรยาว 1.6 เท่าของความยาวปกติ คำว่า protonation จึงพอดีด้านบนแทนที่จะชนโครงสร้างถัดไป
  • คาร์โบแคตไอออนคือ \charge{120:4pt=$\scriptstyle+$}{}: เครื่องหมาย "+" เล็ก ๆ ห่างจากมุม 4 pt ในช่องว่างที่กว้างที่สุดระหว่างพันธะ

5. โบรมิเนชันแบบอิเล็กโทรฟิลิกของเบนซีน

อิเล็กตรอน π ของเบนซีนเข้าทำโบรมีน (ที่ถูกกระตุ้นด้วย FeBr3) ได้ σ-complex จากนั้นโบรไมด์ดึงโปรตอนออกจากคาร์บอน sp3 และอิเล็กตรอนของ C–H คืนสภาพวงอะโรมาติก

ดาวน์โหลด bromination-of-benzene.tex

1. การเข้าทำโบรมีน (σ-complex)

\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 คอมไพล์ด้วย pdflatex
โบรมิเนชันของเบนซีน, 1. การเข้าทำโบรมีน (σ-complex): โค้ด chemfig นี้คอมไพล์ด้วย pdflatex
MolDraw หลังวางโค้ดเดียวกัน
โบรมิเนชันของเบนซีน, 1. การเข้าทำโบรมีน (σ-complex): โค้ด chemfig เดียวกันที่วางลงใน MolDraw ได้เลย์เอาต์และลูกศรโค้งเหมือนกัน

2. การเสีย H⁺ คืนสภาพวง

\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 คอมไพล์ด้วย pdflatex
โบรมิเนชันของเบนซีน, 2. การเสีย H⁺ คืนสภาพวง: โค้ด chemfig นี้คอมไพล์ด้วย pdflatex
MolDraw หลังวางโค้ดเดียวกัน
โบรมิเนชันของเบนซีน, 2. การเสีย H⁺ คืนสภาพวง: โค้ด chemfig เดียวกันที่วางลงใน MolDraw ได้เลย์เอาต์และลูกศรโค้งเหมือนกัน

วงแหวนเขียนด้วยมุมพันธะสัมบูรณ์และ hook (?[a]) แทน *6(…) แต่ละวงจึงมีการวางตัวตรงกับบนแคนวาสทุกประการ และทุกพันธะในวงมีชื่อ @{…} สำหรับลูกศรได้ ตัวห้อยใน FeBr3 พิมพ์เป็น FeBr₃ ใน MolDraw และส่งออกเป็น FeBr$_{3}$

สร้างกลไกของคุณเอง

  1. วาดสปีชีส์และลูกศรปฏิกิริยาในตัวแก้ไข MolDraw หรือเริ่มจากไฟล์เหล่านี้: เปิดไฟล์ คัดลอกทั้งหมดแล้ววางลงบนแคนวาสด้วย Ctrl+V
  2. เลือกเครื่องมือลูกศรโค้ง ลากจากอิเล็กตรอนคู่โดดเดี่ยว ประจุ จุดอนุมูล หรือพันธะ ไปยังอะตอมหรือพันธะที่รับอิเล็กตรอน สำหรับขั้นหนึ่งอิเล็กตรอนให้เลือก Fishhook (1e⁻) ในตัวเลือกลูกศร
  3. เพิ่มหัวข้อของแต่ละขั้นด้วยเครื่องมือข้อความ เหนือแต่ละแถว
  4. เลือก Download → chemfig (.tex) หรือ Copy as chemfig (LaTeX) เพื่อวางโค้ดลงในเอกสารของคุณเอง
  5. คอมไพล์สองครั้ง

คุณยังถามผู้ช่วย AI ในตัวแก้ไขได้ เช่น “Draw the radical bromination of toluene at the benzylic position with fish-hook arrows, initiation, propagation and termination under headings.” ผู้ช่วยจะวาดขั้นตอนบนแคนวาส และคุณส่งออกได้ด้วยวิธีเดียวกัน

เมื่อคุณวาง chemfig กลับเข้ามา MolDraw จะอ่านว่าลูกศร \chemmove แต่ละอันเริ่มและจบที่อะตอมหรือพันธะใด มีหัวเต็มหรือเป็นเบ็ดตกปลา bend โค้งไปทางไหนและลึกเท่าใด หัวลูกศรที่จบที่จุด \path … coordinate ระหว่างสองอะตอมจะกลายเป็นลูกศรสร้างพันธะ ลูกศรเบ็ดตกปลาจึงมาพบกันในช่องว่างอีกครั้ง ระยะห่างมาจาก \setchemfig (atom sep, compound sep, + sep left/right, arrow offset) และข้อความกับเส้นวาดด้วยฟอนต์เซอริฟแบบ LaTeX ที่ความหนาเส้นบางของ chemfig MolDraw ยังปรับลูกศรแต่ละอันตามกฎของตัวเอง \draw ที่เขียนด้วยมือจึงไม่ต้องสมบูรณ์แบบ

ปรับโค้ดที่ส่งออกด้วยมือ

  • ส่วนโค้งแบนลงหรือลึกขึ้น: เปลี่ยนมุม bend (bend left=40 แทน 57) หรือลบ looseness
  • โค้งไปอีกด้าน: สลับ bend left และ bend right สำหรับลูกศรเบ็ดตกปลา ให้สลับ [left] และ [right] ที่หัวลูกศรด้วย เพื่อให้เงี่ยงอยู่ด้านนอก
  • ย้ายหางหรือหัว: แก้ shift ในหน่วย em (0em,1em) คือ 1 em เหนือศูนย์กลางอะตอม
  • จุดที่ลูกศรเบ็ดตกปลาพบกัน: เปลี่ยน pos=0.58 0.5 คือกึ่งกลางระหว่างสองอะตอมพอดี
  • พื้นที่เหนือแถว: \vspace{…em} ก่อนแต่ละแผนภาพเว้นที่ไว้สำหรับลูกศรที่โค้งขึ้น เพิ่มค่าหากลูกศรชนหัวข้อ

คำถามและคำตอบ

วาดลูกศรเบ็ดตกปลาใน chemfig ได้อย่างไร

ตั้งชื่อปลายทั้งสองด้วย @{…} แล้ววาดลูกศรใน \chemmove ด้วยหัวลูกศรครึ่งเดียว: \draw[-{Straight Barb[left,length=4pt]}] (a1) to[bend left=50] (a2); ใช้ [left] หรือ [right] เพื่อให้เงี่ยงอยู่ด้านนอกของส่วนโค้ง โหลดไลบรารี TikZ arrows.meta

ทำให้ลูกศรเบ็ดตกปลาสองอันมาพบกันกลางพันธะใหม่ได้อย่างไร

สร้างจุดระหว่างอะตอมทั้งสองด้วย \path (a1) -- (a2) coordinate[pos=0.5] (m1); ภายใน \chemmove แล้วให้ลูกศรเบ็ดตกปลาทั้งสองจบที่ (m1) จุดนี้จะเคลื่อนตามอะตอมไม่ว่า chemfig จะจัดระยะแผนภาพอย่างไร

ใส่จุดอนุมูลบนคาร์บอนในสูตรแบบเส้นใน chemfig ได้อย่างไร

ใช้ \charge กับอะตอมว่าง: \charge{90=\.}{} พันธะยังมาบรรจบที่มุมและจุดอยู่เหนือมุมนั้น สำหรับอะตอมที่มีป้ายกำกับให้เขียน \charge{90=\.}{Cl}

ทำไมลูกศรโค้งใน PDF ของฉันอยู่ผิดตำแหน่ง

\chemmove ใช้ตำแหน่งที่บันทึกไว้ในการรัน LaTeX ครั้งแรก คอมไพล์ไฟล์อีกครั้ง

แก้ไขตัวอย่างเหล่านี้ได้หรือไม่

ได้ เปิดไฟล์ .tex คัดลอกเนื้อหาแล้ววางลงบนแคนวาสของ MolDraw เปลี่ยนโครงสร้างหรือลูกศรด้วยเมาส์ แล้วดาวน์โหลด chemfig (.tex) อีกครั้ง

ใช้ตัวอย่างเหล่านี้ได้ฟรีหรือไม่

ได้ ใช้ในโน้ต ชุดแบบฝึกหัด วิทยานิพนธ์ และบทความได้

คู่มือที่เกี่ยวข้อง

อัปเดตล่าสุด: