再次回来,带着更多问题。这次,我需要对齐涉及苯的反应方案。这是我目前拥有的:
\diagram[1.0]{
\schemestart[0, 1.5, thick]
\chemfig{**6(------)}
\arrow{0}[,0] % used for alignment
\hspace{5mm} + \hspace{5mm}
\chemfig{E}
\arrow
\arrow{0}[,0]
\chemfig{**[60,-240]6(----(-[:135]H)(-[:45]E)--)(-[:30,,,,draw=none]+)}
\schemestop
}
这\diagram
只是设置了一些间距和居中,并没有真正影响这一点。使用此示例,我得到了以下输出:
相反,我想要的是让第一个苯环、、、+
箭头E
和第二个苯环的中心排成一行。我试过使用不可见的箭头等,上面的示例让我将前 4 个苯环(1、、+
和E
箭头)对齐。
谢谢。
编辑
我遇到了更多麻烦,而且由于它高度相关,我认为创建一个全新的问题并不好。
现在我有这个代码:
\diagram[1.0]{
\schemestart[0, 1.5, thick]
\chemfig{**[60,-240]6(----(-[:135]H)(-[:45]E)--)(-[:30,,,,draw=none]+)}
\arrow{0}[,0]
\hspace{5mm} + \hspace{5mm}
\chemfig{@{el}E}
\arrow
\schemestop
\schemestart[0, 1.5, thick]
\chemfig{**6(----(-[:90]E)--)}
\schemestop
}
遗憾的是,现在什么都没有对齐。我采用了 Guho 的解决方案,但我无法让 unbonpetit 的解决方案产生令人满意的结果。
另外,我注意到我实际上无法找到让 chemfig 使用原子中心作为锚点的方法,即使我从中心开始,并使用幻影原子和键,如下所示:
\chemfig{\phantom{+}-[:90,,,,draw=none]([:270]**6((-[:90]E)------))}
它仍然以某种方式坚持错位事物(原子似乎固定在中心和顶部边缘的中间某处)
无论如何,感谢您一直以来的帮助。这两个答案都适用于基本情况,所以就是这样。
答案1
另一种方法:
\documentclass{article}
\usepackage{chemfig}
\begin{document}
\schemestart[0,1.5,thick]
\chemfig{**6(------)}
\arrow{0}[,0]
\+
\chemfig{E}
\arrow(--.base west)
\chemfig[yshift=\the\dimexpr-1.5em\relax]{**[60,-240]6(----(-[:135]H)(-[:45]E)--)(-[:30,,,,draw=none]+)}
\schemestop
\end{document}
编辑以下是正确排列分子的 3 种解决方案:
\documentclass{article}
\usepackage{chemfig}
\begin{document}
Solution 1: invisible bond starting from middle of left bond (this midpoint becomes the baseline point)
\schemestart[0, 1.5, thick]
\chemfig{(-[:90,-0.5,,,draw=none]){}**[60,-240]6([:30]----(-[:135]H)(-[:45]E)--)(-[:30,,,,draw=none]+)}
\arrow(.base east--){0}[,0]
\+{2em,2em,}
\chemfig{@{el}E}
\arrow(--.base west)
\chemfig{(-[:90,-0.5,,,draw=none]){}**6([:30]----(-[:90]E)--)}
\schemestop
\medbreak
Solution 2: yshift the baseline anchor
\schemestart[0, 1.5, thick]
\chemfig[baseline={([yshift=1.5em]current bounding box.base)}]{**[60,-240]6(----(-[:135]H)(-[:45]E)--)(-[:30,,,,draw=none]+)}
\arrow(.base east--){0}[,0]
\+{2em,2em,}
\chemfig{@{el}E}
\arrow(--.base west)
\chemfig[baseline={([yshift=1.5em]current bounding box.base)}]{**6(----(-[:90]E)--)}
\schemestop
\medbreak
Solution 3: yshift molecule
\schemestart[0, 1.5, thick]
\chemfig[yshift=-1.5em]{**[60,-240]6(----(-[:135]H)(-[:45]E)--)(-[:30,,,,draw=none]+)}
\arrow(.base east--){0}[,0]
\+{2em,2em,}
\chemfig{@{el}E}
\arrow(--.base west)
\chemfig[yshift=-1.5em]{**6(----(-[:90]E)--)}
\schemestop
\end{document}
答案2
一种简单的方法是拆分方案。由于两个环大小相同且从同一个起始原子绘制,因此中心将对齐。我还使用了以下命令\+
:
\documentclass{article}
\usepackage{chemfig}
\begin{document}
\schemestart[0, 1.5, thick]
\chemfig{**6(------)}
\arrow{0}[,0]% used for alignment
\+{5mm,5mm}
\chemfig{E}
\arrow
\schemestop
\schemestart[0, 1.5, thick]
\chemfig{**[60,-240]6(----(-[:135]H)(-[:45]E)--)(-[:30,,,,draw=none]+)}
\schemestop
\end{document}
请注意,第一个+
不与第二个+
或箭头垂直对齐(+
直接使用 ,就像在 MWE 中一样)会产生相同的结果。这可以用 的第三个参数来伪造\+
,即垂直移位(0.4 毫米对我来说看起来相当不错):
\documentclass{article}
\usepackage{chemfig}
\begin{document}
\schemestart[0, 1.5, thick]
\chemfig{**6(------)}
\arrow{0}[,0]% used for alignment
\+{5mm,5mm,0.4mm}
\chemfig{E}
\arrow
\schemestop
\schemestart[0, 1.5, thick]
\chemfig{**[60,-240]6(----(-[:135]H)(-[:45]E)--)(-[:30,,,,draw=none]+)}
\schemestop
\end{document}