Coder Social home page Coder Social logo

latex3 / unicode-math Goto Github PK

View Code? Open in Web Editor NEW
234.0 29.0 27.0 5.23 MB

XeLaTeX/LuaLaTeX package for using unicode/OpenType maths fonts

Home Page: http://ctan.org/pkg/unicode-math

License: LaTeX Project Public License v1.3c

TeX 96.24% Lua 2.12% Shell 1.64%
typesetting unicode-math latex-package

unicode-math's Introduction

The UNICODE-MATH package

This package provides an implementation of Unicode/OpenType mathematics for XeLaTeX and LuaLaTeX.

While I am a little wary of encouraging people to use this package for production work, I understand that it has certain uses and am making it available for distribution. Your testing and feedback is essential to fill in the many gaps that I miss!

Please be aware that this package is undergoing continued development and the interface and functionality should not be considered completely stable. But the more the package is used the more stable it will become. (Things are generally working now; it is only minutiae that may change in the future.)

Unicode maths is currently supported by the following freely available fonts:

These fonts are available under open source licences (the GUST Font License and Open Font Licence).

The following fonts are proprietary with OpenType maths support:

I'm always looking for new fonts to test with, so please let me know of any new releases.

PACKAGE USAGE

Please see the PDF documentation for full details. A simple beginning is:

\usepackage{unicode-math}
\setmathfont{texgyrepagella-math.otf}

Most LaTeX math should still work after this. (Let me know if it doesn't.) Furthermore, it will be in a different font.

REQUIREMENTS

As well as running XeTeX or LuaTeX, this package requires recent versions of the lm-math, fontspec, expl3, xpackages, and lualatex-math packages.

THANKS

I write LaTeX code as a hobby and a passion, not as part of my day job. If you would like to say thanks, please consider a donation at: https://www.patreon.com/wspr

DEVELOPMENT and MAINTENANCE

The current release version is available from CTAN:

https://ctan.org/pkg/unicode-math

Latest developmental and archived historical versions are available from Github:

http://github.com/wspr/unicode-math

Please file bug reports with minimal examples:

http://github.com/wspr/unicode-math/issues

See CHANGES.md for the complete listing of change history.

Further information on the details surrounding the development of the package can be found in the CONTRIBUTING.md file in the Github repository.

LICENCE

The unicode-math package may be modified and distributed under the terms and conditions of the LaTeX Project Public License, version 1.3c or greater.

This work is maintained by Will Robertson and consists of the files listed in MANIFEST.md.

unicode-math's People

Contributors

alphaztx avatar archangegabriel avatar caramdir avatar d1saster avatar davidcarlisle avatar e-kwsm avatar eg9 avatar eroux avatar itoijala avatar jfbu avatar josephwright avatar jpintar avatar khaledhosny avatar marcin-serwin avatar mdeff avatar muzimuzhi avatar phile314 avatar phst avatar pthariensflame avatar spl avatar stone-zeng avatar wspr avatar zauguin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

unicode-math's Issues

Assign arbitrary (non-math) fonts to math alphabets

If a font doesn't have a math plane, then it should still be possible to fake it with italic characters or so.

This would also make it possible to load an euler font with ascii glyphs for the math input.

\epsilon is broken

Hi Will,
here's the first of three issues I found last week while playing with xelatex and unicode-math.
I'll attach separate patches for each issue.

  1. \epsilon is broken, while \varepsilon is initalized twice for each font switch.

Regards, Ulrik

Here's the patch to unicode-math.sty

--- unicode-math.sty.orig   Thu Sep 03 09:06:46 2009
+++ unicode-math.sty    Wed Sep 09 23:02:29 2009
@@ -88,7 +88,7 @@
 \def\um@usv@bfsfitgreek{"1D7AA}
 \def\um@usv@varTheta{"3F4}
 \def\um@usv@Digamma{"3DC}
-\def\um@usv@varepsilon{"3F5}
+\def\um@usv@epsilon{"3F5}
 \def\um@usv@vartheta{"3D1}
 \def\um@usv@varkappa{"3F0}
 \def\um@usv@varphi{"3D5}
@@ -97,7 +97,7 @@
 \def\um@usv@digamma{"3DD}
 \def\um@usv@bfvarTheta{"1D6B9}
 \def\um@usv@bfDigamma{"1D7CA}
-\def\um@usv@bfvarepsilon{"1D6DC}
+\def\um@usv@bfepsilon{"1D6DC}
 \def\um@usv@bfvartheta{"1D6DD}
 \def\um@usv@bfvarkappa{"1D6DE}
 \def\um@usv@bfvarphi{"1D6DF}
@@ -106,7 +106,7 @@
 \def\um@usv@bfdigamma{"1D7CB}
 \def\um@usv@ith{"210E}
 \def\um@usv@itvarTheta{"1D6F3}
-\def\um@usv@itvarepsilon{"1D716}
+\def\um@usv@itepsilon{"1D716}
 \def\um@usv@itvartheta{"1D717}
 \def\um@usv@itvarkappa{"1D718}
 \def\um@usv@itvarphi{"1D719}
@@ -115,7 +115,7 @@
 \def\um@usv@bfuph{"1D421}
 \def\um@usv@bfith{"1D489}
 \def\um@usv@bfitvarTheta{"1D72D}
-\def\um@usv@bfitvarepsilon{"1D750}
+\def\um@usv@bfitepsilon{"1D750}
 \def\um@usv@bfitvartheta{"1D751}
 \def\um@usv@bfitvarkappa{"1D752}
 \def\um@usv@bfitvarphi{"1D753}
@@ -386,7 +386,7 @@
       \fi
       \if@um@bfupgreek
         \um@setmathcode[25]{\um@usv@bfgreek,\um@usv@bfitgreek}{\um@usv@bfgreek}%
-        \um@setmathcode{\um@usv@bfvarepsilon,\um@usv@bfitvarepsilon}{\um@usv@bfvarepsilon}%
+        \um@setmathcode{\um@usv@bfepsilon,\um@usv@bfitepsilon}{\um@usv@bfepsilon}%
         \um@setmathcode{\um@usv@bfvartheta,\um@usv@bfitvartheta}{\um@usv@bfvartheta}%
         \um@setmathcode{\um@usv@bfvarkappa,\um@usv@bfitvarkappa}{\um@usv@bfvarkappa}%
         \um@setmathcode{\um@usv@bfvarphi,\um@usv@bfitvarphi}{\um@usv@bfvarphi}%
@@ -394,7 +394,7 @@
         \um@setmathcode{\um@usv@bfvarpi,\um@usv@bfitvarpi}{\um@usv@bfvarpi}%
       \else
         \um@setmathcode[25]{\um@usv@bfgreek,\um@usv@bfitgreek}{\um@usv@bfitgreek}%
-        \um@setmathcode{\um@usv@bfvarepsilon,\um@usv@bfitvarepsilon}{\um@usv@bfitvarepsilon}%
+        \um@setmathcode{\um@usv@bfepsilon,\um@usv@bfitepsilon}{\um@usv@bfitepsilon}%
         \um@setmathcode{\um@usv@bfvartheta,\um@usv@bfitvartheta}{\um@usv@bfitvartheta}%
         \um@setmathcode{\um@usv@bfvarkappa,\um@usv@bfitvarkappa}{\um@usv@bfitvarkappa}%
         \um@setmathcode{\um@usv@bfvarphi,\um@usv@bfitvarphi}{\um@usv@bfitvarphi}%
@@ -651,7 +651,7 @@
   \def\chi{\mitchi}%
   \def\psi{\mitpsi}%
   \def\omega{\mitomega}%
-  \def\varepsilon{\mitvarepsilon}%
+  \def\epsilon{\mitepsilon}%
   \def\vartheta{\mitvartheta}%
   \def\varkappa{\mitvarkappa}%
   \def\varphi{\mitvarphi}%
@@ -682,7 +682,7 @@
 }
 \newcommand\um@def@upgreek{%
     \um@setmathcode[25]{\um@usv@upgreek,\um@usv@itgreek}{\um@usv@upgreek}%
-    \um@setmathcode{\um@usv@varepsilon,\um@usv@itvarepsilon}{\um@usv@varepsilon}%
+    \um@setmathcode{\um@usv@epsilon,\um@usv@itepsilon}{\um@usv@epsilon}%
     \um@setmathcode{\um@usv@vartheta,\um@usv@itvartheta}{\um@usv@vartheta}%
     \um@setmathcode{\um@usv@varkappa,\um@usv@itvarkappa}{\um@usv@varkappa}%
     \um@setmathcode{\um@usv@varphi,\um@usv@itvarphi}{\um@usv@varphi}%
@@ -691,7 +691,7 @@
 }
 \newcommand\um@def@itgreek{%
     \um@setmathcode[25]{\um@usv@upgreek,\um@usv@itgreek}{\um@usv@itgreek}%
-    \um@setmathcode{\um@usv@varepsilon,\um@usv@itvarepsilon}{\um@usv@itvarepsilon}%
+    \um@setmathcode{\um@usv@epsilon,\um@usv@itepsilon}{\um@usv@itepsilon}%
     \um@setmathcode{\um@usv@vartheta,\um@usv@itvartheta}{\um@usv@itvartheta}%
     \um@setmathcode{\um@usv@varkappa,\um@usv@itvarkappa}{\um@usv@itvarkappa}%
     \um@setmathcode{\um@usv@varphi,\um@usv@itvarphi}{\um@usv@itvarphi}%
@@ -723,7 +723,7 @@
   \um@setmathalph{\mathup}{\um@usv@Nabla,\um@usv@itNabla}{\um@usv@Nabla}%
   \um@setmathalph{\mathup}{\um@usv@partial,\um@usv@itpartial}{\um@usv@partial}%
   \um@setmathalph{\mathup}{\um@usv@varTheta,\um@usv@itvarTheta}{\um@usv@varTheta}%
-  \um@setmathalph{\mathup}{\um@usv@varepsilon,\um@usv@itvarepsilon}{\um@usv@varepsilon}%
+  \um@setmathalph{\mathup}{\um@usv@epsilon,\um@usv@itepsilon}{\um@usv@epsilon}%
   \um@setmathalph{\mathup}{\um@usv@vartheta,\um@usv@itvartheta}{\um@usv@vartheta}%
   \um@setmathalph{\mathup}{\um@usv@varkappa,\um@usv@itvarkappa}{\um@usv@varkappa}%
   \um@setmathalph{\mathup}{\um@usv@varphi,\um@usv@itvarphi}{\um@usv@varphi}%
@@ -740,7 +740,7 @@
   \um@setmathalph{\mathit}{\um@usv@Nabla,\um@usv@itNabla}{\um@usv@itNabla}%
   \um@setmathalph{\mathit}{\um@usv@partial,\um@usv@itpartial}{\um@usv@itpartial}%
   \um@setmathalph{\mathit}{\um@usv@varTheta,\um@usv@itvarTheta}{\um@usv@itvarTheta}%
-  \um@setmathalph{\mathit}{\um@usv@varepsilon,\um@usv@itvarepsilon}{\um@usv@itvarepsilon}%
+  \um@setmathalph{\mathit}{\um@usv@epsilon,\um@usv@itepsilon}{\um@usv@itepsilon}%
   \um@setmathalph{\mathit}{\um@usv@vartheta,\um@usv@itvartheta}{\um@usv@itvartheta}%
   \um@setmathalph{\mathit}{\um@usv@varkappa,\um@usv@itvarkappa}{\um@usv@itvarkappa}%
   \um@setmathalph{\mathit}{\um@usv@varphi,\um@usv@itvarphi}{\um@usv@itvarphi}%
@@ -816,7 +816,7 @@
     \um@setmathalph{\mathbf}{\um@usv@Nabla}{\um@usv@bfNabla}%
     \um@setmathalph{\mathbf}{\um@usv@Digamma}{\um@usv@bfDigamma}%
     \um@setmathalph{\mathbf}{\um@usv@partial}{\um@usv@bfpartial}%
-    \um@setmathalph{\mathbf}{\um@usv@varepsilon}{\um@usv@bfvarepsilon}%
+    \um@setmathalph{\mathbf}{\um@usv@epsilon}{\um@usv@bfepsilon}%
     \um@setmathalph{\mathbf}{\um@usv@vartheta}{\um@usv@bfvartheta}%
     \um@setmathalph{\mathbf}{\um@usv@varkappa}{\um@usv@bfvarkappa}%
     \um@setmathalph{\mathbf}{\um@usv@varphi}{\um@usv@bfvarphi}%
@@ -826,7 +826,7 @@
     \um@setmathalph{\mathbf}{\um@usv@itvarTheta}{\um@usv@bfitvarTheta}%
     \um@setmathalph{\mathbf}{\um@usv@itNabla}{\um@usv@bfitNabla}%
     \um@setmathalph{\mathbf}{\um@usv@itpartial}{\um@usv@bfitpartial}%
-    \um@setmathalph{\mathbf}{\um@usv@itvarepsilon}{\um@usv@bfitvarepsilon}%
+    \um@setmathalph{\mathbf}{\um@usv@itepsilon}{\um@usv@bfitepsilon}%
     \um@setmathalph{\mathbf}{\um@usv@itvartheta}{\um@usv@bfitvartheta}%
     \um@setmathalph{\mathbf}{\um@usv@itvarkappa}{\um@usv@bfitvarkappa}%
     \um@setmathalph{\mathbf}{\um@usv@itvarphi}{\um@usv@bfitvarphi}%
@@ -854,7 +854,7 @@
     \fi
     \if@um@bfupgreek
       \um@setmathalph[25]{\mathbf}{\um@usv@upgreek,\um@usv@itgreek}{\um@usv@bfgreek}%
-      \um@setmathalph{\mathbf}{\um@usv@varepsilon,\um@usv@itvarepsilon}{\um@usv@bfvarepsilon}%
+      \um@setmathalph{\mathbf}{\um@usv@epsilon,\um@usv@itepsilon}{\um@usv@bfepsilon}%
       \um@setmathalph{\mathbf}{\um@usv@vartheta,\um@usv@itvartheta}{\um@usv@bfvartheta}%
       \um@setmathalph{\mathbf}{\um@usv@varkappa,\um@usv@itvarkappa}{\um@usv@bfvarkappa}%
       \um@setmathalph{\mathbf}{\um@usv@varphi,\um@usv@itvarphi}{\um@usv@bfvarphi}%
@@ -862,7 +862,7 @@
       \um@setmathalph{\mathbf}{\um@usv@varpi,\um@usv@itvarpi}{\um@usv@bfvarpi}%
     \else
       \um@setmathalph[25]{\mathbf}{\um@usv@upgreek,\um@usv@itgreek}{\um@usv@bfitgreek}%
-      \um@setmathalph{\mathbf}{\um@usv@varepsilon,\um@usv@itvarepsilon}{\um@usv@bfitvarepsilon}%
+      \um@setmathalph{\mathbf}{\um@usv@epsilon,\um@usv@itepsilon}{\um@usv@bfitepsilon}%
       \um@setmathalph{\mathbf}{\um@usv@vartheta,\um@usv@itvartheta}{\um@usv@bfitvartheta}%
       \um@setmathalph{\mathbf}{\um@usv@varkappa,\um@usv@itvarkappa}{\um@usv@bfitvarkappa}%
       \um@setmathalph{\mathbf}{\um@usv@varphi,\um@usv@itvarphi}{\um@usv@bfitvarphi}%
@@ -884,7 +884,7 @@
   \um@setmathalph{\mathbfit}{\um@usv@varTheta,\um@usv@itvarTheta}{\um@usv@bfitvarTheta}%
   \um@setmathalph{\mathbfit}{\um@usv@Nabla,\um@usv@itNabla}{\um@usv@bfitNabla}%
   \um@setmathalph{\mathbfit}{\um@usv@partial,\um@usv@itpartial}{\um@usv@bfitpartial}%
-  \um@setmathalph{\mathbfit}{\um@usv@varepsilon,\um@usv@itvarepsilon}{\um@usv@bfitvarepsilon}%
+  \um@setmathalph{\mathbfit}{\um@usv@epsilon,\um@usv@itepsilon}{\um@usv@bfitepsilon}%
   \um@setmathalph{\mathbfit}{\um@usv@vartheta,\um@usv@itvartheta}{\um@usv@bfitvartheta}%
   \um@setmathalph{\mathbfit}{\um@usv@varkappa,\um@usv@itvarkappa}{\um@usv@bfitvarkappa}%
   \um@setmathalph{\mathbfit}{\um@usv@varphi,\um@usv@itvarphi}{\um@usv@bfitvarphi}%
@@ -904,7 +904,7 @@
   \um@setmathalph{\mathbfup}{\um@usv@varTheta,\um@usv@itvarTheta}{\um@usv@bfvarTheta}%
   \um@setmathalph{\mathbfup}{\um@usv@Nabla,\um@usv@itNabla}{\um@usv@bfNabla}%
   \um@setmathalph{\mathbfup}{\um@usv@partial,\um@usv@itpartial}{\um@usv@bfpartial}%
-  \um@setmathalph{\mathbfup}{\um@usv@varepsilon,\um@usv@itvarepsilon}{\um@usv@bfvarepsilon}%
+  \um@setmathalph{\mathbfup}{\um@usv@epsilon,\um@usv@itepsilon}{\um@usv@bfepsilon}%
   \um@setmathalph{\mathbfup}{\um@usv@vartheta,\um@usv@itvartheta}{\um@usv@bfvartheta}%
   \um@setmathalph{\mathbfup}{\um@usv@varkappa,\um@usv@itvarkappa}{\um@usv@bfvarkappa}%
   \um@setmathalph{\mathbfup}{\um@usv@varphi,\um@usv@itvarphi}{\um@usv@bfvarphi}%
@@ -930,7 +930,7 @@
   \um@setmathalph{\mathbfsf}{\um@usv@varTheta}{"1D767}%
   \um@setmathalph{\mathbfsf}{\um@usv@Nabla}{"1D76F}%
   \um@setmathalph{\mathbfsf}{\um@usv@partial}{"1D789}%
-  \um@setmathalph{\mathbfsf}{\um@usv@varepsilon}{"1D78A}%
+  \um@setmathalph{\mathbfsf}{\um@usv@epsilon}{"1D78A}%
   \um@setmathalph{\mathbfsf}{\um@usv@vartheta}{"1D78B}%
   \um@setmathalph{\mathbfsf}{\um@usv@varkappa}{"1D78C}%
   \um@setmathalph{\mathbfsf}{\um@usv@varphi}{"1D78D}%
@@ -946,7 +946,7 @@
   \um@setmathalph{\mathbfsfit}{\um@usv@varTheta}{"1D7A1}%
   \um@setmathalph{\mathbfsfit}{\um@usv@Nabla}{"1D7A9}%
   \um@setmathalph{\mathbfsfit}{\um@usv@partial}{"1D7C3}%
-  \um@setmathalph{\mathbfsfit}{\um@usv@varepsilon}{"1D7C4}%
+  \um@setmathalph{\mathbfsfit}{\um@usv@epsilon}{"1D7C4}%
   \um@setmathalph{\mathbfsfit}{\um@usv@vartheta}{"1D7C5}%
   \um@setmathalph%7

Cut-ins not implemented? (from AMS testmath.tex)

Compare the placement of the subscript ‘k’ in $f = \{f_k\}$ with unicode-math loaded and without.

Someone with Word 2007 ought to check how MS kerns this; it may be a font issue, not a unicode-math one.

Rework integrals

Rework multiple integrals code from amsmath to take advantage of pre-drawn glyphs.

  • E.g.: Cambria Math is missing the quadruple integral operator. At some point there will be need for a set of per-font fixes, defining sequences the font is missing.

Also see issue #52 about \idotsint

The Range feature is pretty broken

Need to tighten up what's going on with [Range=...]

  1. Fonts shouldn't assign glyphs they don't have? (Check how slow this is, first.)
  2. Range should restrict itself to only what's explicitly specified (see the TODO in the code about this).
  3. Perhaps I need to start naming the math fonts. Not sure about that, yet.

'dtls' OpenType feature

OpenType math specification suggests using a single substitution ('dtls') feature to map dotless forms for math accent placement. It would be nice if unicode-math can use that feature so that \hat{i}, for example, would work without the need to explicitly specify dotless form which might be impossible for some characters (math bold i or j for example as dotless forms of both has no unicode code points AFAIK).

Package option to use upright math

Some fonts like Euler has no italic math (and by design, it'll never has), I think it'd be needed to have an option to switch all math symbols globally to upright ones, may be [math-style=upright]?

unicode-math and amscd.sty

From Apostolos on unimath:

The [amscd package](http://tug.ctan.org/pkg/amscd) adapts the commutative diagram macros of AMS-TeX for use in LaTeX. However, the package cannot be used with XeLaTeX when unicode-math is loaded. A workaround is to patch file amscd.sty using the following patch
--- amscd.sty    Κυρ Οκτ 12 18:38:00 2008 
+++ amscd.sty.new    Κυρ Οκτ 12 18:38:28 2008 
@@ -158,7 +158,7 @@ 
{$\scriptstyle#1$}}$}\Big\uparrow 
\rlap{$\m@th\vcenter{\hbox{$\scriptstyle#2$}}$}&&}} 
\atdef@ V#1V#2V{\CD@check{V..V..V}{\llap{$\m@th\vcenter{\hbox 
-  {$\scriptstyle#1$}}$}\Big\downarrow 
+  {$\scriptstyle#1$}}$}\Big\mydownarrow 
\rlap{$\m@th\vcenter{\hbox{$\scriptstyle#2$}}$}&&}} 
\atdef@={\CD@check={&\enskip\mathrel 
{\vbox{\hrule\@width\minCDarrowwidth\vskip2\ex@\hrule\@width 

and then to add the following line to file unicode-math.tex

\UnicodeMathSymbol{"02193}{\mydownarrow}{\mathopen}{downward arrow} 

Missing symbols

I've missed out some symbols in unicode-math-add.tex. Here're some:

\makeatletter
\let\UnicodeMathSymbol\um@mathsymbol@noparse
\UnicodeMathSymbol{"02026}{\mathellipsis}{\mathrel}{ellipsis}%
\UnicodeMathSymbol{"02032}{\prime}{\mathord}{prime}%
\UnicodeMathSymbol{"022EF}{\cdots}{\mathrel}{midline horizontal  ellipsis}%
\let\prime ′
\let\mathellipsis …
\let\@ldots …
\let\@cdots ⋯
\makeatother

Also check out minus, too.

Map slash to division slash (\slash)

Otherwise, '/' will always be taken from CM.

diff --git a/unicode-math.dtx b/unicode-math.dtx
index c761238..7193635 100644
--- a/unicode-math.dtx
+++ b/unicode-math.dtx
@@ -1255,6 +1255,7 @@ This work consists of the files unicode-math.dtx and unicode-math-table.tex
 %    \begin{macrocode}
 \cs_new:Nn \um_remap_symbols: {
   \um_remap_symbol:nnn{"2D}{\mathbin}{"02212}% hyphen to minus
+  \um_remap_symbol:nnn{"2F}{\mathbin}{"02215}% slash to division slash
   \if@um@literal
     \um_remap_symbol:nnn {\um@usv@Nabla}{\mathord}{\um@usv@Nabla}
     \um_remap_symbol:nnn {\um@usv@itNabla}{\mathord}{\um@usv@itNabla}

Scalable arrows?

Apostolos requested support for horizontally-scalable arrows at some stage. Wasn't able to take a look at the time...

\phi and \varphi are mixed up

Hi Will,

here's the second issue. It turns out that \phi and \varphi are mixed up.
Based on the expectations of traditional TeX fonts, I would expect
the straight version to be \phi and the curly version to be \varphi.

P.S: Ultimately this issue is font-specific. What works for Cambria Math
may be wrong for Asana Math, but Cambria matches the Unicode tables.

Regards, Ulrik

Here's the patch for unicode-math.tex

--- unicode-math.tex.orig   Thu Sep 03 09:06:46 2009
+++ unicode-math.tex    Wed Sep 09 23:17:41 2009
@@ -2068,7 +2068,7 @@
 \UnicodeMathSymbol{"1D70E}{\mitsigma                }{\mathalpha}{mathematical italic small sigma}%
 \UnicodeMathSymbol{"1D70F}{\mittau                  }{\mathalpha}{mathematical italic small tau}%
 \UnicodeMathSymbol{"1D710}{\mitupsilon              }{\mathalpha}{mathematical italic small upsilon}%
-\UnicodeMathSymbol{"1D711}{\mitphi                  }{\mathalpha}{mathematical italic small phi}%
+\UnicodeMathSymbol{"1D711}{\mitvarphi               }{\mathalpha}{mathematical italic small phi}%
 \UnicodeMathSymbol{"1D712}{\mitchi                  }{\mathalpha}{mathematical italic small chi}%
 \UnicodeMathSymbol{"1D713}{\mitpsi                  }{\mathalpha}{mathematical italic small psi}%
 \UnicodeMathSymbol{"1D714}{\mitomega                }{\mathalpha}{mathematical italic small omega}%
@@ -2076,7 +2076,7 @@
 \UnicodeMathSymbol{"1D716}{\mitepsilon              }{\mathalpha}{mathematical italic epsilon symbol}%
 \UnicodeMathSymbol{"1D717}{\mitvartheta             }{\mathalpha}{mathematical italic theta symbol}%
 \UnicodeMathSymbol{"1D718}{\mitvarkappa             }{\mathalpha}{mathematical italic kappa symbol}%
-\UnicodeMathSymbol{"1D719}{\mitvarphi               }{\mathalpha}{mathematical italic phi symbol}%
+\UnicodeMathSymbol{"1D719}{\mitphi                  }{\mathalpha}{mathematical italic phi symbol}%
 \UnicodeMathSymbol{"1D71A}{\mitvarrho               }{\mathalpha}{mathematical italic rho symbol}%
 \UnicodeMathSymbol{"1D71B}{\mitvarpi                }{\mathalpha}{mathematical italic pi symbol}%
 \UnicodeMathSymbol{"1D71C}{\mbfitAlpha              }{\mathalpha}{mathematical bold italic capital alpha}%
@@ -2126,7 +2126,7 @@
 \UnicodeMathSymbol{"1D748}{\mbfitsigma              }{\mathalpha}{mathematical bold italic small sigma}%
 \UnicodeMathSymbol{"1D749}{\mbfittau                }{\mathalpha}{mathematical bold italic small tau}%
 \UnicodeMathSymbol{"1D74A}{\mbfitupsilon            }{\mathalpha}{mathematical bold italic small upsilon}%
-\UnicodeMathSymbol{"1D74B}{\mbfitphi                }{\mathalpha}{mathematical bold italic small phi}%
+\UnicodeMathSymbol{"1D74B}{\mbfitvarphi             }{\mathalpha}{mathematical bold italic small phi}%
 \UnicodeMathSymbol{"1D74C}{\mbfitchi                }{\mathalpha}{mathematical bold italic small chi}%
 \UnicodeMathSymbol{"1D74D}{\mbfitpsi                }{\mathalpha}{mathematical bold italic small psi}%
 \UnicodeMathSymbol{"1D74E}{\mbfitomega              }{\mathalpha}{mathematical bold italic small omega}%
@@ -2134,7 +2134,7 @@
 \UnicodeMathSymbol{"1D750}{\mbfitepsilon            }{\mathalpha}{mathematical bold italic epsilon symbol}%
 \UnicodeMathSymbol{"1D751}{\mbfitvartheta           }{\mathalpha}{mathematical bold italic theta symbol}%
 \UnicodeMathSymbol{"1D752}{\mbfitvarkappa           }{\mathalpha}{mathematical bold italic kappa symbol}%
-\UnicodeMathSymbol{"1D753}{\mbfitvarphi             }{\mathalpha}{mathematical bold italic phi symbol}%
+\UnicodeMathSymbol{"1D753}{\mbfitphi                }{\mathalpha}{mathematical bold italic phi symbol}%
 \UnicodeMathSymbol{"1D754}{\mbfitvarrho             }{\mathalpha}{mathematical bold italic rho symbol}%
 \UnicodeMathSymbol{"1D755}{\mbfitvarpi              }{\mathalpha}{mathematical bold italic pi symbol}%
 \UnicodeMathSymbol{"1D756}{\mbfsansAlpha            }{\mathalpha}{mathematical sans-serif bold capital alpha}%
@@ -2184,7 +2184,7 @@
 \UnicodeMathSymbol{"1D782}{\mbfsanssigma            }{\mathalpha}{mathematical sans-serif bold small sigma}%
 \UnicodeMathSymbol{"1D783}{\mbfsanstau              }{\mathalpha}{mathematical sans-serif bold small tau}%
 \UnicodeMathSymbol{"1D784}{\mbfsansupsilon          }{\mathalpha}{mathematical sans-serif bold small upsilon}%
-\UnicodeMathSymbol{"1D785}{\mbfsansphi              }{\mathalpha}{mathematical sans-serif bold small phi}%
+\UnicodeMathSymbol{"1D785}{\mbfsansvarphi           }{\mathalpha}{mathematical sans-serif bold small phi}%
 \UnicodeMathSymbol{"1D786}{\mbfsanschi              }{\mathalpha}{mathematical sans-serif bold small chi}%
 \UnicodeMathSymbol{"1D787}{\mbfsanspsi              }{\mathalpha}{mathematical sans-serif bold small psi}%
 \UnicodeMathSymbol{"1D788}{\mbfsansomega            }{\mathalpha}{mathematical sans-serif bold small omega}%
@@ -2192,7 +2192,7 @@
 \UnicodeMathSymbol{"1D78A}{\mbfsansepsilon          }{\mathalpha}{mathematical sans-serif bold epsilon symbol}%
 \UnicodeMathSymbol{"1D78B}{\mbfsansvartheta         }{\mathalpha}{mathematical sans-serif bold theta symbol}%
 \UnicodeMathSymbol{"1D78C}{\mbfsansvarkappa         }{\mathalpha}{mathematical sans-serif bold kappa symbol}%
-\UnicodeMathSymbol{"1D78D}{\mbfsansvarphi           }{\mathalpha}{mathematical sans-serif bold phi symbol}%
+\UnicodeMathSymbol{"1D78D}{\mbfsansphi              }{\mathalpha}{mathematical sans-serif bold phi symbol}%
 \UnicodeMathSymbol{"1D78E}{\mbfsansvarrho           }{\mathalpha}{mathematical sans-serif bold rho symbol}%
 \UnicodeMathSymbol{"1D78F}{\mbfsansvarpi            }{\mathalpha}{mathematical sans-serif bold pi symbol}%
 \UnicodeMathSymbol{"1D790}{\mbfitsansAlpha          }{\mathalpha}{mathematical sans-serif bold italic capital alpha}%
@@ -2242,7 +2242,7 @@
 \UnicodeMathSymbol{"1D7BC}{\mbfitsanssigma          }{\mathalpha}{mathematical sans-serif bold italic small sigma}%
 \UnicodeMathSymbol{"1D7BD}{\mbfitsanstau            }{\mathalpha}{mathematical sans-serif bold italic small tau}%
 \UnicodeMathSymbol{"1D7BE}{\mbfitsansupsilon        }{\mathalpha}{mathematical sans-serif bold italic small upsilon}%
-\UnicodeMathSymbol{"1D7BF}{\mbfitsansphi            }{\mathalpha}{mathematical sans-serif bold italic small phi}%
+\UnicodeMathSymbol{"1D7BF}{\mbfitsansvarphi         }{\mathalpha}{mathematical sans-serif bold italic small phi}%
 \UnicodeMathSymbol{"1D7C0}{\mbfitsanschi            }{\mathalpha}{mathematical sans-serif bold italic small chi}%
 \UnicodeMathSymbol{"1D7C1}{\mbfitsanspsi            }{\mathalpha}{mathematical sans-serif bold italic small psi}%
 \UnicodeMathSymbol{"1D7C2}{\mbfitsansomega          }{\mathalpha}{mathematical sans-serif bold italic small omega}%
@@ -2250,7 +2250,7 @@
 \UnicodeMathSymbol{"1D7C4}{\mbfitsansepsilon        }{\mathalpha}{mathematical sans-serif bold italic epsilon symbol}%
 \UnicodeMathSymbol{"1D7C5}{\mbfitsansvartheta       }{\mathalpha}{mathematical sans-serif bold italic theta symbol}%
 \UnicodeMathSymbol{"1D7C6}{\mbfitsansvarkappa       }{\mathalpha}{mathematical sans-serif bold italic kappa symbol}%
-\UnicodeMathSymbol{"1D7C7}{\mbfitsansvarphi         }{\mathalpha}{mathematical sans-serif bold italic phi symbol}%
+\UnicodeMathSymbol{"1D7C7}{\mbfitsansphi            }{\mathalpha}{mathematical sans-serif bold italic phi symbol}%
 \UnicodeMathSymbol{"1D7C8}{\mbfitsansvarrho         }{\mathalpha}{mathematical sans-serif bold italic rho symbol}%
 \UnicodeMathSymbol{"1D7C9}{\mbfitsansvarpi          }{\mathalpha}{mathematical sans-serif bold italic pi symbol}%
 \UnicodeMathSymbol{"1D7CA}{\mbfDigamma              }{\mathalpha}{mathematical bold capital digamma}%

varrho is broken - produces varsigma

line 683 of unicode-math.sty contains the following misleading definition:
\def\varrho{\mitvarsigma}%
Please remove this line (obviously a copy-paste error).

Regards,
Ulrik Vieth

Mustn't screw around with \@preamblecmds so much

From Martin Tang:

I'm not sure if this is an issue for unicode-math, hyperref, or
whether it's a non-issue. The following compiles:

\documentclass{article}
\usepackage{fontspec}
\usepackage[colorlinks]{hyperref}
\begin{document}
Hello, world!
\end{document}

With the addition of unicode-math, the following does not compile:

\documentclass{article}
\usepackage{fontspec,unicode-math}
\usepackage[colorlinks]{hyperref}
\begin{document}
Hello, world!
\end{document}

It has the following output:

! Illegal parameter number in definition of \@preamblecmds.
<to be read again>
                  1
l.115 \@onlypreamble\DefineNamedColor

But, using the package color, it compiles again:

\documentclass{article}
\usepackage{fontspec,unicode-math}
\usepackage{color}
\usepackage[colorlinks]{hyperref}
\begin{document}
Hello, world!
\end{document}

Input sub-/super-script chars should behave

Some people seem to like writing "₀" to get "_0" and so on. Careful, this is a bit of a minefield. E.g., these things can be chained together:

∑ₐ₌₀ⁿ⁺⁵

Scanning ahead char-by-char isn't my idea of fun. But that will probably be necessary for at least the superscript zero, one, two, since they're out on their own.

Investigate under arrows

From Apostolos:

I think I have found a solution this problem: If you replace
\UnicodeMathSymbol{"020EE}{\myunderleftarrow        }{\mathaccent}{combining left arrow below}%
with
\UnicodeMathSymbol{"020EE}{\myunderleftarrow        }{\mathord}{combining left arrow below}%
\def\mymath{\mathsurround=0pt }
\def\underleftarrow#1{\mathop{%
 \vtop{\ialign{##\crcr$\mymath\hfil#1\hfil$\crcr
 \noalign{\nointerlineskip\kern-.75pt}$\myunderleftarrow$\crcr}}}
the attached file produces the expected result. I suppose you can handle `\underrightarrow` and `\threeunderdot` in similar way.

Negated operators (from AMS testmath.tex)

\not= and \neq do not produce U+2260 Not Equal To ‘≠’, but instead overlay the = sign with a Computer Modern slash.

Ideally, they would produce ‘≠’, or at least \not * would produce ‘*’ followed by U+0338 Combining Long Solidus Overlay, e.g., \not=→‘≠’. (This sequence looks bad on the github site; try it in a text editor with, e.g., the DejaVu font.)

Note that the overlay does not currently work; the literal sequence produces just ‘=’.

Documentation issues

I needed to replace the lines
\setromanfont[Mapping=tex-text,Numbers=Lowercase]{FPL Neu}
\setsansfont[Scale=MatchLowercase,Mapping=tex-text]{Lucida Grande}
\setmonofont[Scale=MatchLowercase]{Monaco}
with
\setromanfont[Mapping=tex-text,Numbers={OldStyle,Proportional}]{Constantia}
\setsansfont[Mapping=tex-text,Numbers={OldStyle,Proportional}]{Candara}
\setmonofont[Numbers=OldStyle]{Consolas}
respectively throughout unicode-math.dtx. Could we please have ifplatform choose the fonts?

Also, I got this error:
! Undefined control sequence.
\mathbfsfup

l.414 %     Sans bold & Upright & $\mathbfsfup
                                              \partial$ \\
?

Fixed by replacing \mathbfsfup with \mathbfsf wherever it occurred.

I needed to remove the \iffalse\fi pairs surrounding the generation of unicode-math-test-iso.pdf & friends for a single run. There should be a comment to that effect somewhere.

Table 1 is broken. The code reads
% math-style=ISO & $(a,z,B,X)$ & $(\mitalpha,\mitbeta,\mitGamma,\mitXi)$
% math-style=TeX & $(a,z,B,X)$ & $(\mitalpha,\mitbeta,\upGamma,\upXi)$
% math-style=French & $(a,z,\mupB,\mupX)$ & $(\upalpha,\upbeta,\upGamma,\upXi)$
but all three lines are typeset identically.

On line 273, there is the reference \Tabref[vref]{math-style-check}. There is no such label, and the reference is to the figure fig:math-style-check. There is a similar problem with the reference on line 328 to fig:bold-style-check. Not sure how best to patch this; replacing \Tabref with \Figref works, but they are meant to be tables?

Misc. Missing Glyphs

(I’m going to put all missing glyphs I find in here. Probably this bug can never be fully closed. ☹)

** OPEN **

  • AMS testmath.tex uses \backslash to mean U+2216 ‘∖’ Set Minus. Related to #31 (slash)

** MOVED **

  • Integrals \iiiint and \idotsint, see issue #44 and #52

** CLOSED **

  • Asterisk: * pulls in CMSY; \ast is a good substitute, unless * is active somewhere.
  • Number Sign/Octothorpe/Hash Mark: \# pulls in CMR; \text{\#} avoids this.
  • \circ: U+25CB ‘○’ White Circle is it. Trouble is, Cambria Math is missing the glyph. (Asana Math has it.) I’d suggest making \circ a synonym for \mdlgwhtcircle (the name in unicode-math-table.tex).

(This comes up in amsmath-testmath, in the form \overset{\circ}\to. See testmath.pdf, pg 31, for how this construction should look.

  • Wide accents, e.g., \widetilde or \widehat. These are used over wide letters because TeX accents do not scale (IIRC). Unicode accents do scale, so they can be made synonyms to the narrow varieties. (Actually, I’m not sure if there are any besides \widetilde & \widehat.)

URLs are broken again :(

Something's wrong and I don't know what. I thought this was fixed (unicode-math no longer overwrites an alphabet for which it doesn't have glyphs), but now it's more broken than ever, seemingly. See below.

\documentclass{article}
\usepackage{unicode-math}
\setmathfont{Cambria Math}
\begin{document}
\def\pshow#1{{\let\protect\show #1}}
\pshow\mathtt
$\mathtt{[xyz]}$
\pshow\mathtt
\end{document}

Proper handling of unicode prime

Unicode prime doesn't need to be superscripted. I think this patch by Ross Moore does the trick:

\makeatletter
\UnicodeMathSymbol{"02032}{\prime}{\mathord}{prime}%
\let\prime =E2=80=B2
{\catcode`\' \active
  \gdef '{\bgroup\prim@s}}
\makeatother

variant bold sans greek letters are broken

Hi Will,

here's the final issue. Bold sans variant greek letters are handled incorrect.
Enclosed is the patched (after applying the other two patches).

Regards, Ulrik

--- unicode-math.sty.patched2   Wed Sep 09 23:32:36 2009
+++ unicode-math.sty    Wed Sep 09 23:50:03 2009
@@ -927,15 +927,15 @@
   \um@setmathalph[26]{\mathbfsf}{\um@usv@uplatin,\um@usv@itlatin}{\um@usv@bfsflatin}%
   \um@setmathalph[25]{\mathbfsf}{\um@usv@upGreek,\um@usv@itGreek}{\um@usv@bfsfGreek}%
   \um@setmathalph[25]{\mathbfsf}{\um@usv@upgreek,\um@usv@itgreek}{\um@usv@bfsfgreek}%
-  \um@setmathalph{\mathbfsf}{\um@usv@varTheta}{"1D767}%
-  \um@setmathalph{\mathbfsf}{\um@usv@Nabla}{"1D76F}%
-  \um@setmathalph{\mathbfsf}{\um@usv@partial}{"1D789}%
-  \um@setmathalph{\mathbfsf}{\um@usv@epsilon}{"1D78A}%
-  \um@setmathalph{\mathbfsf}{\um@usv@vartheta}{"1D78B}%
-  \um@setmathalph{\mathbfsf}{\um@usv@varkappa}{"1D78C}%
-  \um@setmathalph{\mathbfsf}{\um@usv@phi}{"1D78D}%
-  \um@setmathalph{\mathbfsf}{\um@usv@varrho}{"1D78E}%
-  \um@setmathalph{\mathbfsf}{\um@usv@varpi}{"1D78F}%
+  \um@setmathalph{\mathbfsf}{\um@usv@varTheta,\um@usv@itvarTheta}{"1D767}%
+  \um@setmathalph{\mathbfsf}{\um@usv@Nabla,\um@usv@itNabla}{"1D76F}%
+  \um@setmathalph{\mathbfsf}{\um@usv@partial,\um@usv@itpartial}{"1D789}%
+  \um@setmathalph{\mathbfsf}{\um@usv@epsilon,\um@usv@itepsilon}{"1D78A}%
+  \um@setmathalph{\mathbfsf}{\um@usv@vartheta,\um@usv@itvartheta}{"1D78B}%
+  \um@setmathalph{\mathbfsf}{\um@usv@varkappa,\um@usv@itvarkappa}{"1D78C}%
+  \um@setmathalph{\mathbfsf}{\um@usv@phi,\um@usv@itphi}{"1D78D}%
+  \um@setmathalph{\mathbfsf}{\um@usv@varrho,\um@usv@itvarrho}{"1D78E}%
+  \um@setmathalph{\mathbfsf}{\um@usv@varpi,\um@usv@itvarpi}{"1D78F}%
 }
 \def\um@setup@mathbfsfit{%
   \um@setmathalph[10]{\mathbfsfit}{\um@usv@num}{\um@usv@bfnum}%
@@ -943,15 +943,15 @@
   \um@setmathalph[26]{\mathbfsfit}{\um@usv@uplatin,\um@usv@itlatin}{\um@usv@bfsfitlatin}%
   \um@setmathalph[25]{\mathbfsfit}{\um@usv@upGreek,\um@usv@itGreek}{\um@usv@bfsfitGreek}%
   \um@setmathalph[25]{\mathbfsfit}{\um@usv@upgreek,\um@usv@itgreek}{\um@usv@bfsfitgreek}%
-  \um@setmathalph{\mathbfsfit}{\um@usv@varTheta}{"1D7A1}%
-  \um@setmathalph{\mathbfsfit}{\um@usv@Nabla}{"1D7A9}%
-  \um@setmathalph{\mathbfsfit}{\um@usv@partial}{"1D7C3}%
-  \um@setmathalph{\mathbfsfit}{\um@usv@epsilon}{"1D7C4}%
-  \um@setmathalph{\mathbfsfit}{\um@usv@vartheta}{"1D7C5}%
-  \um@setmathalph{\mathbfsfit}{\um@usv@varkappa}{"1D7C6}%
-  \um@setmathalph{\mathbfsfit}{\um@usv@phi}{"1D7C7}%
-  \um@setmathalph{\mathbfsfit}{\um@usv@varrho}{"1D7C8}%
-  \um@setmathalph{\mathbfsfit}{\um@usv@varpi}{"1D7C9}%
+  \um@setmathalph{\mathbfsfit}{\um@usv@varTheta,\um@usv@itvarTheta}{"1D7A1}%
+  \um@setmathalph{\mathbfsfit}{\um@usv@Nabla,\um@usv@itNabla}{"1D7A9}%
+  \um@setmathalph{\mathbfsfit}{\um@usv@partial,\um@usv@itpartial}{"1D7C3}%
+  \um@setmathalph{\mathbfsfit}{\um@usv@epsilon,\um@usv@itepsilon}{"1D7C4}%
+  \um@setmathalph{\mathbfsfit}{\um@usv@vartheta,\um@usv@itvartheta}{"1D7C5}%
+  \um@setmathalph{\mathbfsfit}{\um@usv@varkappa,\um@usv@itvarkappa}{"1D7C6}%
+  \um@setmathalph{\mathbfsfit}{\um@usv@phi,\um@usv@itphi}{"1D7C7}%
+  \um@setmathalph{\mathbfsfit}{\um@usv@varrho,\um@usv@itvarrho}{"1D7C8}%
+  \um@setmathalph{\mathbfsfit}{\um@usv@varpi,\um@usv@itvarpi}{"1D7C9}%
 }
 \begingroup
   \catcode`\^=12\relax

Fix vert

From Joel:

Similar issue with \vert |. I’m using absolute values, but \[ \left| x_1(t) \right\vert < 2 \] gives me vertical bars in CMSY10—and odd spacing; I’ve tried using \mid, but it has the wrong mathcode.

\le and \ge are not defined

Both \le and \ge are not defined (\leq and \geq are, though), as a result the symbol is always taken from CM fonts.

Cant't use \setmathfont in the permeable

When using "amsmath" package, using \setmathfont in the permeable will give the error:
! Extended mathchar used as mathchar (71311890).

\relax
l.6 \begin{document}

?

Context-sensitive definitions for maths symbols?

In lieu of a standard maths markup, and given the desire to use literal unicode math symbols in the input text, it would be nice to be able to redefine symbols (i.e., colon, "superset"/"implies") for different uses (e.g., different spacing regimes).

Extendible horizontal arrows?

Apostolos:

In addition, you will notice that there is a problem with
\overleftarrow. An easy solution would be the following one:

\UnicodeMathAccent{"020D7}{\overrightarrow }{\mathaccent}
{combining right arrow above}%

Will:

I'll have to look into this more. I'm not sure if the OpenType maths
fonts are designed to support arbitrarily wide accents. Doing \let
\overrightarrow\vec (equivalent to your suggestion) gives you an
accent that doesn't grow.

Apostolos:

No this is not an OpenType MATH problem, see the attached file. I am not 100% sure about it, but when I first wrote to Jonathan about math accents, he told me that XeTeX cannot build any horizontal construct so it has to use prebuilt glyphs, if available. In the case of Asana I have provided both various pre-built overright and overleft arrows and naturally the mechanism to build such arrows of any length. I have double-cgecked it and Cambria Math does not include variants for vectors and so you get a small vector in cases like $\vec{A+B}$. But if you try Asana Math things are far better :)

Odd whitespace behaviour?

From Martin Tang:

$\{ 0 \}$ gives a left brace, a zero, and a right brace, while
$\{0\}$ gives a funny character (similar in appearance to a font is
missing a character) and a right brace. The same applies if 0 is
replace by another number, but not if it's replaced by a letter.

Add support for Cyrillic maths

Russian mathematics sometimes uses cyrillic letters. This should be supported, but I need some help as to what style is appropriate. (E.g., what should be italic?)

Fall-back font for missing glyphs

Feature request: Will it one day be possible to define a fall-back font when glyphs are missing from the chosen math font? It seems some of the diagnostics are there, because I can get messages like these:
Missing character: There is no ⨌ in font Cambria Math/ICU:script=math,!
Missing character: There is no ⃯ in font Cambria Math/ICU:script=math,!
Missing character: There is no ⃮ in font Cambria Math/ICU:script=math,!
Missing character: There is no ○ in font Cambria Math/ICU:script=math,+ssty=0,!

(small) problem with vectors

I've found a small problem. Using xelatex and unicode-math (which I know is beta) something like

\documentclass[a4paper]{article}
\usepackage[]{fontspec}
\usepackage[math-style=tex]{unicode-math} 
\begin{document}
$\vec{a}^{i,j}_k$
\end{document}

leads to a strange result. The arrow of the vector is not
centered above the vector (a in the example) but centered
above the whole construct.

\documentclass[a4paper]{article}
\usepackage[]{fontspec}
\begin{document}
$\vec{a}^{i,j}_k$
\end{document}

Runs perfectly.

Is there an easy way to work around it?

I want to hand in my ph.d. thesis on tuesday and can't just forget about unicode-math because that would mean to much work. It's great, though!

I could life with using construct like "{\overrightarrow{r }}^{\delta p}_i(t)". That concrete construct, however, is not beautiful because the arrow is way to large but much better because it's centered above the vector....

double entries in unicode-math.tex

The latest version of unicode-math.tex contains two entries for \leftsquigarrow and \rightquigarrow while it does not contain entries for \leftzigzagarrow and \rightzigzagarrow.The first are defined in slots "0219C and "0219D and in slots "021DC and "021DD, respectively. In the previous version these slots were for \leftzigzagarrow and \rightzigzagarrow.
Assigned to Will Robertson by Will Robertson 30/08/2008 3:59 PM
Edited by Will Robertson 5/09/2008 2:55 AM
Told BNB but not sure if she was already aware of the problem.

Revisit \DeclareMathOperator

amsopn does some mathcode manipulation for some analphabetic symbols to improve their appearance in math operators (\sin, \cos, etc.). All I've done for unicode-math is to fix the compilation error from that package, I haven't double-checked if there's new code I should be inserting in there to duplicate/improve what's done in 8-bit amsmath.

Colon behaviour

From plareplane:

Using unicode-math, while in math mode, both : (0x003A) and \colon
produce a colon with punctuation spacing, while ∶ (0x2236) produces a
colon with operator spacing. This leads to a situation where 0x003A
produces operator spacing without unicode-math but punctuation spacing
with unicode-math. Is this intended behavior? (Making 0x003A produce
operator spacing is probably worse, since then you don't have a
character that produces punctuation spacing.) Also, in
unicode-math.tex, ∶ (0x2236) is associated with \colon even though it
produces operator spacing; should it be associated with something that
produces operator spacing? (\vdotdot?)

Not assigning \minus ?

Due to vafa:

"I saw that it redefines the minus sign. so this time I tried something like $a\minus b$ instead $a-b$ and this time, it typesetted the minus sign in the unicode font."

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.