TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

In organometallic chemistry it's common to draw ligands that are not bound atom to atom. Common examples are ferrocene:

or Zeisse's salt:

Does anyone have a strategy for approaching structures such as these?

For the alkene bond, one approach would be \chemfig{M-([2,0.5]=)([6,0.5]=} but this has the bond from the metal extending to the center of the double bond, rather than stop just before it.

I'm looking more for a general approach than a solution to these particular compounds.

share|improve this question
up vote 7 down vote accepted

I'm not aware of a truly general approach. I solve these kinds of bonds by using invisible bonds -[,,,,draw=none] for placing atoms or determining access points for other bonds.

Ferrocene and similar compounds are not quite easy with chemfig and my approach is even less general. So far the only way I know is to draw them from scratch (but then I do not need to draw metallocenes very often (or ever)). Here's a try I recently used as an answer on chemieonline.de:

\documentclass{article}
\usepackage{chemfig}
\setcrambond{3pt}{}{}
\begin{document}

\chemfig{
  ?[a]>[:18,.8]-[:108,.8]-[4]
    (
      -[:-40,.65,,,draw=none]@{r1}-[2,,,,dotted]
      Fe
      -[2,,,,dotted]@{r2}-[:-130,.7,,,draw=none]
      ?[b]-[,,,,line width=3.5pt]>[:72,.8]-[:162,.8]-[:-162,.8]?[b,4]
    )
  -[:-108,.8]?[a,4]}
\chemmove{
  \draw (r1) ellipse (15pt and 8pt);
  \draw (r2) ellipse (15pt and 8pt);
}
\end{document}

enter image description here

The values need adjusting of course (I was being lazy) but the principle should be clear. What I've done here is the following: I drew the cp rings using chemfig's ? hook and marked the center (or actually only somewhere near) by using the @{<nodename>} syntax. These nodes then are accessed via \chemmove (which basically is a wrapper for \tikz[remember picture,overlay]) to draw the ellipses. This needs a least two compilations.

The second one's easier. I just use an invisible bond like I said above. This should also work for other similar compounds:

\documentclass{article}
\usepackage{chemfig}
\usepackage{chemmacros}% for formal charges
\definesubmol{inv}{-[,,,,draw=none]}
\begin{document}

\chemfig{
  H>[:-10]C(<:[:60]H)
   (-[:-14.5,2,,,draw=none]Pt(-[4,1.8])(<[:-120]Cl)(<:[:60]Cl|^{\fminus})-Cl)
   =[6]
  C(<[:-110]H)<:[:-20]H
}

\end{document}

enter image description here

share|improve this answer
    
Thanks! It's becoming clear to me that I should familiarize myself with TikZ. The \chemmove command is new to me. I really appreciate such an elaborate answer. – Anthony Oct 19 '12 at 14:22
    
\chemmove is described in the chemfig manual in the section about electon movement. And yes, since chemfig uses TikZ internally it often helps if one knows the basics of TikZ :) – clemens Oct 19 '12 at 14:48

Ferroceno Metanol

Hi, if you don´t wont to make double compilation, I draw a Ferrocene Methanol molecule with \chemfig and \tikz that requieres only one compilation. Here is the code.

Regards.

\documentclass{article}
\usepackage{chemfig,xstring}

\usepackage{tikz}
\usetikzlibrary{shapes,shadows,arrows,positioning,graphs}

\begin{document}

\begin{tikzpicture}

%Lineas de ayuda, cuadricula
%\draw [help lines] (0,0) grid (6,4);

%Anillo Superior
\node at (0.78,2.95) {\chemfig{
        <[:-25,1.176]
        (   
            -[0,0.01,,,line width=6.1pt,shorten <=-1.5pt,shorten >=-1.5pt]           
            >[:25,1.176] 
            -[:135,0.8] (
                    %Metanol
                    -[:30,1]-[:-35,1]OH
                    )
            -[180,1]
            -[:-135,0.8]
        )}};

%Anillo Inferior
\node at (0,0.3){\chemfig{
            -[:25,1.176]
        (            
            -[:-25,1.176]
            <[:-135,0.8]
            -[180,,,,line width=4.8pt,shorten <=-2.2pt,shorten >=-2.2pt]
            >[:135,0.8]            
        )}};

\draw [dashed]  (0,1.75) -- (0,2.9);
\draw [dashed]  (0,0.3) -- (0,1.3);
\draw (0,0.3) ellipse (0.75cm and 0.35cm);
\draw (0,2.85) ellipse (0.75cm and 0.35cm);
\node at (0,1.5) {\Large Fe};

\end{tikzpicture}

\end{document}
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.