启用 fontspec 后 \textgamma 的字形不正确

启用 fontspec 后 \textgamma 的字形不正确

我一直无法使用textgreek包排版字符 gamma。使用 textgreek,字符的命令是\textgamma。但是,在 XeLaTeX(在 Mac OS X 10.11、MacTeX 2015 上)中使用时fontspec,文档中插入了错误的字符。而不是插入U+03B3,所需的伽马字符,它插入U+1041C,Computer Modern 甚至没有这个字符。当指定不同的字体(如 Baskerville 或 Times New Roman)时,该字符可见。如果您注释掉 fontspec 并仍然使用 XeLaTeX 进行编译,则会使用正确的伽玛。

以下是最小的工作示例:

\documentclass[letter,reqno]{amsart}

\usepackage{textgreek}
\usepackage{fontspec}

%\setmainfont[Ligatures=TeX]{Times New Roman}
%\setmainfont[Ligatures=TeX]{Baskerville}
%\setmainfont[Ligatures=TeX,BoldFont={Crimson Semibold},ItalicFont={Crimson Italic}]{Crimson Roman}

\begin{document}

\title{Why isn't text gamma working?}
\maketitle

\textgamma-Proteobacteria

\textgamma\ phosphoanhydride

\textgamma\ radiation

\textgamma-amino-butyric acid (GABA)

\end{document}

注释掉 fontspec 行

答案1

fontspec(更准确地说xunicode)重新定义\textgamma。您可以重置命令,但我认为最好放弃 textgreek,使用带有希腊字符的字体和\textgrgamma来自 xunicode 的命令。

\documentclass[letter,reqno]{amsart}
\usepackage[LGR]{fontenc}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Times New Roman}
%\setmainfont[Ligatures=TeX]{Baskerville}
%\setmainfont[Ligatures=TeX,BoldFont={Crimson Semibold},ItalicFont={Crimson Italic}]{Crimson Roman}
\DeclareTextCommand\textgamma{EU1}{{\fontencoding{LGR}\fontfamily{cmr}\selectfont g}}
\begin{document}
\textgamma-Proteobacteria

\textgrgamma-Proteobacteria
\end{document}

在此处输入图片描述

相关内容