我最近从 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$
获得相同的符号。