summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/keyvaltable
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-06-12 16:14:00 +0000
committerKarl Berry <karl@freefriends.org>2016-06-12 16:14:00 +0000
commit417c2c0a5d5d82e53235d9aa529a30c06acee3cb (patch)
treecd33c84056b0573773de74b29a56e868dc02bc70 /Master/texmf-dist/tex/latex/keyvaltable
parent1e614c23b2f780732ad55b4c2e06e9d757bf5465 (diff)
keyvaltable (22may16)
git-svn-id: svn://tug.org/texlive/trunk@41414 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/keyvaltable')
-rw-r--r--Master/texmf-dist/tex/latex/keyvaltable/keyvaltable.sty82
1 files changed, 54 insertions, 28 deletions
diff --git a/Master/texmf-dist/tex/latex/keyvaltable/keyvaltable.sty b/Master/texmf-dist/tex/latex/keyvaltable/keyvaltable.sty
index 7cf966e62ff..1e640fbc777 100644
--- a/Master/texmf-dist/tex/latex/keyvaltable/keyvaltable.sty
+++ b/Master/texmf-dist/tex/latex/keyvaltable/keyvaltable.sty
@@ -20,7 +20,7 @@
%%
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesPackage{keyvaltable}
- [2016/03/13 v0.1 Package for filling tables using key-value lists]
+ [2016/05/22 v0.2 Package for filling tables using key-value lists]
\RequirePackage{etoolbox}
\RequirePackage{xkeyval}
\RequirePackage[table]{xcolor}
@@ -38,8 +38,14 @@
\kvt@lazypreset{Table}{#1=##1}}%
\presetkeys[kvt]{defaults}{#1=#2}{}%
\define@cmdkey[kvt]{Table}{#1}{}%
- \presetkeys[kvt]{Table}{#1=#2}{}%
-}
+ \presetkeys[kvt]{Table}{#1=#2}{}}
+\newcommand\kvt@addchoicetableprop[3]{%
+ \define@choicekey[kvt]{defaults}{#1}{#3}{%
+ \kvt@lazypreset{Table}{#1=##1}}%
+ \presetkeys[kvt]{defaults}{#1=#2}{}%
+ \define@choicekey[kvt]{Table}{#1}{#3}%
+ {\csdef{cmdkvt@Table@#1}{##1}}%
+ \presetkeys[kvt]{Table}{#1=#2}{}}
\newcommand\kvt@addcolumnprop[2]{%
\define@key[kvt]{defaults}{#1}{%
\kvt@lazypreset{Column}{#1=##1}}%
@@ -58,6 +64,7 @@
}
\kvt@addtableprop{rowbg}{white..black!10}
\kvt@addtableprop{headbg}{black!14}
+\kvt@addchoicetableprop{shape}{multipage}{multipage,onepage}
\kvt@addcolumnprop{default}{}
\kvt@addcolumnprop{format}{\kvt@struttedcell}
\kvt@addcolumnprop{align}{l}
@@ -65,16 +72,17 @@
\kvt@addchoicecolumnprop{hidden}{false}{false,true}
\kvtSet{}
\newcommand\kvt@struttedcell[1]{\strut #1\strut}
-\newcommand\NewKeyValTable[2]{%
- \csdef{kvt@headings@#1}{}%
- \csdef{kvt@alignments@#1}{}%
- \csdef{kvt@colkeys@#1}{}%
- \csdef{kvt@rowcount@#1}{1}%
- \csdef{kvt@rows@#1}{}%
- \listadd\kvt@alltables{#1}%
+\newcommand\NewKeyValTable[3][]{%
+ \csdef{kvt@options@#2}{#1}%
+ \csdef{kvt@headings@#2}{}%
+ \csdef{kvt@alignments@#2}{}%
+ \csdef{kvt@colkeys@#2}{}%
+ \csdef{kvt@rowcount@#2}{1}%
+ \csdef{kvt@rows@#2}{}%
+ \listadd\kvt@alltables{#2}%
\def\do##1{%
- \kvt@parsecolspec{#1}##1::\@undefined}%
- \mkv@dossvlist{#2}%
+ \kvt@parsecolspec{#2}##1::\@undefined}%
+ \mkv@dossvlist{#3}%
}
\def\kvt@parsecolspec#1#2:#3:#4\@undefined{%
\def\kvt@@column{#1@#2}%
@@ -95,33 +103,54 @@
\newcounter{kvtTypeRow}
\newcounter{kvtTotalRow}
\setcounter{kvtTotalRow}{1}
+\newcommand\kvtLabel[2]{%
+ \protected@edef\@currentlabel
+ {\csname p@#1\endcsname\csname the#1\endcsname}%
+ \ifstrempty{#2}{}{\label{#2}}%
+ \csuse{the#1}}
\newenvironment{KeyValTable}[2][]{%
\bgroup%
\def\Row##1{\kvt@AddKeyValRow{#2}{##1}\kvt@@row\\}%
- \kvt@StartTable{#2}{#1}%
- }{%
- \bottomrule%
- \end{longtabu}\egroup}
+ \kvt@SetOptions{#2}{#1}%
+ \csuse{kvt@StartTable@\cmdkvt@Table@shape}{#2}%
+}{%
+ \csuse{kvt@EndTable@\cmdkvt@Table@shape}%
+ \egroup}
\AfterEndEnvironment{KeyValTable}{%
\csdef{kvt@rowcount@\kvt@@recenttable}{\thekvtTypeRow}}
-\newcommand\kvt@StartTable[2]{%
- \setkeys[kvt]{Table}{#2}%
- \gdef\kvt@@recenttable{#1}%
+\newcommand\kvt@SetOptions[2]{%
+ \bgroup\edef\kvt@@do{\egroup\noexpand%
+ \setkeys[kvt]{Table}%
+ {\csexpandonce{kvt@options@#1},\unexpanded{#2}}%
+ }\kvt@@do}
+\newcommand\kvt@StartTable@onepage[1]{%
+ \kvt@StartTabu{tabu}{#1}}
+\newcommand\kvt@StartTable@multipage[1]{%
+ \kvt@StartTabu{longtabu}{#1}}
+\newcommand\kvt@StartTabu[2]{%
+ \gdef\kvt@@recenttable{#2}%
\bgroup\edef\kvt@@do{\egroup
\noexpand\taburowcolors[2] 2{\cmdkvt@Table@rowbg}%
- \noexpand\begin{longtabu}{\csuse{kvt@alignments@#1}}%
+ \noexpand\begin{#1}{\csuse{kvt@alignments@#2}}%
\noexpand\toprule
\noexpand\rowcolor{\cmdkvt@Table@headbg}%
}\kvt@@do%
- \csuse{kvt@headings@#1}\\\midrule\endhead
+ \csuse{kvt@headings@#2}\\\midrule
+ \iftabu@long\expandafter\endhead\fi
\setcounter{kvtRow}{1}%
- \setcounter{kvtTypeRow}{\csuse{kvt@rowcount@#1}}%
+ \setcounter{kvtTypeRow}{\csuse{kvt@rowcount@#2}}%
\everyrow{%
\addtocounter{kvtRow}{1}%
\addtocounter{kvtTypeRow}{1}%
\addtocounter{kvtTotalRow}{1}%
}%
}
+\newcommand\kvt@EndTable@onepage{%
+ \bottomrule%
+ \end{tabu}}
+\newcommand\kvt@EndTable@multipage{%
+ \bottomrule%
+ \end{longtabu}}
\newcommand\kvt@AddKeyValRow[2]{%
\setkeys[KeyValTable]{#1}{#2}%
\def\do##1{%
@@ -135,12 +164,9 @@
}\dolistcsloop{kvt@colkeys@#1}%
}
\newcommand\ShowKeyValTable[2][]{%
- \bgroup
- \kvt@StartTable{#2}{#1}%
- \csuse{kvt@rows@#2}%
- \bottomrule
- \end{longtabu}%
- \egroup
+ \begin{KeyValTable}[#1]{#2}%
+ \csuse{kvt@rows@#2}%
+ \end{KeyValTable}%
\csdef{kvt@rows@#2}{}}
\newcommand\AddKeyValRow[2]{%
\bgroup%