From ec055a5e4d5d2e54cbce278de7bc9d9640edafcd Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 19 Sep 2010 22:30:21 +0000 Subject: unicode-math 0.5b (19sep10) git-svn-id: svn://tug.org/texlive/trunk@19808 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/unicode-math/README | 8 ++ .../latex/unicode-math/unicode-math-testsuite.pdf | Bin 1930917 -> 1930933 bytes .../doc/latex/unicode-math/unicode-math.pdf | Bin 344583 -> 417808 bytes .../texmf-dist/source/latex/unicode-math/Makefile | 17 +++-- .../source/latex/unicode-math/unicode-math.dtx | 81 ++++++++++++++++----- .../tex/latex/unicode-math/unicode-math-table.tex | 6 +- .../tex/latex/unicode-math/unicode-math.sty | 39 +++++++--- 7 files changed, 112 insertions(+), 39 deletions(-) diff --git a/Master/texmf-dist/doc/latex/unicode-math/README b/Master/texmf-dist/doc/latex/unicode-math/README index 5cc36f73500..51e3f726bfa 100644 --- a/Master/texmf-dist/doc/latex/unicode-math/README +++ b/Master/texmf-dist/doc/latex/unicode-math/README @@ -138,6 +138,14 @@ changes have not affected the standard behaviour. CHANGE HISTORY -------------- +- v0.5b (2010/09/19): Tune-up + + * Added missing symbols/synonyms: + \diamond \smallint \emptyset \hbar \backepsilon \eth + * \overline works for LuaLaTeX + * Fix \slash; previously, it overwrote the text definition + * \vartriangle now has the correct math class + - v0.5a (2010/07/14): TeX Live 2010 release * Numerous documentation improvements diff --git a/Master/texmf-dist/doc/latex/unicode-math/unicode-math-testsuite.pdf b/Master/texmf-dist/doc/latex/unicode-math/unicode-math-testsuite.pdf index fce1437a304..7b064ebea80 100644 Binary files a/Master/texmf-dist/doc/latex/unicode-math/unicode-math-testsuite.pdf and b/Master/texmf-dist/doc/latex/unicode-math/unicode-math-testsuite.pdf differ diff --git a/Master/texmf-dist/doc/latex/unicode-math/unicode-math.pdf b/Master/texmf-dist/doc/latex/unicode-math/unicode-math.pdf index 2ed4201d41d..2df87e0e3f4 100644 Binary files a/Master/texmf-dist/doc/latex/unicode-math/unicode-math.pdf and b/Master/texmf-dist/doc/latex/unicode-math/unicode-math.pdf differ diff --git a/Master/texmf-dist/source/latex/unicode-math/Makefile b/Master/texmf-dist/source/latex/unicode-math/Makefile index f713a001f76..379dd680d70 100644 --- a/Master/texmf-dist/source/latex/unicode-math/Makefile +++ b/Master/texmf-dist/source/latex/unicode-math/Makefile @@ -85,7 +85,11 @@ BUILDFILES = $(BUILDSOURCE) $(BUILDSUITE) $(BUILDTESTSRC) # and this is how the TDS zip file is produced: -TDSFILES = \ +INSFILES = \ + $(tds)/tex/latex/$(PKG)/unicode-math.sty \ + $(tds)/tex/latex/$(PKG)/unicode-math-table.tex + +OTHERFILES = \ $(tds)/source/latex/$(PKG)/$(PKG).dtx \ $(tds)/source/latex/$(PKG)/$(SUITE).ltx \ $(tds)/source/latex/$(PKG)/$(SYM).ltx \ @@ -96,9 +100,8 @@ TDSFILES = \ $(tds)/doc/latex/$(PKG)/README \ $(tds)/doc/latex/$(PKG)/$(XMPL) \ $(tds)/doc/latex/$(PKG)/$(SYM).pdf \ - $(tds)/tex/latex/$(PKG)/unicode-math.sty \ - $(tds)/tex/latex/$(PKG)/unicode-math-table.tex +TDSFILES = $(INSFILES) $(OTHERFILES) #### BASICS #### @@ -194,19 +197,19 @@ $(tds)/source/latex/$(PKG)/$(testdir): TEXMFHOME=$(shell kpsewhich --var-value TEXMFHOME) TEXMFLOCAL=$(shell kpsewhich --var-value TEXMFLOCAL) -install: $(TDSFILES) +install: $(INSFILES) if test -n "$(TEXMFHOME)" ; then \ echo "Installing in '$(TEXMFHOME)'."; \ - $(COPY) $(tds)/ $(TEXMFHOME); \ + $(COPY) $(tds)/* $(TEXMFHOME); \ else \ echo "Cannot locate your home texmf tree. Specify manually with\n\n make install TEXMFHOME=/path/to/texmf\n" ; \ false ; \ fi ; -install-sys: $(TDSFILES) +install-sys: $(INSFILES) if test -n "$(TEXMFLOCAL)" ; then \ echo "Installing in '$(TEXMFLOCAL)'."; \ - $(COPY) $(tds)/ $(TEXMFLOCAL); \ + $(COPY) $(tds)/* $(TEXMFLOCAL); \ else \ echo "Cannot locate your system-wide local texmf tree. Specify manually with\n\n make install TEXMFLOCAL=/path/to/texmf\n" ; \ false ; \ diff --git a/Master/texmf-dist/source/latex/unicode-math/unicode-math.dtx b/Master/texmf-dist/source/latex/unicode-math/unicode-math.dtx index fe8cdb34302..ceaca6ea596 100644 --- a/Master/texmf-dist/source/latex/unicode-math/unicode-math.dtx +++ b/Master/texmf-dist/source/latex/unicode-math/unicode-math.dtx @@ -31,7 +31,7 @@ This work is "author-maintained" by Will Robertson. % %\ProvidesPackage{unicode-math} %<*preamble> - [2010/07/14 v0.5a Unicode maths in XeLaTeX] + [2010/09/19 v0.5b Unicode maths in XeLaTeX and LuaLaTeX] % %<*internal> \documentclass{ltxdoc} @@ -131,9 +131,22 @@ This work is "author-maintained" by Will Robertson. % \begin{verbatim} % \usepackage{amsmath} % if desired % \usepackage{unicode-math} -% \setmathfont{Cambria Math} +% \setmathfont{Asana-Math.otf} +% \end{verbatim} +% \end{quote} +% +% Two OpenType maths fonts are included by default in \TeX\ Live 2010: +% Asana Math and XITS Math. These can be loaded directly with their filename +% with both \XeLaTeX\ and \LuaLaTeX; resp., +% \begin{quote} +% \begin{verbatim} +% \setmathfont{Asana-Math.otf} +% \setmathfont{xits-math.otf} % \end{verbatim} % \end{quote} +% Other OpenType maths fonts may be loaded in the usual way; please see the +% \pkg{fontspec} documentation for more information. +% % % \subsection{Package options} % Package options may be set when the package as loaded or at any later @@ -2090,7 +2103,7 @@ This work is "author-maintained" by Will Robertson. \group_begin: \char_make_active:n {#3} \char_gmake_mathactive:n {#3} - \um@scanactivedef #3 \@nil { \csname\cs_to_str:N #2 _sym\endcsname } + \um_active_char_set:wc #3 \q_nil { \cs_to_str:N #2 _sym } \group_end: \um_set_mathchar:cNnn {\cs_to_str:N #2 op} \mathop {#1} {#3} \cs_gset:cpx { \cs_to_str:N #2 _sym } { @@ -4167,8 +4180,8 @@ This work is "author-maintained" by Will Robertson. % Here we define every Unicode math codepoint an equivalent macro name. % The two are equivalent, in a |\let\xyz=^^^^1234| kind of way. % -% \begin{macro}{\um@scancharlet} -% \begin{macro}{\um@scanactivedef} +% \begin{macro}{\um_cs_set_eq_active_char:Nw} +% \begin{macro}{\um_active_char_set:wc} % We need to do some trickery to transform the |\_um_sym:nnn| argument % |"ABCDEF| into the \XeTeX\ `caret input' form |^^^^^abcdef|. It is \emph{very important} % that the argument has five characters. Otherwise we need to change the number of |^| chars. @@ -4179,7 +4192,7 @@ This work is "author-maintained" by Will Robertson. % \begin{macrocode} \begingroup \char_make_other:N \^ - \cs_gset:Npn \um@scancharlet#1="#2\@nil { + \cs_gset:Npn \um_cs_set_eq_active_char:Nw #1 = "#2 \q_nil { \lowercase{ \tl_rescan:nn { \char_make_other:N \{ @@ -4193,15 +4206,19 @@ This work is "author-maintained" by Will Robertson. } } % \end{macrocode} -% Making |^| the right catcode isn't strictly necessary right now but it helps to future proof us with, e.g., breqn. +% Making |^| the right catcode isn't strictly necessary right now but it helps +% to future proof us with, e.g., breqn. +% Because we're inside a |\tl_rescan:nn|, use plain old \TeX\ syntax to avoid +% any catcode problems. % \begin{macrocode} - \gdef\um@scanactivedef"#1\@nil#2{ - \lowercase{ - \tl_rescan:nn{ - \ExplSyntaxOn - \char_make_math_superscript:N\^ + \cs_gnew:Npn \um_active_char_set:wc "#1 \q_nil #2 { + \lowercase { + \tl_rescan:nn { + \catcode`\_=11\relax + \catcode`\:=11\relax + \catcode`\^=7\relax }{ - \global\def^^^^^#1{#2} + \protected\gdef^^^^^#1{\csname #2\endcsname}% } } } @@ -4210,7 +4227,7 @@ This work is "author-maintained" by Will Robertson. % \end{macro} % \end{macro} % -% Now give \cmd\_um_sym:nnn\ a definition in terms of \cmd\um@scancharlet\ +% Now give \cmd\_um_sym:nnn\ a definition in terms of \cmd\um_cs_set_eq_active_char:Nw\ % and we're good to go. % % Ensure catcodes are appropriate; @@ -4225,7 +4242,7 @@ This work is "author-maintained" by Will Robertson. \cs_if_eq_p:NN #3 \mathclose || \cs_if_eq_p:NN #3 \mathover || \cs_if_eq_p:NN #3 \mathunder } { - \um@scancharlet#2=#1\@nil\ignorespaces + \um_cs_set_eq_active_char:Nw #2 = #1 \q_nil \ignorespaces } } \char_make_other:N \# @@ -4523,7 +4540,7 @@ This work is "author-maintained" by Will Robertson. % Redefine this macro for \LuaTeX, which provides us a nice primitive to use. % \begin{macrocode} \luatex_if_engine:T { - \DeclareDocumentCommand \sqrt { O{} m } { + \RenewDocumentCommand \sqrt { O{} m } { \luatexUroot \l_um_radical_sqrt_tl {#1} {#2} } \cs_set:Npn \root #1 \of #2 { @@ -4768,7 +4785,8 @@ This work is "author-maintained" by Will Robertson. \char_make_active:N #1 \char_gmake_mathactive:N #1 \tl_rescan:nn { - \ExplSyntaxOn + \catcode`\_=11\relax + \catcode`\:=11\relax }{ \cs_gset:Npx #1 { \bool_if:NTF \l_um_smallfrac_bool {\exp_not:N\tfrac} {\exp_not:N\frac} @@ -4822,6 +4840,21 @@ This work is "author-maintained" by Will Robertson. \def\bullet{\smblkcircle} \def\mathyen{\yen} \def\mathsterling{\sterling} +\def\diamond{\smwhtdiamond} +\def\emptyset{\varnothing} +\def\hbar{\hslash} +% \end{macrocode} +% These are somewhat odd: (and their usual Unicode uprightness does not match their amssymb glyphs) +% \begin{macrocode} +\def\backepsilon{\upbackepsilon} +\def\eth{\matheth} +% \end{macrocode} +% +% Due to the magic of OpenType math, big operators are automatically +% enlarged when necessary. Since there isn't a separate unicode glyph for +% `small integral', I'm not sure if there is a better way to do this: +% \begin{macrocode} +\def\smallint{{\textstyle\int}\limits} % \end{macrocode} % % \begin{macro}{\colon} @@ -4846,6 +4879,13 @@ This work is "author-maintained" by Will Robertson. % \end{macrocode} % \end{macro} % +% \verb|\overline| is a \LuaTeX\ primitive: +% \begin{macrocode} +\luatex_if_engine:T { + \cs_set:Npn \overline {\pdfprimitive\overline} +} +% \end{macrocode} +% % \begin{macro}{\digamma} % \begin{macro}{\Digamma} % I might end up just changing these in the table. @@ -4961,6 +5001,13 @@ This work is "author-maintained" by Will Robertson. } % \end{macrocode} % +% \begin{macrocode} +\cs_set_eq:NN \um_text_slash: \slash +\cs_set:Npn \slash { + \mode_if_math:TF {\mathslash} {\um_text_slash:} +} +% \end{macrocode} +% % \paragraph{\pkg{beamer}} % At end of the package so the warnings are defined. % \begin{macrocode} diff --git a/Master/texmf-dist/tex/latex/unicode-math/unicode-math-table.tex b/Master/texmf-dist/tex/latex/unicode-math/unicode-math-table.tex index d91f7706c53..9f2f6c75cd5 100644 --- a/Master/texmf-dist/tex/latex/unicode-math/unicode-math-table.tex +++ b/Master/texmf-dist/tex/latex/unicode-math/unicode-math-table.tex @@ -8,7 +8,7 @@ \UnicodeMathSymbol{"0002B}{\plus }{\mathbin}{plus sign b:}% \UnicodeMathSymbol{"0002C}{\comma }{\mathpunct}{comma}% \UnicodeMathSymbol{"0002E}{\period }{\mathalpha}{full stop, period}% -\UnicodeMathSymbol{"0002F}{\slash }{\mathord}{solidus}% +\UnicodeMathSymbol{"0002F}{\mathslash }{\mathord}{solidus}% \UnicodeMathSymbol{"0003A}{\mathcolon }{\mathpunct}{colon}% \UnicodeMathSymbol{"0003B}{\semicolon }{\mathpunct}{semicolon p:}% \UnicodeMathSymbol{"0003C}{\less }{\mathrel}{less-than sign r:}% @@ -28,6 +28,7 @@ \UnicodeMathSymbol{"000B1}{\pm }{\mathbin}{plus-or-minus sign}% \UnicodeMathSymbol{"000B7}{\cdotp }{\mathbin}{/centerdot b: middle dot}% \UnicodeMathSymbol{"000D7}{\times }{\mathbin}{multiply sign}% +\UnicodeMathSymbol{"000F0}{\matheth }{\mathalpha}{eth}% \UnicodeMathSymbol{"000F7}{\div }{\mathbin}{divide sign}% \UnicodeMathSymbol{"001B5}{\Zbar }{\mathord}{impedance (latin capital letter z with stroke)}% \UnicodeMathSymbol{"00300}{\grave }{\mathaccent}{grave accent}% @@ -134,7 +135,6 @@ \UnicodeMathSymbol{"02037}{\backtrprime }{\mathord}{triple reverse prime, not superscripted}% \UnicodeMathSymbol{"02038}{\caretinsert }{\mathord}{caret (insertion mark)}% \UnicodeMathSymbol{"0203C}{\Exclam }{\mathord}{double exclamation mark}% -\UnicodeMathSymbol{"0203E}{\overline }{\mathord}{overline}% \UnicodeMathSymbol{"02040}{\tieconcat }{\mathbin}{character tie, z notation sequence concatenation}% \UnicodeMathSymbol{"02043}{\hyphenbullet }{\mathord}{rectangle, filled (hyphen bullet)}% \UnicodeMathSymbol{"02044}{\fracslash }{\mathbin}{fraction slash}% @@ -679,7 +679,7 @@ \UnicodeMathSymbol{"025B2}{\bigblacktriangleup }{\mathord}{ 0x25b2 6 6d black up-pointing triangle}% \UnicodeMathSymbol{"025B3}{\bigtriangleup }{\mathbin}{big up triangle, open}% \UnicodeMathSymbol{"025B4}{\blacktriangle }{\mathord}{up triangle, filled}% -\UnicodeMathSymbol{"025B5}{\vartriangle }{\mathord}{/triangle - up triangle, open}% +\UnicodeMathSymbol{"025B5}{\vartriangle }{\mathrel}{/triangle - up triangle, open}% \UnicodeMathSymbol{"025B6}{\blacktriangleright }{\mathord}{(large) right triangle, filled}% \UnicodeMathSymbol{"025B7}{\triangleright }{\mathbin}{(large) right triangle, open; z notation range restriction}% \UnicodeMathSymbol{"025B8}{\smallblacktriangleright }{\mathord}{right triangle, filled}% diff --git a/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty b/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty index dc8c72ececc..795c8fcc246 100644 --- a/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty +++ b/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty @@ -15,7 +15,7 @@ %% %% This work is "author-maintained" by Will Robertson. \ProvidesPackage{unicode-math} - [2010/07/14 v0.5a Unicode maths in XeLaTeX] + [2010/09/19 v0.5b Unicode maths in XeLaTeX and LuaLaTeX] \usepackage{ifxetex,ifluatex} \ifxetex\else\ifluatex\else \PackageError{unicode-math}{% @@ -820,7 +820,7 @@ \group_begin: \char_make_active:n {#3} \char_gmake_mathactive:n {#3} - \um@scanactivedef #3 \@nil { \csname\cs_to_str:N #2 _sym\endcsname } + \um_active_char_set:wc #3 \q_nil { \cs_to_str:N #2 _sym } \group_end: \um_set_mathchar:cNnn {\cs_to_str:N #2 op} \mathop {#1} {#3} \cs_gset:cpx { \cs_to_str:N #2 _sym } { @@ -2102,7 +2102,7 @@ \cs_new:Npn \um_input_math_symbol_table: {\g_um_mathtable_tl} \begingroup \char_make_other:N \^ - \cs_gset:Npn \um@scancharlet#1="#2\@nil { + \cs_gset:Npn \um_cs_set_eq_active_char:Nw #1 = "#2 \q_nil { \lowercase{ \tl_rescan:nn { \char_make_other:N \{ @@ -2115,13 +2115,14 @@ } } } - \gdef\um@scanactivedef"#1\@nil#2{ - \lowercase{ - \tl_rescan:nn{ - \ExplSyntaxOn - \char_make_math_superscript:N\^ + \cs_gnew:Npn \um_active_char_set:wc "#1 \q_nil #2 { + \lowercase { + \tl_rescan:nn { + \catcode`\_=11\relax + \catcode`\:=11\relax + \catcode`\^=7\relax }{ - \global\def^^^^^#1{#2} + \protected\gdef^^^^^#1{\csname #2\endcsname}% } } } @@ -2135,7 +2136,7 @@ \cs_if_eq_p:NN #3 \mathclose || \cs_if_eq_p:NN #3 \mathover || \cs_if_eq_p:NN #3 \mathunder } { - \um@scancharlet#2=#1\@nil\ignorespaces + \um_cs_set_eq_active_char:Nw #2 = #1 \q_nil \ignorespaces } } \char_make_other:N \# @@ -2348,7 +2349,7 @@ } \group_end: \luatex_if_engine:T { - \DeclareDocumentCommand \sqrt { O{} m } { + \RenewDocumentCommand \sqrt { O{} m } { \luatexUroot \l_um_radical_sqrt_tl {#1} {#2} } \cs_set:Npn \root #1 \of #2 { @@ -2496,7 +2497,8 @@ \char_make_active:N #1 \char_gmake_mathactive:N #1 \tl_rescan:nn { - \ExplSyntaxOn + \catcode`\_=11\relax + \catcode`\:=11\relax }{ \cs_gset:Npx #1 { \bool_if:NTF \l_um_smallfrac_bool {\exp_not:N\tfrac} {\exp_not:N\frac} @@ -2539,6 +2541,12 @@ \def\bullet{\smblkcircle} \def\mathyen{\yen} \def\mathsterling{\sterling} +\def\diamond{\smwhtdiamond} +\def\emptyset{\varnothing} +\def\hbar{\hslash} +\def\backepsilon{\upbackepsilon} +\def\eth{\matheth} +\def\smallint{{\textstyle\int}\limits} \@ifpackageloaded{amsmath}{ % define their own colon, perhaps I should just steal it. (It does look much better.) }{ @@ -2548,6 +2556,9 @@ } \def\mathrm{\mathup} \let\mathfence\mathord +\luatex_if_engine:T { + \cs_set:Npn \overline {\pdfprimitive\overline} +} \def\digamma{\updigamma} \def\Digamma{\upDigamma} \def\operator@font{\um_switchto_mathup:} @@ -2601,6 +2612,10 @@ \def\widehat{\hat} \def\widetilde{\tilde} } +\cs_set_eq:NN \um_text_slash: \slash +\cs_set:Npn \slash { + \mode_if_math:TF {\mathslash} {\um_text_slash:} +} \AtEndOfPackage{ \@ifclassloaded{beamer}{ \ifbeamer@suppressreplacements\else -- cgit v1.2.3