Update
This behaviour is due to issues in chemgreek
which are fixed
in the 1.1 (2016/12/20) release. Where possible, you should update your TeX
distribution to install the
current release. If this is not possible, for example if you want to
change only this one package or where you do not have the privileges
to update the entire distribution, you will need to install the
package locally. This option should be considered a last resort, since for more complex packages there may be package dependencies that will make local installation more complicated and error-prone.
Original answer
The chemgreek
package makes a few wrong assumptions: it assumes that \textgamma
, \textepsilon
, \textiota
and \textphi
map to the Greek characters, but they don't, as xunicode.sty
defines them to be IPA characters (Latin small letter gamma, epsilon, iota and phi, respectively).
You can fix this, at least as far as chemgreek
is concerned, by remapping the wrong targets:
\documentclass{article}
\usepackage{fontspec}
\newfontfamily\termes{texgyretermes-regular.otf}
\newfontfamily\schola{texgyreschola-regular.otf}
\newfontfamily\libertine{LinLibertine_R.otf}
\newfontfamily\tempora{Tempora}
\RenewDocumentCommand{\textgamma}{}{\symbol{"03B3}}
\RenewDocumentCommand{\textepsilon}{}{\symbol{"03B5}}
\RenewDocumentCommand{\textiota}{}{\symbol{"03B9}}
\RenewDocumentCommand{\textphi}{}{\symbol{"03C6}}
\usepackage{chemgreek}
\selectchemgreekmapping{fontspec}
\begin{document}
{\termes Termes: \printchemgreekalphabet}
{\tempora Tempora: \printchemgreekalphabet}
{\schola Schola: \printchemgreekalphabet}
{\libertine Linux Libertine: \printchemgreekalphabet}
\end{document}
I also added Tempora, but you can see that the coverage by TeX Gyre fonts is complete too.
By the way, chemgreek
has a wrong alphabetical order, as it has chi after psi.
chemgreek
package apparently assumes that\textphi
maps to a Greek letter, butxunicode
defines it as U+0278 LATIN SMALL LETTER PHI (it's thought for IPA). Not the only wrong case.chemgreek
v1.1