我希望字母位于结构的中间。我知道字母位于每个结构的代码开始的地方,但我不知道如何在不更改代码的情况下更改它 :/。有人能帮帮我吗?
\documentclass{article}
\usepackage{chemfig}
\begin{document}
a. \chemfig{-[,.8]-[::72,.8](-[:18,.6]CH_2CH_3)-[::72,.8](-[2,.6,1]CH_3)-[::72,.8]-[::72,.8]} \vspace{0.5cm} \\
c. \chemfig{-[,.6]-[::51.43,.6](-[:-12.86,.6]CH_3)-[::51.43,.6](-[::-64.28,.6]CH_2CH_3)-[::51.43,.6]-[::51.43,.6](-[::-64.28,.6]Br)-[::51.43,.6]-[::51.43,.6]} \vspace{0.5cm} \\
b. \chemfig{-[6,.6]-[::60,.6]-[::60,.6](-[:-30,.6]CH_3)-[::60,.6]-[::60,.6](-[2,.6]CH_3)-[::60,.6]} \vspace{0.9cm}\\
d. \chemfig{-[6,.6]-[::60,.6]-[::60,.6](-[::-60,.6]Cl)-[::60,.6](-[::-60,.6]CH(-[:90,.6,1]CH_3)-[::-60,.6,1]CH_3)-[::60,.6]-[::60,.6]}
\end{document}
答案1
一条建议
\documentclass{article}
\usepackage{amsmath}
\usepackage{chemfig}
\begin{document}
\begin{align*}
& \schemestart
a. \arrow{0} \chemfig{-[,.8]-[::72,.8](-[:18,.6]CH_2CH_3)-[::72,.8](-[2,.6,1]CH_3)-[::72,.8]-[::72,.8]}
\schemestop \\
& \\
%
& \schemestart
c. \arrow{0} \chemfig{-[,.6]-[::51.43,.6](-[:-12.86,.6]CH_3)-[::51.43,.6](-[::-64.28,.6]CH_2CH_3)-[::51.43,.6]-[::51.43,.6](-[::-64.28,.6]Br)-[::51.43,.6]-[::51.43,.6]}
\schemestop \\
& \\
%
& \schemestart
b. \arrow{0} \chemfig{-[6,.6]-[::60,.6]-[::60,.6](-[:-30,.6]CH_3)-[::60,.6]-[::60,.6](-[2,.6]CH_3)-[::60,.6]}
%
\schemestop \\
& \\
%
& \schemestart
d. \arrow{0} \chemfig{-[6,.6]-[::60,.6]-[::60,.6](-[::-60,.6]Cl)-[::60,.6](-[::-60,.6]CH(-[:90,.6,1]CH_3)-[::-60,.6,1]CH_3)-[::60,.6]-[::60,.6]}
\schemestop
\end{align*}
\end{document}
我使用不可见的箭头 (\arrow{0}) 来创建一个空白空间。您可以通过改变箭头的长度来改变这个空间。
答案2
使用 nicematrix 的简单解决方案
\documentclass{article}
\usepackage{chemfig}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}{c @{\hspace{1cm}}c}[cell-space-top-limit=14pt]
\Block[v-center]{}{a.} & \chemfig{-[,.8]-[::72,.8](-[:18,.6]CH_2CH_3)-[::72,.8](-[2,.6,1]CH_3)-[::72,.8]-[::72,.8]} \\
\Block[v-center]{}{b.} & \chemfig{-[,.6]-[::51.43,.6](-[:-12.86,.6]CH_3)-[::51.43,.6](-[::-64.28,.6]CH_2CH_3)-[::51.43,.6]-[::51.43,.6](-[::-64.28,.6]Br)-[::51.43,.6]-[::51.43,.6]} \vspace{0.5cm} \\
\Block[v-center]{}{c.} & \chemfig{-[6,.6]-[::60,.6]-[::60,.6](-[:-30,.6]CH_3)-[::60,.6]-[::60,.6](-[2,.6]CH_3)-[::60,.6]} \vspace{0.9cm}\\
\Block[v-center]{}{d.} & \chemfig{-[6,.6]-[::60,.6]-[::60,.6](-[::-60,.6]Cl)-[::60,.6](-[::-60,.6]CH(-[:90,.6,1]CH_3)-[::-60,.6,1]CH_3)-[::60,.6]-[::60,.6]}
\end{NiceTabular}
\end{document}
答案3
您可以添加任意 Ti钾tikzpicture
通过\chemfig
使用 键创建的Z 键被传递给chemfig style
。使用baseline=(current bounding box.center)
您可以轻松地将分子置于基线上的中心(见a.
下文b.
(我按字母顺序重新标记了原子))。
但是,您可能希望将它们居中环部分分子。由于您没有使用 的chemfig
环分子语法(见下文),因此没有自动访问其中心的方法,因此您必须自己计算。默认基线(即第一个原子给出的基线)位于0pt
。我对c.
和进行了此操作d.
,并将基线向下移动了另一个位置.5ex
,使其看起来与字母(而不是它们的基线)居中(大约)。宏\setmychemshift[⟨offset⟩]{⟨atom sep factor⟩}
进行计算并将结果存储在 中\mychemfig
。
另一方面,您可以使用chemfig
手册第 12 节中描述的环语法输入分子。在这种情况下,包提供环中心坐标,您可以轻松地将它们用作基线,请参阅e.
下文f.
。我使用该calc
库再次将基线向下移动.5ex
。(在我看来,即使您不需要对齐,这种输入语法也更简单。)
\documentclass{article}
\usepackage{chemfig}
\usetikzlibrary{calc}
\newlength\mychemshift
\newcommand*\setmychemshift[2][-.5ex]{\pgfmathsetlength\mychemshift{#2*\csname CF_atomsep\endcsname+#1}}
\begin{document}
\begingroup\setchemfig{chemfig style={baseline=(current bounding box.center)}}
a. \chemfig{-[,.8]-[::72,.8](-[:18,.6]CH_2CH_3)-[::72,.8](-[2,.6,1]CH_3)-[::72,.8]-[::72,.8]}\qquad
b. \chemfig{-[,.6]-[::51.43,.6](-[:-12.86,.6]CH_3)-[::51.43,.6](-[::-64.28,.6]CH_2CH_3)-[::51.43,.6]-[::51.43,.6](-[::-64.28,.6]Br)-[::51.43,.6]-[::51.43,.6]}\vskip 4ex
\endgroup
\begingroup\setchemfig{chemfig style={baseline=\mychemshift}}
\setmychemshift{-.3}
c. \chemfig{-[6,.6]-[::60,.6]-[::60,.6](-[:-30,.6]CH_3)-[::60,.6]-[::60,.6](-[2,.6]CH_3)-[::60,.6]}\qquad
d. \chemfig{-[6,.6]-[::60,.6]-[::60,.6](-[::-60,.6]Cl)-[::60,.6](-[::-60,.6]CH(-[:90,.6,1]CH_3)-[::-60,.6,1]CH_3)-[::60,.6]-[::60,.6]}\vskip 4ex
\endgroup
\begingroup\setchemfig{chemfig style={baseline={($(cyclecenter1)-(0,.5ex)$)}}}
\setchemfig{atom sep=2.4em}
e. \chemfig{[:18]*5(--(-CH_2CH_3)-(-CH_3)--)}\qquad
\setchemfig{atom sep=1.8em}
f. \chemfig{*6(--(-Cl)-(-CH(-[::60]CH_3)(-[::-60]CH_3))---)}
\endgroup
\end{document}