使用 unicode-math 模拟 amsmath 的 \varGamma...\varOmega

使用 unicode-math 模拟 amsmath 的 \varGamma...\varOmega

在使用 XeLaTeX 重新编译旧文档时,unicode-math我遇到了两个问题:

  1. \varGamma...\varOmega未定义用于倾斜大写希腊字母数学字符的amsmath宏。简单\let替换至少可以提供字符,但它不会通过选项提供所需的斜体字符math-style=TeX。一些字体包有选项可以将默认的大写希腊字母更改为斜体(math-style=ISO等效),然后\varGamma...定义为提供直立字符。我希望定义这些宏以与amsmath/LaTeX 定义一致地运行。

  2. \bm软件包中的宏是bm获得 LaTeX 中粗体数学的“最佳”方法。无需替换\bm文档中的所有宏,\let\bm=\mathbf似乎可以使用unicode-math,但我不知道潜在的陷阱。

问题是所有这些宏都是以 Latex3 编程风格编写的,这远远超出了我的知识水平。

\documentclass{article}
\usepackage{ifxetex}
\usepackage{amsmath}% for uppercase greek slanted variants
\ifxetex
    \usepackage{xltxtra}
    \def\mathstyle{TeX}   % or ISO
    \usepackage[math-style=\mathstyle,
                bold-style=\mathstyle,
                vargreek-shape=TeX
               ]{unicode-math}
    \defaultfontfeatures{Ligatures=TeX}
    \setmainfont{TeX Gyre Pagella}
    \setmathfont{Asana Math}
    \let\bm\mathbf
    \AtBeginDocument{
        \let\varGamma  \mitGamma
        \let\varDelta  \Delta
        \let\varTheta  \Theta
        \let\varLambda \Lambda
        \let\varXi     \Xi
        \let\varPi     \Pi
        \let\varSigma  \Sigma
        \let\varUpsilon\Upsilon
        \let\varPhi    \Phi
        \let\varPsi    \Psi
        \let\varOmega  \Omega}
\else
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{textcomp}
    \usepackage{mathpazo}
    \usepackage{bm}
\fi
\begin{document}
\ifxetex
    \XeLaTeX{} (\texttt{math-style=\mathstyle})
\else
    \LaTeX
\fi
\medskip

\verb+\Gamma...\Omega+\par
$\Gamma\Delta\Theta\Lambda\Xi\Pi\Sigma\Upsilon\Phi\Psi\Omega$\quad
$\bm{\Gamma\Delta\Theta\Lambda\Xi\Pi\Sigma\Upsilon\Phi\Psi\Omega}$
\medskip

\verb+\varGamma...\varOmega+\par
$\varGamma\varDelta\varTheta\varLambda\varXi\varPi\varSigma\varUpsilon\varPhi\varPsi\varOmega$\quad
$\bm{\varGamma\varDelta\varTheta\varLambda\varXi\varPi\varSigma\varUpsilon\varPhi\varPsi\varOmega}$

\end{document}

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

答案1

bmUnicode 数学感知版本的开始

http://code.google.com/p/dpctex/source/browse/#svn%2Ftrunk%2Fbm

但是我很忙而且它还没有完全完成(所以不在 ctan 上)正如你所说你可以使用\mathbf(我不确定我是否同意 unicode-math 改变的含义\mathbf但无论如何这就是它的作用:-)

当然,您也可以选择直接通过 Unicode 编号输入这些字符。相关范围在表格中,从

http://www.w3.org/2003/entities/2007doc/1D4.html

相关内容