Обновлять

Обновлять

Некоторые греческие символы не печатаются 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.

я нашелответ, в котором упоминается отсутствие полной поддержки греческого языка в TeX Gyreно я подтвердил, что эти шрифты содержат «базовые» греческие символы выше.

Могу ли я использовать chemgreekTeX Gyre без пропуска символов?

решение1

Обновлять

Такое поведение вызвано проблемами, chemgreekкоторые исправлены в версии 1.1 (2016/12/20). Где это возможно, вам следуетобновите свой дистрибутив TeXдля установки текущего релиза. Если это невозможно, например, если вы хотите изменить только этот один пакет или у вас нет прав на обновление всего дистрибутива, вам нужно будетустановить пакет локально. Этот вариант следует рассматривать как крайнюю меру, поскольку для более сложных пакетов могут существовать зависимости пакетов, которые сделают локальную установку более сложной и подверженной ошибкам.


Оригинальный ответ

Пакет chemgreekделает несколько неверных предположений: он предполагает, что \textgamma, \textepsilon, \textiotaи \textphiсоответствуют греческим символам, но это не так, поскольку xunicode.styопределяет их как символы МФА (латинские строчные буквы гамма, эпсилон, йота и фи соответственно).

Вы можете исправить это, по крайней мере, насколько 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алфавитный порядок неправильный, так как «ци» стоит после «пси».

Связанный контент