chemfig กับ MolDraw: วาง chemfig แก้ไขด้วยภาพ แล้วส่งออก LaTeX
คำตอบสั้น ๆ: คัดลอกโค้ด \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 ลงบนแคนวาส
- คัดลอกโค้ดจากเอดิเตอร์ของคุณหรือ Overleaf ใช้ได้ทั้ง
\chemfig{…}เดี่ยว หลายคำสั่ง บล็อก\schemestart … \schemestopหรือเอกสารฉบับสมบูรณ์ - เปิดตัวแก้ไข MolDraw คลิกส่วนที่ว่างของแคนวาสแล้วกด Ctrl+V (Cmd+V บน Mac) หรือใช้ปุ่ม Paste หรือคลิกขวา → Paste ก็ได้
- ภาพวาดจะปรากฏในสถานะถูกเลือก ข้างสิ่งที่อยู่บนแคนวาสอยู่แล้ว ลากไปวางตรงที่ต้องการ
ลองกับแผนภาพนี้:
\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 และมุมมอง 3 มิติของแต่ละโครงสร้าง
ส่งออก chemfig กลับเป็น LaTeX
มีสองวิธีในการส่งออก:
- Download → chemfig (.tex) บันทึกไฟล์ LaTeX แบบสแตนด์อโลนที่สมบูรณ์ คอมไพล์แยกเพื่อได้ PDF ของภาพวาด หรือใส่ PDF นั้นในเอกสารของคุณด้วย
\includegraphics - 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ที่ตรงกับความโค้งบนแคนวาส - ชื่อสารประกอบอยู่ใต้โครงสร้าง โดยเว้นที่ไว้สำหรับลูกศรโค้งที่โค้งลงด้านล่าง
- พันธะในวงปิดด้วย hook (
?[a]) และพันธะคู่แต่ละพันธะได้=^หรือ=_เพื่อให้เส้นที่สองอยู่ด้านเดียวกับใน MolDraw สำหรับวงแหวนคืออยู่ด้านในวง
รับ chemfig จาก SMILES, MOL หรือไฟล์ ChemDraw
เนื่องจาก MolDraw อ่านได้หลายรูปแบบ จึงใช้เป็นตัวแปลงเป็น chemfigได้ด้วย:
- นำโครงสร้างเข้ามา: วาง SMILES หรือ InChI ค้นหาชื่อสารประกอบในช่อง PubChem หรือเปิดไฟล์ MOL, SDF, RXN, CDXML หรือ CDX (ChemDraw)
- จัดให้เรียบร้อยหากจำเป็น การจัดโครงสร้าง (Clean up) และการหมุนอยู่ในแถบเครื่องมือ
- เลือก Download → chemfig (.tex)
นี่คือวิธีที่เร็วที่สุดในการย้ายภาพ ChemDraw ทั้งชุดเข้าไปในวิทยานิพนธ์ LaTeX: เปิดแต่ละไฟล์แล้วดาวน์โหลดเป็น chemfig
กลไกปฏิกิริยาและลูกศรโค้ง
ลูกศรโค้งเป็นส่วนที่เขียนด้วยมือใน chemfig ยากที่สุด ใน MolDraw คุณวาดด้วยเมาส์ หรือขอให้ผู้ช่วย AI วาดกลไก แล้วการส่งออกจะเขียนชื่อ @{…} และบล็อก \chemmove ให้คุณ
เมื่อคุณวาง chemfig ที่มีลูกศร \chemmove อยู่แล้ว MolDraw จะอ่านว่าลูกศรแต่ละอันเชื่อมอะตอมหรือพันธะใด และ bend โค้งไปทางไหน แล้ววางลูกศรตามกฎการวาดของตัวเอง: หางเริ่มที่อิเล็กตรอนคู่โดดเดี่ยว ประจุ หรือพันธะ และหัวหยุดก่อนถึงเป้าหมายเล็กน้อย คุณไม่ต้องคัดลอกเส้นโค้ง TikZ ให้ตรงเป๊ะ
ตัวอย่างฉบับสมบูรณ์ดูได้ที่ตัวอย่างกลไกด้วย chemfig: ปฏิกิริยาลูกโซ่อนุมูลอิสระพร้อมลูกศรเบ็ดตกปลา และกลไกมีขั้วหลายขั้น แต่ละตัวอย่างเป็นไฟล์ .tex ที่ดาวน์โหลดได้
ถามผู้ช่วย AI
ผู้ช่วยแชตในตัวแก้ไขรู้จัก chemfig ตัวอย่างเช่น คุณถามได้ว่า:
- “Export this as chemfig.” ผู้ช่วยจะส่งโค้ดของสิ่งที่อยู่บนแคนวาสกลับมา
- “Draw this:
\chemfig{H_3C-C(=[:60]O)-[:-60]OH}.” ผู้ช่วยจะวางโครงสร้างลงบนแคนวาส - “Draw the mechanism of acid-catalysed ester hydrolysis, then give me the chemfig.”
สิ่งที่แปลงได้ทั้งสองทิศทาง
แต่ละรายการด้านล่างถูกส่งออก คอมไพล์ด้วย pdflatex อ่านกลับเข้า MolDraw และตรวจเทียบกับภาพวาดต้นฉบับ
| พันธะ | พันธะเดี่ยว - คู่ = สาม ~ วงอะโรมาติกในรูป Kekulé ด้านของเส้นที่สองของพันธะคู่ (=^ / =_) พันธะลิ่มทึบและลิ่มขีดพร้อมทิศทาง (< > <: >:) |
|---|---|
| รูปแบบพันธะ | พันธะหยัก หนา จุด และพันธะโคออร์ดิเนต รวมถึงสีพันธะ เขียนเป็นตัวเลือก TikZ บนพันธะ |
| อะตอม | ป้ายกำกับที่มี H แฝง หมู่แบบย่อ (CO2Me, Ph) ประจุ ประจุในวงกลม (\oplus) ไอโซโทป D และ T อิเล็กตรอนคู่โดดเดี่ยวและจุดอนุมูล (\charge, \lewis) และสีอะตอม |
| วง | วงแหวนทุกแบบและวงเชื่อม เมื่อนำเข้ายังรองรับ *6(…), **6(…) และวงซ้อน |
| แผนภาพปฏิกิริยา | ->, <- สมดุล <=> สมดุลครึ่ง <->> เรโซแนนซ์ <-> ลูกศรการสังเคราะห์ย้อนกลับ สภาวะด้านบนและล่างหลายบรรทัด \+ \chemname และแผนภาพที่ตัดขึ้นหลายแถว |
| ข้อความ | ชื่อเรื่องเหนือแผนภาพและหมายเหตุใต้แผนภาพ |
| วงเล็บเหลี่ยม | วงเล็บสถานะทรานซิชันพร้อม ‡ (\chemleft[ … \chemright]) และหน่วยซ้ำของพอลิเมอร์ (\polymerdelim) |
| ลูกศรโค้ง | ลูกศรสองอิเล็กตรอนและลูกศรเบ็ดตกปลาหนึ่งอิเล็กตรอนระหว่างอะตอมและพันธะที่ตั้งชื่อไว้ (\chemmove) |
เมื่อคุณวาง MolDraw ยังเข้าใจ \definesubmol กับ !{name} มุมเริ่มต้นอย่าง \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] | hook: สร้างพันธะระหว่างอะตอมสองตัวที่มีตัวอักษรเดียวกัน (ปิดวง) |
=^, =_ | พันธะคู่ที่มีเส้นที่สองอยู่ทางซ้ายหรือขวาของทิศทางการเดิน |
\charge{90=\:}{O} | อิเล็กตรอนคู่โดดเดี่ยวที่ 90° บน O \. คืออิเล็กตรอนเดี่ยว |
@{a1} | ตั้งชื่ออะตอมหรือพันธะเพื่อให้ \chemmove วาดลูกศรไปหาได้ |
\arrow{->[above][below]} | ลูกศรแผนภาพพร้อมข้อความด้านบนและล่าง |
การแก้ปัญหา
- วางแล้วไม่มีอะไรเกิดขึ้น ข้อความต้องมี
\chemfigหรือ\schemestartคลิกแคนวาสก่อน เพื่อให้การวางเข้าไปที่ภาพวาด ไม่ใช่กล่องข้อความ - ลูกศรโค้งอยู่ผิดตำแหน่งใน PDF คอมไพล์อีกครั้ง
- “I do not know the key /tikz/Stealth” เพิ่ม
\usetikzlibrary{arrows.meta,decorations.pathmorphing}ใน preamble ของคุณ - โครงสร้างดูบีบหลังวาง หาก 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} ไฟล์ที่ดาวน์โหลดมีบรรทัดเหล่านี้อยู่แล้ว
ทำไมลูกศรโค้งอยู่ผิดตำแหน่งหลังคอมไพล์
\chemmove ของ chemfig วาดลูกศรโค้งจากตำแหน่งที่บันทึกไว้ในการรัน LaTeX ครั้งแรก คอมไพล์ไฟล์อีกครั้งแล้วลูกศรจะไปอยู่บนอะตอมและพันธะของมัน
เปลี่ยนไฟล์ ChemDraw หรือ MOL เป็น chemfig ได้หรือไม่
ได้ เปิดไฟล์ MOL, SDF, CDXML หรือ CDX ใน MolDraw หรือวาง SMILES แล้วเลือก Download → chemfig (.tex)
อะไรบ้างที่แปลงเป็น chemfig ไม่ได้
รูปภาพ รูปทรงและเครื่องแก้ว เส้นวาดอิสระ ออร์บิทัล การเติมสีในวง และไฮไลต์ ไม่มีรูปแบบใน chemfig MolDraw จะแสดงรายการสิ่งที่ตัดออกไว้ในแถบคำแนะนำหลังดาวน์โหลดหรือคัดลอก
ใช้ฟรีหรือไม่
ใช่ การวาง chemfig และแก้ไขใช้ฟรีในเบราว์เซอร์ การดาวน์โหลดไฟล์ต้องมีบัญชี MolDraw ฟรี