chemgreek
当我使用 TeX Gyre 字体时,一些希腊字符无法随包打印。
测试代码:
\documentclass{article}
\usepackage{fontspec}
\newfontfamily\termes{texgyretermes-regular.otf}
\newfontfamily\schola{texgyreschola-regular.otf}
\newfontfamily\libertine{LinLibertine_R.otf}
\usepackage{chemgreek}
\selectchemgreekmapping{fontspec}
\begin{document}
{\termes Termes: \printchemgreekalphabet}
{\schola Schola: \printchemgreekalphabet}
{\libertine Linux Libertine: \printchemgreekalphabet}
\end{document}
不同引擎的结果看起来略有不同,但除了 Linux Libertine 之外,两者都缺少 gamma、epsilon、iota 和 phi。
我已经发现提到 TeX Gyre 缺乏完整的希腊语支持的答案但我确认这些字体包含上面的“基本”希腊字符。
我可以使用chemgreek
TeX Gyre 而不会丢失字符吗?
答案1
更新
chemgreek
此行为是由于1.1 (2016/12/20) 版本中已修复的问题造成的。如果可能,您应该更新你的 TeX 发行版安装当前版本。如果无法做到这一点,例如,如果您只想更改这一个包,或者您没有权限更新整个发行版,则需要在本地安装包。此选项应被视为最后的手段,因为对于更复杂的包,可能存在包依赖性,这会使本地安装更加复杂且容易出错。
原始答案
该chemgreek
包做出了一些错误的假设:它假设\textgamma
、\textepsilon
和映射\textiota
到\textphi
希腊字符,但事实并非如此,因为将xunicode.sty
它们定义为 IPA 字符(分别是拉丁小写字母 gamma、epsilon、iota 和 phi)。
chemgreek
您可以通过重新映射错误的目标来修复此问题,至少就目前而言:
\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}
我还添加了 Tempora,但您可以看到 TeX Gyre 字体的覆盖也完整。
顺便说一下,chemgreek
字母顺序是错误的,因为 chi 位于 psi 之后。