如何使文本与 chemfig 分子对齐?

如何使文本与 chemfig 分子对齐?

我希望字母位于结构的中间。我知道字母位于每个结构的代码开始的地方,但我不知道如何在不更改代码的情况下更改它 :/。有人能帮帮我吗?

\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

您可以添加任意 Titikzpicture通过\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}

MWE 输出

相关内容