summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/luatex/lutabulartools/lutabulartools.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/luatex/lutabulartools/lutabulartools.sty')
-rw-r--r--Master/texmf-dist/tex/luatex/lutabulartools/lutabulartools.sty63
1 files changed, 37 insertions, 26 deletions
diff --git a/Master/texmf-dist/tex/luatex/lutabulartools/lutabulartools.sty b/Master/texmf-dist/tex/luatex/lutabulartools/lutabulartools.sty
index 1d2522b099d..4ca37525780 100644
--- a/Master/texmf-dist/tex/luatex/lutabulartools/lutabulartools.sty
+++ b/Master/texmf-dist/tex/luatex/lutabulartools/lutabulartools.sty
@@ -1,5 +1,5 @@
% Kale Ewasiuk (kalekje@gmail.com)
-% 2022-11-27
+% 2022-11-29
% Copyright (C) 2021-2022 Kale Ewasiuk
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -23,7 +23,7 @@
% OR OTHER DEALINGS IN THE SOFTWARE.
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lutabulartools}[2022-11-27]
+\ProvidesPackage{lutabulartools}[2022-11-29]
\RequirePackage{booktabs}
\RequirePackage{multirow}
@@ -39,6 +39,7 @@
\newcommand{\lttdebugON}{\luadirect{lutabt.debug = true}}
\newcommand{\lttdebugOFF}{\luadirect{lutabt.debug = true}}
+\newcommand{\lttdebugprt}{\luadirect{__lutabt__debugprtall()}}
\newcolumntype{\lttltrim}{}
\newcolumntype{\lttrtrim}{}
@@ -46,15 +47,38 @@
%%% midrule every X rows
-\def\midruleX{\aftergroup\aftergroup\aftergroup\midruleX@aux}
-\def\midruleX@aux{\luadirect{lutabt.mrX.midruleX('')}} % todo argument for vadjust or noalign??
-\NewDocumentCommand{\setmidruleX}{s O{N} m}{%
+% NO LONGER NEEDED %%% this was used for @{\midruleX} in colspec, but I made a better way
+%\def\midruleX{\aftergroup\aftergroup\aftergroup\midruleX@aux}
+%\def\midruleX@aux{\luadirect{lutabt.mrX.midruleX('')}} %
+%%%
+
+\NewDocumentCommand{\midruleX}{s O{N} m}{%
\MakeluastringCommands[N]{#2}%
\luadirect{lutabt.mrX.set_midruleX(\plluastringA{#3}, \luastring{#1})}%
}
-\NewDocumentCommand{\midruleXreset}{O{0}}{\luadirect{lutabt.mrX.cntr = tonumber(\luastring{#1})}}
-\NewCommandCopy\resetmidruleX\midruleXreset
+\NewDocumentCommand{\resetmidruleX}{O{0}}{\luadirect{lutabt.mrX.reset_midruleX(\luastring{#1})}}
+
+
+\NewDocumentCommand{\settabular}{s m}{\luadirect{lutabt.set_tabular(\luastring{#2})}} %
+
+\def\ltt@resetrownum{\luadirect{lutabt.reset_rows()}}
+\def\ltt@resetrownumhard{\luadirect{lutabt.row_num = 0}}
+\def\ltt@autotoprule{\luadirect{lutabt.process_auto_topbot_rule('top')}}
+\def\ltt@autobotrule{\luadirect{lutabt.process_auto_topbot_rule('bottom')}}
+\def\ltt@storeautotbandfalse{\luadirect{
+ lutabt.auto_topbot_old = lutabt.auto_topbot
+ lutabt.auto_topbot = false}}
+\def\ltt@restoreautotb{\luadirect{lutabt.auto_topbot = lutabt.auto_topbot_old}}
+\def\ltt@inctablelevel{\luadirect{lutabt.tablelevel = lutabt.tablelevel + 1}}
+\def\ltt@dectablelevel{\luadirect{lutabt.tablelevel = lutabt.tablelevel - 1}}
+\def\ltt@midruleXoff{\luadirect{lutabt.mrX.off()}}
+\def\ltt@actlevelreset{\luadirect{lutabt.actlvl = 1}}
+
+\apptocmd{\@arraycr}{\luadirect{lutabt.process_auto_rules()}}{}{}
+
+
+\NewDocumentCommand{\midrulesat}{m}{\luadirect{lutabt.add_auto_midrules(\luastring{#1})}}
%%%%
@@ -138,16 +162,11 @@
-\NewDocumentCommand{\midrulesat}{m}{\luadirect{lutabt.add_auto_midrules(\luastring{#1})}}
+\apptocmd{\LTXtable}{\ltt@actlevelreset\ltt@resetrownumhard\luadirect{lutabt.tablelevel=0}}{}{}
-\NewDocumentCommand{\settabular}{s m}{\luadirect{lutabt.set_tabular(\luastring{#2})}} % make kv interface for auto
-
-\def\ltt@resetrownum{\luadirect{lutabt.reset_rows()}}
-\def\ltt@autotoprule{\luadirect{lutabt.process_auto_topbot_rule('top')}}
-\def\ltt@autobotrule{\luadirect{lutabt.process_auto_topbot_rule('bottom')}}
\let\oldtabular\tabular
\let\oldendtabular\endtabular
@@ -155,9 +174,7 @@
\luadirect{lutabt.set_col_spec(\luastringN{#2})}%
\oldtabular[#1]{\lttltrim#2\lttrtrim}\ltt@inctablelevel\ltt@resetrownum\ltt@autotoprule%
}
-\def\endtabular{\ltt@autobotrule\ltt@dectablelevel\oldendtabular}
-
-
+\def\endtabular{\ltt@autobotrule\ltt@midruleXoff\ltt@dectablelevel\oldendtabular}
\expandafter\let\expandafter\oldtabulars\csname tabular*\endcsname
@@ -166,27 +183,21 @@
\luadirect{lutabt.set_col_spec(\luastringN{#3})}%
\begin{oldtabulars}{#1}[#2]{\lttltrim#3\lttrtrim}\ltt@inctablelevel\ltt@resetrownum\ltt@autotoprule%
}{%
- \ltt@autobotrule\ltt@dectablelevel\end{oldtabulars}%
+ \ltt@autobotrule\ltt@midruleXoff\ltt@dectablelevel\end{oldtabulars}%
}
%%% NOTE tabularx uses tabular*, NO NEED TO CHANGE TABULARX!
+
\let\oldlongtable\longtable
\RenewExpandableDocumentCommand{\longtable}{ O{l} m }{%
- \luadirect{lutabt.auto_topbot_old = lutabt.auto_topbot
- lutabt.auto_topbot = false}%
+ \ltt@storeautotbandfalse%
\luadirect{lutabt.set_col_spec(\luastringN{#2})}%
\oldlongtable[#1]{\lttltrim#2\lttrtrim}\ltt@inctablelevel\ltt@resetrownum%
}
\let\oldendlongtable\endlongtable
-\def\endlongtable{\luadirect{lutabt.auto_topbot = lutabt.auto_topbot_old}
- \ltt@dectablelevel\oldendlongtable}% restore status of auto topbot rule
-
-\apptocmd{\@arraycr}{\luadirect{lutabt.process_auto_rules()}}{}{}
+\def\endlongtable{\ltt@restoreautotb\ltt@midruleXoff\ltt@dectablelevel\oldendlongtable}% restore status of auto topbot rule
-\def\ltt@inctablelevel{\luadirect{lutabt.tablelevel = lutabt.tablelevel + 1}}
-\def\ltt@dectablelevel{\luadirect{lutabt.tablelevel = lutabt.tablelevel - 1}}
-
%s0,spec,mcspec,pre,content
% Magic Cell
\NewExpandableDocumentCommand{\MC}{ s O{} O{} D<>{} D(){x} m }{%