我想在不移动结构的情况下对齐成分的化学名称。有人知道这是怎么做的吗?
\schemedebug{true}
\schemestart
\setcrambond{2pt}{}{}
\chemname{\chemfig{H-[2,0.5](-[2,0.5]OH)-[,,,,
line width=2pt](-[6,0.5]OH)(-[2,0.5]H)>[1,0.7](-[6,0.5]OH)(-[2,0.5]H)-[3,0.7]
O-[4]?(-[2,0.3]-[3,0.5]OH)-[5,0.7](-[2,0.5]H)(-[6,0.5,,2]HO)<[7,0.7]}}{D-Glukose}
\arrow{-U>[\tiny ADP+NAD][\tiny ATP+NADH][][][60]}[,1.5]
2 \arrow{0}[,0]\chemname{\setatomsep{1.78500em}\chemfig{-[2](=[:150]O)-[:30](=[2]O)-[:-30]O^{-}}}{Pyruvat}
\arrow{-U>[\tiny NADH][\tiny NAD][][][60]}[,1.5]
2 \arrow{0}[,0]\chemname{\setatomsep{1.78500em}\chemfig{-[2](-[:150]OH)-[:30](=[2]O)-[:-30]O^{-}}}{Lactat}
\schemestop
\chemnameinit{}
答案1
如果你使用\arrow(.base east--.base west)
你会看到\chemname
确实使用了正确的深度。秘诀是为分子选择合适的基线(记住总是第一的公式内的原子chemfig
决定了整个分子的基线。
\documentclass{article}
\usepackage{chemfig}
% \usepackage{showframe}
\begin{document}
\setatomsep{1.78500em}
\setcrambond{2pt}{}{}
\schemestart
\setatomsep{1.5em}
\chemname{%
\chemfig{
-[1,1.4](-[2]-[3]HO)-[,2]O-[7,1.4]
(-[2]H)(-[6]OH)
<[5,1.4](-[2]H)(-[6]OH)
-[4,2,,,line width=2pt](-[2]H)(-[6]OH)
>[3,1.4](-[6]H)(-[2]OH)
}%
}{D-Glukose}
\arrow(.base east--.base west){-U>[\tiny ADP+NAD][\tiny ATP+NADH][][][60]}[,1.5]
2
\chemname{%
\chemfig{O=[:-30](-[:-90])-[:30](=[:90]O)-[:-30]O^{-}}%
}{Pyruvat}
\arrow(.base east--.base west){-U>[\tiny NADH][\tiny NAD][][][60]}[,1.5]
2
\chemname{%
\chemfig{HO-[:-30](-[:-90])-[:30](=[:90]O)-[:-30]O^{-}}%
}{Lactat}
\schemestop
\end{document}