更新

更新

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}

使用 LuaTeX 的结果: chemgreek + TeX Gyre 与 LuaTeX 的测试结果

使用 XeTeX 的结果: chemgreek + TeX Gyre 与 XeTeX 的测试结果

不同引擎的结果看起来略有不同,但除了 Linux Libertine 之外,两者都缺少 gamma、epsilon、iota 和 phi。

我已经发现提到 TeX Gyre 缺乏完整的希腊语支持的答案但我确认这些字体包含上面的“基本”希腊字符。

我可以使用chemgreekTeX 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 之后。

相关内容