对于我的论文我需要画出这个:
通过此代码,我可以获得除反离子之外的所有内容(用红色箭头表示,我不需要图上的红色箭头和线)。
\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}