Unicode 数学和 \Re

Unicode 数学和 \Re

我正在尝试Unicode 数学。我正在使用 Neo-Euler 和 Concrete,因此我使用 生成我的文档xelatex。我想\Re给我 AMS 样式的双线,\mathbb{R}但我\Re在 .cls 中重新定义时遇到了麻烦。

也就是说,使用测试.cls在这个问题的底部,我运行了这个示例文档,它运行良好;我在这三个地方都看到了双线 R。

\documentclass{test}
% If \def here then it does not work. 
\begin{document}
\def\Re{\mathbb{R}}
Hello.  $x=4\mathbb{R}$. Give me a $\Re$ and a $\R$.
\end{document}

但是,如果我将 移到\def上方,\begin{document}那么我只会在两个地方看到双线 R,而在中间我得到了 Knuth 的\Re,有点破碎的单线形状。特别是,将我的重新定义放在下面的 .cls 中没有任何效果。我预计其中有些\AtBeginDocument在起作用,但我无法弄清楚。有没有什么方法可以让 不在\def里面\begin{document}

% test.cls

% --- Class structure: identification part
% ---
\ProvidesClass{ltest}[2012/09/10 version 0.01 Test unicode-math]
\NeedsTeXFormat{LaTeX2e}

% --- Class structure: initial code part
% ---


% --- Class structure: declaration of options part
% ---
% This class extends the article class
% Read all the documentclass options; pass them to article
%\DeclareOption*{\InputIfFileExists{\CurrentOption.tut}{}{%
%    \PassOptionsToClass{\CurrentOption}{report}}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}

% --- Class structure: execution of options part
% ---
\ProcessOptions \relax

% --- Class structure: declaration of options part
% ---
\LoadClass{article}

% --- Class structure: main code part
% ---

% Set the fonts
\usepackage{fontspec}
\setmainfont[Ligatures=TeX,  % CM-Super Concrete
             Path = /usr/local/texlive/2012/texmf-dist/fonts/type1/public/cm-super/,
             ItalicFont = sfoti10.pfb,
             SmallCapsFont = sfocc10]{sform10.pfb}

\usepackage[math-style=upright]{unicode-math} % see http://tex.stackexchange.com/questions/50995/font-mixup-with-neo-euler-and-fontspec
\setmathfont[Path=/usr/local/texlive/texmf-local/fonts/opentype/euler/]{euler.otf}
% \AtBeginDocument{\DeclareMathAlphabet\mathbf{U}{eur}{b}{n}} % fontspec manual p. 11; doesn't seem to do anything.
\setmathfont[range=\mathbb,
             Path=/usr/local/texlive/2012/texmf-dist/fonts/type1/public/amsfonts/symbols/]{msbm10.pfb}  

\newcommand{\R}{\mathbb{R}}

答案1

unicode-math完成它的许多工作\AtBeginDocument

\Re只需在\AtBeginDocument加载后重新定义即可unicode-math(如果愿意的话,也可以在课堂上)。

\documentclass{test}

\AtBeginDocument{\def\Re{\mathbb{R}}}

\begin{document}
Hello.  $x=4\mathbb{R}$. Give me a $\Re$ and a $\R$.
\end{document}

相关内容