我正在使用 XeTeX 并有以下简短文档:
\documentclass[a4paper,12pt]{article}
\usepackage{amsmath,amsthm}
\usepackage[MnSymbol]{mathspec}
\usepackage[no-sscript]{xltxtra}
\defaultfontfeatures{Mapping=tex-text}
\setallmainfonts{Minion Pro}
\begin{document}
$\phi, \varphi, \delta \ldots A \vee B$
\end{document}
现在,无论我使用什么字体,数学模式中的标点符号(逗号、点\ldots
等)都会以 Computer Modern 形式显示。有办法改变这种情况吗?
答案1
似乎的作者mathspec
忘记更改逗号的数学代码和的定义\mathellipsis
。以下代码应该可以做到:
\makeatletter
\DeclareMathSymbol{,}{\mathpunct}{\eu@LatinLowercase@symfont}{`,}
\DeclareMathSymbol{.}{\mathord}{\eu@LatinLowercase@symfont}{`.}
\DeclareMathSymbol{<}{\mathrel}{\eu@LatinLowercase@symfont}{`<}
\DeclareMathSymbol{>}{\mathrel}{\eu@LatinLowercase@symfont}{`>}
\DeclareMathSymbol{/}{\mathord}{\eu@LatinLowercase@symfont}{`/}
\XeTeXDeclareMathSymbol{^^^^2026}{\mathinner}{\eu@LatinLowercase@symfont}{"2026}[\mathellipsis]
\makeatother
一些其他字符或命令可能会被重新定义,这至少解决了最常见的未被正确处理的问题mathspec
。