# Tag Info

6

I was able to draw using \chemmove, remember picture and @{} syntax for naming atoms and links. \documentclass[varwidth,border=50]{standalone} \usepackage{tikz} \usepackage{chemfig} \begin{document} \begin{tikzpicture}[remember picture, node distance=0] \node (foo){}; \node (a) [draw,minimum height=0.5cm,minimum width = 0.7cm, above of = foo, node ...

6

The \chemfig command relies on category code changes, in particular it changes # to an “other character” (category code 12). Such commands cannot appear in the argument to another command. While equation and equation* are safe on this respect, align* isn't: the multiline alignment environments of amsmath absorb their content as the argument to a command. ...

6

Here is a “chemfig only” idea: \documentclass{article} \usepackage{chemfig} \definesubmol{wallpart}{-[:-90,.5](-[:110,.5])} \definesubmol{wall}{!{wallpart}!{wallpart}!{wallpart}} \begin{document} \chemfig{ !{wall} (-[:0]**6(---(-CH_3)---)) !{wall} } \end{document} As far as I know the size of the circle (relative to the size of the ring) is ...

5

Citing chemfig's manual ChemFig always places the first atom of the molecule on the baseline of the preceding code. This means that the first atom in a molecule determines the baseline of the whole molecule. A solution in this case it is rather easy: add an invisible bond upwards before the “wall” (i.e. three bonds scaled by .5 going down (the angle ...

5

chemfig always places the first atom of the molecule on the baseline, so if you write \chemfig{O=[:-90](-[:-150]H)-[:-30]OH} the oxygen will be on the baseline. To put the carbon on the baseline it has to be the first atom: \chemfig{(-[:-150]H)(=[:90]O)-[:-30]OH} In other words, you must start from the atom you want to be on the baseline and treat the ...

5

Disclaimer: I did not know how to solve this myself when I asked the question, but managed to figure it out almost immediately after asking it. The author of chemfig said he did not speak English well enough to participate in the previous issue that was similar to this, and the correspondence was written in French. Although I'm Canadian, my French is ...

5

You can use any software able to export in smiles format or MDL molfile format. That done, you can use the mol2chemfig package to convert it to a chemfig command. I also want to point the excellent moltochemfig site in which you can draw a molecule whith your mouse, convert it to mol format and then to chemfig command. For example, in a few seconds, I draw ...

5

I'm not sure why you want to typeset the reactions with chemfig. It is an excellent package for drawing skeletal formulae of organic compounds. However, the reactions in your example are much easier typeset with mhchem or chemformula. The latter is loaded by chemmacros so you already have it available. \documentclass{memoir} \usepackage[utf8]{inputenc} ...

5

No need the extra package since chembove can stack stuff. \documentclass{article} \usepackage{chemfig} \begin{document} \chemfig{A-\chemabove[0pt]{\Lewis{4.,\vphantom o}}{\scriptstyle+}O-B} \end{document} EDIT: Still no need of extra package like "stackengine" or extra complicated macro. Lewis and chemabove can do the job: \documentclass{article} ...

5

You might want to use the decoration complete sines from Nicer wavy line with TikZ as I've used in a blog post of mine a while ago: \documentclass{article} \usepackage{tikz} \usepackage{chemfig} \usetikzlibrary{decorations.pathmorphing} \pgfdeclaredecoration{complete sines}{initial}{ \state{initial}[ width=+0pt, next state=sine, persistent ...

4

Use \Chembelow (upper case!) instead of \chembelow. From the manual (emphasis by me): The macro[...] \chembelow[<dim>]{<code>}{<stuff>} place[s] the <stuff> [...] below the <code> [...] without changing the bounding box of <code>. The uppercase version on the other hand does extend the bounding box. (\lewis ...

4

Ignoring the chemically incorrect structure of my 1st example, one can nonetheless use a stack to do what you ask. This question also seems related: Draw Lewis structures like a book EDITED to achieve vertical spacing more in line with OP's desire, and to place code in the macro \cation. \documentclass{article} \usepackage{chemfig,stackengine} % ORIGINAL ...

4

Update As clemens mentions in a comment, from v1.2 2015-10-08 \setarrowdefault{,,,<arrow tip>} is possible: \documentclass{article} \usepackage{chemfig} \usetikzlibrary{arrows.meta} \begin{document} \setarrowdefault{,,,-Stealth} \schemestart A\arrow B\arrow{<-} C\arrow{<->}[,,red] D\arrow{-/>}[45,2,thick] E \schemestop ...

4

Only after I had the code finished I realised that your code shows something different than the picture. But the alignment idea should work nonetheless. As you might know chemfig allows to add anchor names in compounds using the @{<name>} syntax which can be referred to in \chemmove for example, but also in arrows \arrow(@<name>--). The code ...

4

I think I found a solution for your problem. It is quite a hack, but it seems to work: \documentclass{article} \usepackage{chemfig} \begin{document} \chemfig{ [:-18]*5(-\chembelow{N}{H}- *5(-S-{^{64}Cu} *5([::-108]-S-(*5(-\chembelow{N}{H}-))=N-N-) *5(-\phantom{N}=(-)-(-)=\phantom{N}-) -N-N=)) } \end{document} I tried to ...

4

If you change \chemfig{-[7]N(-[5])... in your first formula into \chemfig{N(-[5])(-[3])... the baseline of said formula will be determined by the N which in this case suffices for the wanted alignment. The baseline of the OH- is then the same as baseline of the N of the first formula. The rest in the code below is just indentation. I also added | in one ...

4

Bundling my comments into an answer: I wrote »There is no way to make chemfigs bonds all the same length. Quoting part II section 4 Length of a bond of chemfig's manual:« Rather than speaking of length of a bond, we should use the term interatomic spacing. If effect, only the interatomic spacing is adjustable with \setatomsep as we have seen on ...

4

The overall structure is a simple table, so a tabular should do fine \begin{tabular}{llll} \chemfig{...} & ... \\ Myoglobin & ... \\ Fleischfarbe \\ purpurrot & ... \end{tabular} As for the chemical formulas: using the bonds optional parameters they are quite easy with chemfig. Here is an example for one of the structures: ...

4

You can use the uppercase version \Chembelow (there's also \Chemabove) to extend the bounding box of the molecule: $\underbrace{ \chemfig{*6(-\Chembelow{N}{H}-(=O)--\chemabove{N}{H}-(=O)-)} }_{\textnormal{glycine anhydride}}$ BTW: you can use chemfig's tools and avoid mathmode completely: \schemestart[-90] \chemup. ...

3

Here is something to get you started, based upon the Porphyrin example from the gallery in chemfig's manual: \documentclass{article} \usepackage{chemfig} \begin{document} \chemfig{ a-?[a]=[::+63]*5( -N?[b]=( -(-[::63]d)=[::-54]*5( -N?[c]-( =(-[::63]g)-[::-54]*5( =N?[d]-( =(-[::63]j)-[::-54]*5( ...

3

No need an extra package, \chemname does the job: \documentclass{article} \usepackage{chemfig} \begin{document} \begin{center} \schemestart \chemfig{CH_3Cl} \+ \chemname{\chemfig{Si{(Cu)}}}{Silicon\\/CopperAlloy} \arrow(.mid east--.mid west) \chemname{\chemfig{{(CH3)}_2SiCl2}}{Dimethyldichlorosilane} \+ \chemfig{Cu} \schemestop \end{center} ...

3

You can draw an invisible bond to the center of the ring, name that position with chemfig's @{name} syntax and draw a slightly longer bond from there to Me. With the \chemmove macro and a little bit of TikZ you can draw the ellipse around the marked center: \documentclass{article} \usepackage{chemfig} \begin{document} \begin{center} \setcrambond{2pt}{}{} ...

3

\chemname sets the name below the compound depending on the depth of the compound and the previous usages of \chemname. The chemfig manual says: In fact, to draw the <name> the command \chemname inserts 1.5ex + the largest of the depths of the molecules thus far below the baseline of each molecule [...]. The command \chenameinit{<stuff>} ...

3

In theory, \chemfig{<code>} can be written in the argument of a macro since \CF@chemfig@iv does a \scantokens of the <code>. Unfortunately, there is a bug because via \scantokens, # becomes ## in the argument of a macro and this behaviour is not taken into account by \chemfig. For example, if you write \fbox{\chemfig{A-#(0pt)B}}, the code of the ...

3

Look at the page 23 of the manual. You have to split CH_2 as follows: \chemfig{{C}|\lewis{0.,H_2}-[6,,1]*6(------)}

3

With the help of Section 12.7 of the chemfig manual I was able to get something that should be close. The distance between atoms can be changed with \setatomsep, and font colors, sizes, etc. can be modified as per usual TikZ commands. \documentclass[border=2pt]{standalone} \usepackage{chemfig} \usepackage{siunitx} ...

3


3

You can locally redefine \printatom in order to force atom depths to 0pt: \documentclass{article} \usepackage{chemfig} \setatomsep{1.5em} \begin{document} something $$\renewcommand\printatom[1]{\setbox0=\hbox{\ensuremath{\mathrm{#1}}}\dp0=0pt \box0 } \chemfig{CH_3-*6(-=-(-CH_2-*6(-=-(-CH_2-*6(-=-(-CH_3)=-=))=-=))=-=)}$$ something \end{document}

3

Here it is. chemfig basically works like Tikz. You can set nodes and use those nodes to draw arrows, etc. I did the brackets by drawing arcs, and setting nodes on the lines. It would have been easier if each "atom" was a node, but I haven't found anything in the documentation. In any case, if you discover something like that, you can remove the extra nodes ...

3

Do you mean something like this? It uses the fact that chemfig's formulas are tikzpictures. chemfig offers the possibility to give explicite names to the nodes in a formula using @{name} (this is explained in the manual). Later one can refer to those nodes in a seperate tikzpicture. \chemmove simply is a wrapper for a tikzpicture with the options remember ...

Only top voted, non community-wiki answers of a minimum length are eligible