如何使用 chemfig 包绘制反离子?

如何使用 chemfig 包绘制反离子?

对于我的论文我需要画出这个:

在此处输入图片描述

通过此代码,我可以获得除反离子之外的所有内容(用红色箭头表示,我不需要图上的红色箭头和线)。

\documentclass[12pt,a4paper]{article}
\usepackage{graphicx}
\usepackage{chemfig}
\begin{document}
\begin{figure}[h]
\centering
{
\setatomsep{2em}
\chemname{\chemfig{[:90]Ir?[o](-[,2]N*6(-=-=-(-*6(=*6(-=-=-)-=-=?[o,{<:}]-))=))([:-90]-[,2]N*6(-(-*6(-?[o,{<}]=-=*6(-=-=-)-=))=-=-=-))([:30]<:[,2]N*6(-(-*6(=N?[o,{<}]-=-(-([:30]-)(-)([:-90]-))=-))=-(-([:90]-)(-)([:-30]-))=-=))}}{1}
}
\end{figure}
\end{document}

您能帮我找到解决这个问题的方法吗?只有一种方法可以在 TikZ 环境中完成,还是有更简单的方法?

答案1

还有一种不tikz使用 LaTeXpicture环境的“简单”方法。

第一个picture环境用于放置第二个环境设置的反离子:

\documentclass[12pt,a4paper]{article}
\usepackage{graphicx}
\usepackage{chemfig}
\begin{document}
\begin{figure}[h]
\centering
{
\setatomsep{2em}
\setlength{\unitlength}{2em}
\begin{picture}(0,0)
  \put(8.5,4.5){%
    \begin{picture}(0,0)
      \thicklines
      \put(.25,0){\makebox(0,0)[tl]{\chemfig{PF_{6}^{-}}}}
      \put(-1,0){\line(1,0){1}}
      \put(0,0){\line(0,-1){1}}
    \end{picture}%
  }
\end{picture}
\chemname{\chemfig{[:90]Ir?[o](-[,2]N*6(-=-=-(-*6(=*6(-=-=-)-=-=?[o,{<:}]-))=))([:-90]-[,2]N*6(-(-*6(-?[o,{<}]=-=*6(-=-=-)-=))=-=-=-))([:30]<:[,2]N*6(-(-*6(=N?[o,{<}]-=-(-([:30]-)(-)([:-90]-))=-))=-(-([:90]-)(-)([:-30]-))=-=))}}{1}
}
\end{figure}
\end{document}

结果

评论:

  • 需要对反离子进行一些定位,但可以相对于分子的原子进行定位。因此,下一个解决方案是使用tikz无论如何都由包加载的chemfig。这样,也可以使用“一行”。但使用更多行会增加可读性。
  • 我遗漏了使反离子成为反离子的正电荷。还是整个复合物都是负电荷?
\documentclass[12pt,a4paper]{article}
\usepackage{graphicx}
\usepackage{chemfig}
\begin{document}
\begin{figure}[h]
\centering
{
\setatomsep{2em}
\chemname{\chemfig{[:90]Ir?[o](-[,2]N*6(-=-=-(-*6(=*6(-=-=-)-=-=?[o,{<:}]-))=))([:-90]-[,2]N*6(-(-*6(-?[o,{<}]=-=*6(-=-=-)-=))=-=-=-))([:30]<:[,2]N*6(-(-*6(=N?[o,{<}]-=-(-([:30]-)(-)([:-90]-))=-))=-(-([:90]-@{tr})(-)([:-30]-))=-=))}}{1}
\chemmove{\draw[very thick,inner sep=0pt](tr)++(-1.5em,-.5em)--++(0,2em)node[anchor=north
west]{\,\chemfig{^{+}}\ \ \chemfig{PF_{6}^{-}}}--++(-2em,0);}
}
\end{figure}
\end{document}

结果

最后是无需手动定位的变体。参考点是分子右上分支的右上角。为了清晰起见,我使用了更多行:

\documentclass[12pt,a4paper]{article}
\usepackage{graphicx}
\usepackage{chemfig}
\begin{document}
\begin{figure}[h]
\centering
\setatomsep{2em}
\chemname{\chemfig{[:90]Ir?[o](-[,2]N*6(-=-=-(-*6(=*6(-=-=-)-=-=?[o,{<:}]-))=))
\chemmove{%
  \draw[
    very thick,
  ]
    (tr-|rt)
    ++(\pgfkeysvalueof{/pgf/inner xsep}, \pgfkeysvalueof{/pgf/inner ysep})
    +(-2em,0) -- +(0,0)
      node [
        anchor=north west,
        inner sep=0pt
      ] {\,\printatom{^{+}}\ \printatom{PF_6^{-}}}
    --  +(0, -2em)
  ;%
}
\end{figure}
\end{document}

结果

答案2

我找到了一种方法。这相当简单,但我希望有一个专门的命令来做这样的事情,因为 chemdraw 中有一个。

以下是代码:

\documentclass[12pt,a4paper]{article}
\usepackage{graphicx}
\usepackage{chemfig,tikz}
\begin{document}

\begin{figure}[h]
\centering
{
\setatomsep{2em}
\chemname{\chemfig{[:90]Ir?[o](-[,2]N*6(-=-=-(-*6(=*6(-=-=-)-=-=?[o,{<:}]-))=))([:-90]-[,2]N*6(-(-*6(-?[o,{<}]=-=*6(-=-=-)-=))=-=-=-))([:30]<:[,2]N*6(-(-*6(=N?[o,{<}]-=-(-([:30]-)(-)([:-90]-))=-))=-(-([:90]-)(-)([:-30]-))=-=))}}{1}
\chemmove{\draw[line width=2pt](1cm,7.5)--(2,7.5)--(2,6.5);
\node[anchor=west] at (2,7.5) {$\rm PF_6^-$};}
}

\end{figure}
\end{document}

在此处输入图片描述

相关内容