summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/jslectureplanner/jsmembertable.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/jslectureplanner/jsmembertable.sty')
-rw-r--r--macros/latex/contrib/jslectureplanner/jsmembertable.sty47
1 files changed, 26 insertions, 21 deletions
diff --git a/macros/latex/contrib/jslectureplanner/jsmembertable.sty b/macros/latex/contrib/jslectureplanner/jsmembertable.sty
index a371a492a5..0c8c1ee2bb 100644
--- a/macros/latex/contrib/jslectureplanner/jsmembertable.sty
+++ b/macros/latex/contrib/jslectureplanner/jsmembertable.sty
@@ -24,8 +24,8 @@
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\filedate{2020/12/08}
-\def\fileversion{1.12}
+\def\filedate{2024/03/06}
+\def\fileversion{1.13}
\def\filename{jsmembertable.sty}
\NeedsTeXFormat{LaTeX2e}
@@ -41,32 +41,35 @@
\RequirePackage{array}
\RequirePackage{longtable}
\RequirePackage{hhline}
-\RequirePackage{xkeyval}
%
% PACKAGE OPTIONS
%
-\newif\if@datatool\@datatoolfalse
-\def\jsmt@datafile{}
-\define@key{mem}{datafile}{%
- \def\jsmt@datafile{#1.csv}
- \@datatooltrue
-}
-\DeclareOptionX{datafile}{\setkeys{mem}{datafile=#1}}
+\newif\if@jsmt@datatool\@jsmt@datatoolfalse
\def\jsmt@datakeys{pname,sname,mid,email}
-\define@key{mem}{datakeys}{%
- \def\jsmt@datakeys{#1}
+
+\DeclareKeys[jsmt]
+{
+ % datafile=filename
+ datafile.code = {
+ \def\jsmt@datafile{#1.csv}
+ \@jsmt@datatooltrue
+ },
+ datafile.usage = load,
+ % datakeys={<keyorder>}
+ datakeys.store = \jsmt@datakeys,
+ datakeys.usage = load
}
-\DeclareOptionX{datakeys}{\setkeys{mem}{datakeys={#1}}}
-\ProcessOptionsX
+
+\ProcessKeyOptions[jsmt]
%
% OPT-IN PACKAGES
%
% Load datatool if necessary
-\if@datatool
+\if@jsmt@datatool
\RequirePackage{datatool}
\DTLloadrawdb[noheader,keys={\jsmt@datakeys}]{data}{\jsmt@datafile}
\dtlsort{sname,pname}{data}{\dtlicompare}
@@ -197,7 +200,7 @@
& \jsemailheader\tabularnewline
\hhline{-===}
\endhead
- \if@datatool
+ \if@jsmt@datatool
\DTLforeach*{data}{%
\jsmt@firstname=pname,\jsmt@surname=sname,\jsmt@mid=mid,\jsmt@email=email}{%
\DTLiffirstrow{}{\tabularnewline\hline}%
@@ -649,11 +652,12 @@
\hline
\hline
\endhead
- \if@datatool%
+ \strut
+ \if@jsmt@datatool%
\DTLforeach*{data}{%
\jsmt@firstname=pname,\jsmt@surname=sname}{%
\DTLiffirstrow{}{\tabularnewline\hline}%
- \bodyrowone{\jsmt@surname, \jsmt@firstname}%
+ \bodyrowone{\jsmt@surname, \jsmt@firstname}\strut%
}%
\tabularnewline\hline
\fi%
@@ -677,18 +681,19 @@
\resettabtoks
\loop\ifnum\thetabrow<\themembers\relax
\stepcounter{tabrow}
- \addtabtoks{\bodyrowtwo{}\tabularnewline\hline}%
+ \addtabtoks{\bodyrowtwo{}\tabularnewline\hline}\strut%
\repeat
\ltstarttwo
\headerptwo
\hline
\hline
\endhead
- \if@datatool
+ \strut
+ \if@jsmt@datatool
\DTLforeach*{data}{%
\jsmt@firstname=pname,\jsmt@surname=sname}{%
\DTLiffirstrow{}{\tabularnewline\hline}%
- \bodyrowtwo{\jsmt@surname, \jsmt@firstname}%
+ \bodyrowtwo{\jsmt@surname, \jsmt@firstname}\strut%
}%
\tabularnewline\hline
\fi%