summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/lualatex/luamathalign/luamathalign.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-04-19 20:10:27 +0000
committerKarl Berry <karl@freefriends.org>2022-04-19 20:10:27 +0000
commitb12479292b3e2468c564619ee6b60dbc13eeb1be (patch)
tree01f444779592389c9650c7cfecfcd301ca6198db /Master/texmf-dist/tex/lualatex/luamathalign/luamathalign.sty
parent3aef115c3b639b7f73a9866cda39c98e9bc8649c (diff)
luamathalign (19apr22)
git-svn-id: svn://tug.org/texlive/trunk@63081 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/lualatex/luamathalign/luamathalign.sty')
-rw-r--r--Master/texmf-dist/tex/lualatex/luamathalign/luamathalign.sty98
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'.