使用 mathspec 更改希腊数学字体

使用 mathspec 更改希腊数学字体

我最近从 pdftex 换成了 xetex,以便能够在 Bembo Std 中编写文档,但还没有完全实现。在尝试排版我其中一门课程的一些笔记时,我尝试在数学模式的内部(斜体)和外部(非斜体)排版希腊符号。我尝试在 Mac OS X 10.8 上使用希腊键盘布局输入字母,只要字体有字形,就可以了,并且我尝试使用以下命令在数学模式下更改希腊字符的字体:

\usepackage{mathspec} 
\setmainfont[Ligatures={Tex}]{Bembo Std}
\setmathsfont(Digits,Latin)[Scale=MatchLowercase]{Bembo Std}
\setmathsfont(Greek)[Scale=MatchLowercase]{STIXGeneral}

我在 Mac OS X 10.8 上使用 texlive 2012 和 Texpad。尝试上述代码时,xetex 无法排版,似乎陷入了无限循环。注释掉最后一行将使其排版,但希腊字母使用的字体将是 Computer Modern。(Bembo Std 不包含任何希腊字形(至少我的版本不包含),因此使用 STIXGeneral。)

我尝试在日志文件中查找该问题的原因,但是并没有得到任何有用的信息。

一个简单的例子:

\RequirePackage[l2tabu, orthodox]{nag} 

% Opmaak
\documentclass[11pt,oneside]{article}
\usepackage[a4paper]{geometry}
% \usepackage[artemisia]{textgreek}
 \usepackage[final,kerning=true,spacing=true,factor=1100,stretch=10,shrink=10]{microtype}

% Wiskunde
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage[math]{mathspec}
\setmainfont[Ligatures={Tex}]{Bembo Std}
\setmathsfont(Digits,Latin)[Scale=MatchLowercase]{Bembo Std}
% \setmathsfont(Greek)[Scale=MatchLowercase]{STIXGeneral}

% Varia
\usepackage{polyglossia}
\setdefaultlanguage{dutch}
\usepackage{hyperref}

\begin{document}

\section{Les 8}
De boeken worden vaak aangeduid met Romeinse cijfers, maar ook met Griekse letters. Zo staat boek I ook gekend als boek A, boek II als boek α $\alpha$ (kleine alpha) en alle volgende boeken krijgen de alfabetisch hier op volgende Griekse letter toegewezen. 

\end{document}

如何在数学模式中用不同的字体排版希腊字母? 如果主字体不包含任何字形,我该如何使用我选择的另一种字体排版直立希腊字母?

答案1

mathspec该问题与《Polyglossia》发布后引入的 Babel 风格的速记有关。

基本上,速记活动字符"会得到一个覆盖所给出的定义的定义mathspec,并且无限循环就在角落后面。

\documentclass[11pt,oneside]{article}
\usepackage[a4paper]{geometry}
\usepackage[final]{microtype}


% Wiskunde
\usepackage{amsmath}
\usepackage{amssymb}

\usepackage{mathspec}
\setmainfont[Ligatures=TeX]{Junicode}
\setmathsfont(Digits,Latin)[Scale=MatchLowercase]{Junicode}
\setmathsfont(Greek)[Scale=MatchLowercase]{STIXGeneral}

%%% this patch must go before loading polyglossia
\makeatletter
\begingroup\lccode`~=`"
\lowercase{\endgroup
  \everymath{\let~\eu@active@quote}
  \everydisplay{\let~\eu@active@quote}
}
\makeatother

\usepackage{polyglossia}
\setmainlanguage{dutch}

% Varia
\usepackage{hyperref}


\begin{document}

\section{Les 8}

De boeken worden vaak aangeduid met Romeinse cijfers, maar ook met Griekse 
letters. Zo staat boek I ook gekend als boek A, boek II als boek α $α$ $\alpha$
(kleine alpha) en alle volgende boeken krijgen de alfabetisch hier op volgende 
Griekse letter toegewezen.

\end{document}

我使用了 Junicode,因为我没有 Bembo,但两者是一样的。我还展示了您可以同时输入这两种字符$α$$\alpha$获得相同的符号。

在此处输入图片描述

相关内容