diff options
author | Karl Berry <karl@freefriends.org> | 2011-05-06 23:29:16 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2011-05-06 23:29:16 +0000 |
commit | c12f7ff3c88e06dd8f3dd964f6c274ae97bbfbfe (patch) | |
tree | d646e8fa26dbc3d80d7f68374baddff3376a3859 /Master/texmf-dist/tex/lualatex | |
parent | e1ef22356087d81c9700f75a1fa142404cec7772 (diff) |
lualatex-math (6may11)
git-svn-id: svn://tug.org/texlive/trunk@22339 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/lualatex')
-rw-r--r-- | Master/texmf-dist/tex/lualatex/lualatex-math/lualatex-math.sty | 264 |
1 files changed, 264 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/lualatex/lualatex-math/lualatex-math.sty b/Master/texmf-dist/tex/lualatex/lualatex-math/lualatex-math.sty new file mode 100644 index 00000000000..be8cbb84f34 --- /dev/null +++ b/Master/texmf-dist/tex/lualatex/lualatex-math/lualatex-math.sty @@ -0,0 +1,264 @@ +%% +%% This is file `lualatex-math.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% lualatex-math.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% Copyright 2011 by Philipp Stephani +%% +%% This file may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3c of this license or (at your option) any later +%% version. The latest version of this license is in +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.3c or later is part of all distributions of +%% LaTeX version 2009/09/24 or later. +%% +\NeedsTeXFormat{LaTeX2e}[2009/09/24] +\RequirePackage{expl3}[2011/02/17] +\ProvidesExplPackage{lualatex-math}{2011/05/05}{0.1}% + {Patches for mathematics typesetting with LuaLaTeX} +\RequirePackage { etoolbox } [ 2007/10/08 ] +\RequirePackage { luatexbase } [ 2010/05/27 ] +\RequirePackage { filehook } [ 2011/03/09 ] +\RequireLuaModule { lualatex-math } [ 2011/05/05 ] +\cs_new_nopar:Npn \lltxmath_restore_catcode:N #1 { + \char_set_catcode:nn { \int_eval:n { `#1 } } + { \char_value_catcode:n { `#1 } } +} +\exp_args:Nx \AtEndOfPackage { + \lltxmath_restore_catcode:N \$ +} +\char_make_math_shift:N \$ +\msg_new:nnn { lualatex-math } { luatex-required } { + The~ lualatex-math~ package~ requires~ LuaTeX. \\ + I~ will~ stop~ loading~ now. +} +\msg_new:nnn { lualatex-math } { macro-expected } { + I've~ expected~ that~ #1~ is~ a~ macro,~ but~ it~ isn't. +} +\msg_new:nnn { lualatex-math } { wrong-meaning } { + I've~ expected~ #1~ to~ have~ the~ meaning \\ + #3, \\ + but~ it~ has~ the~ meaning \\ + #2. +} +\msg_new:nnn { lualatex-math } { patch-macro } { + I'm~ going~ to~ patch~ macro~ #1. +} +\luatex_if_engine:F { + \msg_error:nn { lualatex-math } { luatex-required } + \endinput +} +\chk_if_free_cs:N \lltxmath_temp:w +\cs_new_protected_nopar:Npn \lltxmath_patch:NNnnn #1 #2 #3 #4 #5 { + \cs_if_exist:NT #1 { + \token_if_macro:NTF #1 { + \group_begin: + #2 \lltxmath_temp:w #3 { #4 } + \cs_if_eq:NNTF #1 \lltxmath_temp:w { + \msg_info:nnx { lualatex-math } { patch-macro } + { \token_to_str:N #1 } + \group_end: + #2 #1 #3 { #5 } + } { + \msg_warning:nnxxx { lualatex-math } { wrong-meaning } + { \token_to_str:N #1 } { \token_to_meaning:N #1 } + { \token_to_meaning:N \lltxmath_temp:w } + \group_end: + } + } { + \msg_warning:nnx { lualatex-math } { macro-expected } + { \token_to_str:N #1 } + } + } +} +\cs_generate_variant:Nn \lltxmath_patch:NNnnn { c } +\luatexbase@ensure@primitive { Ustack } +\AtEndPreamble { + \@ifpackageloaded { amsmath } { } { + \lltxmath_patch:NNnnn \frac \cs_set_nopar:Npn { #1 #2 } { + { + \begingroup #1 \endgroup \over #2 + } + } { + { + \luatexUstack { \group_begin: #1 \group_end: \over #2 } + } + } + } +} +\luatexbase@ensure@primitive { Umathcodenum } +\luatexbase@ensure@primitive { Umathchardef } +\luatexbase@ensure@primitive { alignmark } +\luatexbase@ensure@primitive { Ustartmath } +\luatexbase@ensure@primitive { Ustopmath } +\luatexbase@ensure@primitive { Umathstacknumup } +\luatexbase@ensure@primitive { Umathstackdenomdown } +\luatexbase@ensure@primitive { Umathstackvgap } +\int_const:Nn \c_lltxmath_std_minus_mathcode_int { "2200 } +\int_const:Nn \c_lltxmath_std_equal_mathcode_int { "303D } +\cs_new_protected_nopar:Npn \lltxmath_set_mathchar:NN #1 #2 { + \luatexUmathchardef #1 + \lua_now:x { + lualatex.math.print_class_fam_slot( \int_eval:n { `#2 } ) + } + \scan_stop: +} +\cs_new_nopar:Npn \lltxmath_char_dim:NN #1 #2 { + #1 \textfont + \lua_now:x { + lualatex.math.print_fam_slot( \int_eval:n { `#2 } ) + } +} +\chk_if_free_cs:N \l_lltxmath_minus_mathchar +\chk_if_free_cs:N \l_lltxmath_equal_mathchar +\AtBeginOfPackageFile { amsmath } { + \lltxmath_set_mathchar:NN \l_lltxmath_minus_mathchar \- + \lltxmath_set_mathchar:NN \l_lltxmath_equal_mathchar \= + \char_set_mathcode:nn { `\- } { \c_lltxmath_std_minus_mathcode_int } + \char_set_mathcode:nn { `\= } { \c_lltxmath_std_equal_mathcode_int } + \AtEndOfPackageFile { amsmath } { + \cs_set_eq:NN \std@minus \l_lltxmath_minus_mathchar + \cs_set_eq:NN \std@equal \l_lltxmath_equal_mathchar + \luatexUmathcodenum `\- \l_lltxmath_minus_mathchar + \luatexUmathcodenum `\= \l_lltxmath_equal_mathchar + } +} +\AtEndOfPackageFile * { amsmath } { + \tl_replace_in:Nnn \@begindocumenthook { + \mathchardef \std@minus \mathcode `\- \relax + \mathchardef \std@equal \mathcode `\= \relax + } { + \lltxmath_set_mathchar:NN \std@minus \- + \lltxmath_set_mathchar:NN \std@equal \= + } + \lltxmath_patch:NNnnn \resetMathstrut@ \cs_set_nopar:Npn { } { + \setbox \z@ \hbox { + \mathchardef \@tempa \mathcode `\( \relax % \) + \def \@tempb ##1 "##2 ##3 { \the \textfont "##3 \char" } + \expandafter \@tempb \meaning \@tempa \relax + } + \ht \Mathstrutbox@ \ht \z@ + \dp \Mathstrutbox@ \dp \z@ + } { + \box_set_ht:Nn \Mathstrutbox@ { + \lltxmath_char_dim:NN \fontcharht \( % \) + } + \box_set_dp:Nn \Mathstrutbox@ { + \lltxmath_char_dim:NN \fontchardp \) + } + } + \lltxmath_patch:NNnnn \subarray \cs_set:Npn { #1 } { + \vcenter + \bgroup + \Let@ + \restore@math@cr + \default@tag + \baselineskip \fontdimen 10~ \scriptfont \tw@ + \advance \baselineskip \fontdimen 12~ \scriptfont \tw@ + \lineskip \thr@@ \fontdimen 8~ \scriptfont \thr@@ + \lineskiplimit \lineskip + \ialign + \bgroup + \ifx c #1 \hfil \fi + $ \m@th \scriptstyle ## $ + \hfil + \crcr + } { + \vcenter + \c_group_begin_token + \Let@ + \restore@math@cr + \default@tag + \skip_set:Nn \baselineskip { + \luatexUmathstacknumup \scriptstyle + + \luatexUmathstackdenomdown \scriptstyle + } + \lineskip \luatexUmathstackvgap \scriptstyle + \lineskiplimit \lineskip + \ialign + \c_group_begin_token + \token_if_eq_meaning:NNT c #1 { \hfil } + \luatexUstartmath + \m@th + \scriptstyle + \luatexalignmark \luatexalignmark + \luatexUstopmath + \hfil + \crcr + } + \lltxmath_patch:cNnnn { frac~ } \cs_set:Npn { #1 #2 } { + { + \begingroup #1 \endgroup \@@over #2 + } + } { + { + \luatexUstack { \group_begin: #1 \group_end: \@@over #2 } + } + } + \lltxmath_patch:NNnnn \@genfrac \cs_set_nopar:Npn { + #1 #2 #3 #4 #5 + } { + { + #1 { \begingroup #4 \endgroup #2 #3 \relax #5 } + } + } { + { + #1 { + \luatexUstack { + \group_begin: #4 \group_end: #2 #3 \scan_stop: #5 + } + } + } + } +} +\luatexbase@ensure@primitive { crampeddisplaystyle } +\luatexbase@ensure@primitive { crampedtextstyle } +\luatexbase@ensure@primitive { crampedscriptstyle } +\luatexbase@ensure@primitive { crampedscriptscriptstyle } +\AtEndOfPackageFile * { mathtools } { + \lltxmath_patch:NNnnn \MT_cramped_internal:Nn + \cs_set_nopar:Npn { #1 #2 } { + \sbox \z@ { + $ + \m@th + #1 + \nulldelimiterspace = \z@ + \radical \z@ { #2 } + $ + } + \ifx #1 \displaystyle + \dimen@ = \fontdimen 8 \textfont 3 + \advance \dimen@ .25 \fontdimen 5 \textfont 2 + \else + \dimen@ = 1.25 \fontdimen 8 + \ifx #1 \textstyle + \textfont + \else + \ifx #1 \scriptstyle + \scriptfont + \else + \scriptscriptfont + \fi + \fi + 3 + \fi + \advance \dimen@ -\ht\z@ + \ht\z@ = -\dimen@ + \box\z@ + } { + { + \use:c { luatexcramped \cs_to_str:N #1 } #2 + } + } +} +\endinput +%% +%% End of file `lualatex-math.sty'. |