I need to change the labelling for my floats (Page numbers/sections/figures/tables/schemes) into Figure S1, Table S1, Scheme S1, ... (for Supporting Infortmation of a journal).

For Figures and Tables, I found this code, which works perfectly fine:


However, if I try to do the analogy with the scheme environment from the chemmacros package


I get the following error in the log-file:

Command \thescheme undefined.

I'm not that an expert in code reading, so I did not manage to get the right label description for the scheme environment out of the chemmacros package code. Any suggestions to get this renaming to work is highly appreciated!

1 Answer 1


OK, after searching few more hours, I found this post, stating that some changes of redefining chemmacros definitions are only affective after \begin{document}.

I don't know the reason for this, but here is what I did and now I get the correct renaming of Scheme 1 towards Scheme S1:


Maybe some LATEX gurus can explain this behaviour to me and other newbies? Anyway, I think it is worth to share this solution (workaround?).

  • 1
    The reason is that there are five or six different methods for defining floats (even depending on the document class). chemmacros does not decide which method to use but tries to detect which methods are available (through the class the users chose or the packages they use). This information is only available at the end of the preamble. One could change this but then chemmacros would have to be loaded as last package. There is no perfect solution…
    – cgnieder
    Oct 2, 2019 at 22:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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