diff options
Diffstat (limited to 'Master/texmf-dist/tex/lualatex/luamathalign/luamathalign.sty')
-rw-r--r-- | Master/texmf-dist/tex/lualatex/luamathalign/luamathalign.sty | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/lualatex/luamathalign/luamathalign.sty b/Master/texmf-dist/tex/lualatex/luamathalign/luamathalign.sty new file mode 100644 index 00000000000..6a735b40120 --- /dev/null +++ b/Master/texmf-dist/tex/lualatex/luamathalign/luamathalign.sty @@ -0,0 +1,98 @@ +%% +%% This is file `luamathalign.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% luamathalign.dtx (with options: `package') +%% +%% Copyright (C) 2019--2022 by Marcel Krueger +%% +%% 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.3 or later is part of all distributions of +%% LaTeX version 2005/12/01 or later. +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage + {luamathalign} + [2022-04-18 v0.1 additional math alignment tricks using Lua] +\directlua{require'luamathalign'} +\IfPackageLoadedTF{amsmath}{% + \@firstofone +}{% + \AddToHook{package/amsmath/after} +} +{% + \def\align@preamble{% + &\hfil + \strut@ + \setboxz@h{\@lign$\m@th\displaystyle{% + \LuaMathAlign@begin##\LuaMathAlign@end}$}% + \ifmeasuring@\savefieldlength@\fi + \set@field + \tabskip\z@skip + &\setboxz@h{\@lign$\m@th\displaystyle{{}##}$}% + \ifmeasuring@\savefieldlength@\fi + \set@field + \hfil + \tabskip\alignsep@ + } + \renewcommand{\start@aligned}[2]{% + \RIfM@\else + \nonmatherr@{\begin{\@currenvir}}% + \fi + \savecolumn@ % Assumption: called inside a group + \alignedspace@left + \if #1t\vtop \else \if#1b \vbox \else \vcenter \fi \fi \bgroup + \maxfields@#2\relax + \ifnum\maxfields@>\m@ne + \multiply\maxfields@\tw@ + \let\math@cr@@@\math@cr@@@alignedat + \alignsep@\z@skip + \else + \let\math@cr@@@\math@cr@@@aligned + \alignsep@\minalignsep + \fi + \Let@ \chardef\dspbrk@context\@ne + \default@tag + \spread@equation % no-op if already called + \global\column@\z@ + \ialign\bgroup + &\column@plus + \hfil + \strut@ + $\m@th\displaystyle{\LuaMathAlign@begin##\LuaMathAlign@end}$% + \tabskip\z@skip + &\column@plus + $\m@th\displaystyle{{}##}$% + \hfil + \tabskip\alignsep@ + \crcr + } + \edef\math@cr@@@alignedat{\LuaMathAlign@end@early + \unexpanded\expandafter{\math@cr@@@alignedat}} + \edef\math@cr{\LuaMathAlign@end@early + \unexpanded\expandafter{\math@cr}} + \edef\endaligned{\LuaMathAlign@end@early + \unexpanded\expandafter{\endaligned}} +} +\protected\def\AlignHere{\SetAlignmentPoint\m@ne} +\begingroup + \def\patch@finph@nt\setbox\tw@\null{% + \LuaMathAlign@IsolateAlignmentPoints\z@ into \tw@ + }% +\expanded{\endgroup% +\protected\def\noexpand\finph@nt{% + \unexpanded\expandafter\expandafter\expandafter{% + \expandafter\patch@finph@nt\finph@nt + }% +}} +\ExplSyntaxOff +\endinput +%% +%% End of file `luamathalign.sty'. |