Hot answers tagged

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

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 ...


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 ...


6

Here's an idea: \documentclass{article} \usepackage{chemfig} \begin{document} \chemfig{**[60,-240]6(-(-[:90,,,,draw=none]+)---(-[:60]R)(-[:120]H)--)} \end{document} Have a look at section Rings > Angular Position for the arc inside the ring and section Customization of bonds (for draw=none) of chemfig's manual.


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

I couldn't trace the cause for the change, but the problem is in your code and not in chemfig. The macro \CF@atom@sep expands to 3em, unless \setatomsep is issued. What happens is that, with previous versions of TikZ/PGF, your segment length=\the\dimexpr\csname CF@atom@sep\endcsname/5\relax was evaluated when the current font was the standard text font; ...


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

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 ...


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} ...


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

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

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

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

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

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

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. ...


4

Another approach: \documentclass{article} \usepackage{chemfig} \begin{document} \schemestart[0,1.5,thick] \chemfig{**6(------)} \arrow{0}[,0] \+ \chemfig{E} \arrow(--.base west) \chemfig[yshift=\the\dimexpr-1.5em\relax]{**[60,-240]6(----(-[:135]H)(-[:45]E)--)(-[:30,,,,draw=none]+)} \schemestop \end{document} EDIT Here is 3 ...


3

An easy way is to split up the schemes. Since the two rings are the same size and drawn from the same starting atom, the centers will be aligned. I've also made use of the \+ command: \documentclass{article} \usepackage{chemfig} \begin{document} \schemestart[0, 1.5, thick] \chemfig{**6(------)} \arrow{0}[,0]% used for alignment \+{5mm,5mm} ...


3

This feature is not hard coded in chemfig but with decorations, it becomes easy: \documentclass{article} \usepackage{chemfig} \usetikzlibrary{decorations.markings} \makeatletter \tikzset{clrdbl/.style args={#1 and #2}{% draw=none,% decoration={% markings,% mark=at position 0 with {\coordinate (CFstart@) at (0,0);}, ...


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

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 ...


3

Chemfig documentation has an example, in French, about making a customized lewis macro accepting an arbitrary angle in degrees. I am reproducing it irresponsibly translated to English. (I am a native Brazilian Portuguese speaker, so I don't master neither English nor French). This example appeared on page 45 (46th page as there is a cover): \example*{Pairs ...


3

As the manual mentions textmath will make all text math subject to previews. Since math mode is used throughly inside of LaTeX even for other purposes, this works by redefining \(, \) and $ and the math environment (apparently some people use that). Only occurences of these text math delimiters in later loaded packages and in the main document will ...


3

Compounds inside \schemestart and \schemestop are tikz nodes with names you can refer to. chemfig names them c1, c2, … but you can also give them own names. You can use this in \chemdraw to place the minus: \documentclass{article} \usepackage{chemfig} \usetikzlibrary{calc} \begin{document} \begin{center} \schemestart \chemleft[ ...


3

Remove the \ce command, that will fix the links. The arrow is done with the command \arrow. Also remember to enclose it between \schemestart and \schemestop. Output Code \documentclass[11pt]{article} \usepackage[version=4]{mhchem} \usepackage{chemfig} \begin{document} \schemestart \chemfig{CH_3}\chemfig{CH(-[2]OH)}\chemfig{CH_3} + HI \arrow(.mid ...


3

I'm sure there is a more elegant way, but a crude approach is to calculate the difference in width between each of the smaller left compounds (the first two) and the largest (the last) and add that as \hspace before the start of the smaller reactions. Showing each step: \documentclass[a4paper,pdftex,ngerman,12pt]{article} \usepackage{chemfig} ...



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