What’s new in chemmacros v5.6?

Version 5.6 (2016/05/02) of chemmacros comes with a whole bunch of improvements and changes – no breaking changes, though. Here’s an overview over the changes:

  • base module: comfortably adding support for cleveref and fancyref with \ChemCleverefSupport and \ChemFancyrefSupport
  • lang module: translations are now provided in the corresponding modules they belong to; the lang module provides \DeclareChemTranslation and \DeclareChemTranslations for adding those translations in a comfortable way:
      fallback = foo,
      English = foo,
      German = Fuu

    This adds a layer of abstraction from the support package translations.

  • chemformula module: there is a further generalization of the “method” concept and the methods chemist and chemfig are added. The module won’t automatically use an available method anymore but will always use chemformula as default; it is up to the users to switch to another methods if they wish to. Although those methods work in general they do not support all features of chemmacros which means they’re only useful in rather special cases. On the other hand this enhances the flexibility of chemmacros.
  • reactions module: tags now obey redefinitions of \thereaction; support for cleveref and fancyref added. The last point means that if users are using cleveref or fancyref things “just work”.
  • scheme module: support for cleveref and fancyref added. This means that if users are using cleveref or fancyref things “just work”.

New chemmacros module “polymers”

As of version 5.5 the chemmacros package includes a new module named polymers. Currently it mostly defines a few macros for usage in the \iupac command (provided by the mandatory nomenclature module) such as

\NewChemIUPAC\copolymer  {\textit{co}}
\NewChemIUPAC\random     {\textit{ran}}
\NewChemIUPAC\periodic   {\textit{per}}
\NewChemIUPAC\block      {\textit{block}}
\NewChemIUPAC\graft      {\textit{graft}

and a few more. Additionally it defines a macro for usage with the chemfig package. In the chemfig manual there is presented some code defining the macros \setpolymerdelim and \makebraces which allows users to add polymer parentheses to formulas. The polymers module now defines a macro \makepolymerdelims based on this very idea and adds a few options for customization.

If you have further ideas and suggestions what the polymers module should or could include please feel free to comment here or to drop me an email.

chemmacros v5

I published version 5 of chemmacros nearly two months ago and so far the transition seems to have been a lot smoother than I anticipated. There have been a few support emails and posts on TeX/LaTeX stackexchange but nothing too serious.

As you probably know version 5 came with major changes but also some new features. One of them: chemmacros can now be used either with chemformula or with mhchem as support package for chemical formulas. This provides more flexibility for users. Other new features include a scheme float, support for typesetting isotopes, … One of the features I personally like very much (although I’m unsure if it is going to be used) is the fact that users can write and contribute their own modules to chemmacros. The manual contains more or less detailed information on this and of course I’ll provide any support needed. So far chemmacros already has 21 modules eleven of which are preloaded, the other ten can be loaded as needed.

It seems that users so far prefer to simply load all modules (\chemsetup{modules=all}). This is not really surprising even if it kind of defeats the purpose of having separate modules in the first place.

I am really curious how users experienced the transition to version 5 and what they think about the new features. So if you’re willing to share you opinion please go ahead in the comments!

a new chemmacros – but how?

I have written earlier about a new concept for chemmacros and about the current development of chemmacros. I really want to go along with e idea of modularity. In fact so much that I already have a draft completed (without manual and probably a number of bugs but still…). The big question is, though: How do I procede without annoying all the users of chemmacros? If I am consequent with the modularity then there need to be breaking changes.

Read More

The Template Story

In the LaTeX community templates for documents are a recurring topic of discussion. I have written about it:

Others have written about it:

It all boils down to this: templates often contain bad code or don’t follow good LaTeX practice but on the same time many not so experienced users like to use templates for their documents. This is the source for many, many problems and questions in LaTeX forums and Q&A sites.

Read More

Name change and other changes

Yesterday I’ve changed the name of this blog. The reason is that I’d like to change the focus of this blog away from chemistry in LaTeX.

More precisely I want LaTeX in general to be the topic. That doesn’t mean I won’t be writing about chemistry in LaTeX any more – of course I still will. But there are so much more topics worth writing about! Certainly one main focus will be news about the development of my packages (one reason for not focussing on the chemistry part: I have a number of packages not related to chemistry at all!).

Read More

lot’s of links

As you know I have always had a long list of links on the right-hand or left-hand side of this blog. I have moved these to a dedicated page: the Link Library. I also added the possibility for you to submit new links which you think are missing from the list. Have a look at the new page and at the links and submit any LaTeX related link which is missing from the list. Enjoy!

new package: elements

While working on chemmacros I found I wanted to use some functionality which is currently provided by the package bohr. But since I only wanted part of the functionality I realised that the same was true for bohr: it needed the functionality but wasn’t originally designed to provide it. It made sense to extract said functionality into a package of its own, extended with further functioniality. Long story short: there’s a new package called elements which will be sent to CTAN once bohr is updated to use the new package.

June 24th, 2015: elements has been sent to CTAN, bohr has been updated to v1.0.

modular chemmacros

OK, it’s been a while since I’ve posted anything. But now it’s time to discuss a few ideas I have about chemmacros. As you are probably aware if you are a user of the package: it provides lots of different stuff. At least in my experience it is rarely the case that you need all of its features.

Read More


Since a few weeks I’m working on a package using chemfig as a backend that allows a simple yet flexible input syntax for typesetting carbohydrates. My draft at this point allows the following:




which gives:

Read More

chemmacros v4.0

My chemmacros bundle has reached version 4.0. The step to a new major version has been made for two reasons: 1) the bundle has been extended with a new package: chemgreek. 2) every sub package can now be loaded and used independently. In all versions 3.* the ghsystem package, the chemformula package and the chemmacros package have loaded each other which made them one single package, really. This is no longer true. While chemmacros still loads ghsystem and chemformula (and also the new package chemgreek) the same is not true for ghsystem, chemformula or chemgreek. If they’re loaded alone they won’t load any other package of the bundle.

Read More