summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/skeyval/skeyval-view.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-05-16 22:30:01 +0000
committerKarl Berry <karl@freefriends.org>2013-05-16 22:30:01 +0000
commit318d628c7989d4f9ede20b1ee66471bedf447437 (patch)
treee552e9f9b6195d98f3d579088419fdce722df49c /Master/texmf-dist/tex/latex/skeyval/skeyval-view.sty
parentf297f05f92068bd7f54e8ee25ce7b8b8a83c2353 (diff)
skeyval (16may13)
git-svn-id: svn://tug.org/texlive/trunk@30509 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/skeyval/skeyval-view.sty')
-rw-r--r--Master/texmf-dist/tex/latex/skeyval/skeyval-view.sty202
1 files changed, 131 insertions, 71 deletions
diff --git a/Master/texmf-dist/tex/latex/skeyval/skeyval-view.sty b/Master/texmf-dist/tex/latex/skeyval/skeyval-view.sty
index 4996acf58b3..a09335b6b03 100644
--- a/Master/texmf-dist/tex/latex/skeyval/skeyval-view.sty
+++ b/Master/texmf-dist/tex/latex/skeyval/skeyval-view.sty
@@ -1,5 +1,5 @@
%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%
-% This is file 'skeyval-view.sty', version 1.2, 2013/02/10. %
+% This is file 'skeyval-view.sty', version 1.3, 2013/05/15. %
% %
% This package and accompanying files may be distributed and/or %
% modified under the conditions of the LaTeX Project Public License, %
@@ -18,10 +18,11 @@
% The following files constitute the skeyval bundle and must be %
% distributed as a whole: %
% %
-% readme, skeyval.sty, skeyval-core.tex, skeyval-for.tex, %
+% README, skeyval.sty, skeyval-core.tex, skeyval-for.tex, %
% skeyval-view.sty, skeyval-ltxpatch.sty, skeyval-ltxcmds.tex, %
% skeyval-pstkey.sty, skeyval-pstkey.tex, skeyval-testclass.cls, %
-% and skeyval-testpkg.sty. %
+% skeyval-testpkg.sty, skeyval-pokayoke1, skeyval-pokayoke2, %
+% skeyval-view-pokayoke1. %
% %
% Copyright (c) 2010-2013 Ahmed Musa (amusa22@gmail.com). %
%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%
@@ -69,12 +70,12 @@
\NeedsTeXFormat{LaTeX2e}[2011/06/27]
\ProvidesPackage{skeyval-view}
- [2013/02/10 v1.2 Viewer utility for skeyval package (AM)]
+ [2013/05/15 v1.3 Viewer utility for skeyval package (AM)]
\@ifpackageloaded{skeyval}{}{\RequirePackage{skeyval}}
\directkeys*{%
.path=SKVV/skvview,
.holder prefix=skvv@,
- .initialize keys after define,
+ .initialize keys after define=false,
.every unknown option={
\PackageWarning{skeyval-view}{Unknown option '\CurrentOption' ignored}%
},
@@ -84,13 +85,19 @@
.ord/{xcolor-options,load-xcolor-with}//
\edef\skvv@xcoloroptions{\unexpanded{#1}}
\skvstripouterbraces{1}\skvv@xcoloroptions,
+ .bool/tabulate/true
+ },
+ .execute options={
+ tabulate=true,xcolor-options=false,load-xcolor-with=false
},
- .copy class options and process options,
+ .copy class options and process options
}
+\skvnewregisters\toks{\skvv@toksa}
\AtEndOfPackage{%
- \skvdisablekeys[SKVV]{skvview}{%
- xcolor-options,load-xcolor-with
- }%
+ \let\ifskvv@tempsw\ifskvv@tabulate
+ \skvv@tabulatefalse
+ \skvdisablekeys[SKVV]{skvview}{xcolor-options,load-xcolor-with}%
+ \let\ifskvv@tabulate\ifskvv@tempsw
}
\@ifpackageloaded{longtable}{}{\RequirePackage{longtable}}
@@ -102,7 +109,7 @@
\directkeys*{
.path=SKVV/skvview,
.holder prefix=skvv@,
- .initialize after define=false,
+ .initialize keys after define=false,
.define keys={
.ord/{file,wcolsep,weol}/\@nil/
\skvcsedef{skvv@\skvcurrentkey}{\unexpanded{#1}}
@@ -115,7 +122,7 @@
\skvaftercsname\skvcsvnormalize{skvv@\skvcurrentkey}
,
.bool/{view,vlabels,wlabels}/true,
- .ord/length of default/20/\def\skvv@lod{#1},
+ .ord/length of default/20/\def\skvv@lengthofdefa{#1},
.cmd/color/black,
},
.set keys={
@@ -147,87 +154,121 @@
\skvrobustdef*\setupviewkeys{\skvsetkeys[SKVV]{skvview}}
\let\skvv@db\@empty
-\skvrobustdef*\skvv@tabulate#1#2#3{%
- \edef\skv@tempa{\detokenize{#3}}%
- \skv@getbasetoks\skvv@lod\skv@tempa\skv@ival
- \skvxaddtolist{,}\skvv@db{%
- #1=\ifx\skvcurrentprefix\@empty\else
- \skvcurrentprefix\fi=\skvcurrentfamily=#2=\skv@ival
- }%
+\skvrobustdef*\skvv@dotabulate#1#2#3{%
+ \ifskvv@tabulate
+ \begingroup
+ \edef\skv@tempa{\detokenize{#3}}%
+ \skv@getshortformofcontent\skvv@lengthofdefa\skv@tempa\skv@ival
+ \skvxaddtolist{,}\skvv@db{%
+ #1=\ifx\skvcurrentprefix\@empty\else
+ \skvcurrentprefix\fi=\skvcurrentfamily=#2=\skv@ival
+ }%
+ \skvaftergroupdef\skvv@db\endgroup
+ \fi
}
-\protected\def\skv@ordkey@a#1[#2]#3{%
- % Pointers have been stripped in \skv@ordkey.
- \skvifstrcmpTF{#2}{^skv^}{%
- \skvv@tabulate{#1}{ordinary}{[none]}%
+\protected\def\skv@ordkey@a#1#2[#3]#4{%
+ \skvifstrcmpTF{#3}{^skv^}{%
+ \skvv@dotabulate{#2}{ordinary}{[none]}%
+ }{%
+ \skv@definedefault{#2}{#3}%
+ \skvv@dotabulate{#2}{ordinary}{#3}%
+ }%
+ % Pointers on key #2 have been stripped in \skv@ordkey.
+ % The pointer '.hp' may be used to set a holder prefix for the key.
+ \skvxifinTF{\detokenize{.hp}}{\detokenize{#4}}{%
+ \def\skv@prova##1.hp##2##3\skv@ord@nil{%
+ \let\skv@gobble@or@iden\@iden
+ \edef\skv@hp{\unexpanded{##2}}%
+ \edef\skv@callback{\unexpanded{##1##3}}%
+ }%
+ \skv@prova#4\skv@ord@nil
}{%
- \skv@definedefault{#1}{#2}%
- \skvv@tabulate{#1}{ordinary}{#2}%
+ \let\skv@gobble@or@iden\@gobble
+ \edef\skv@callback{\unexpanded{#4}}%
+ }%
+ \csname skvcs#1def\endcsname{\skv@header#2.@cbk}{%
+ % This can be called in #3 access the value of ordinary key.
+ % No prefix is used here, to reduce macro name:
+ \skv@gobble@or@iden{\skvcslet{\skv@hp#2}\noexpand\skvcurrentvalue}%
+ \skvexpandonce\skv@callback
}%
- \skvcsedef{\skv@header#1.@cbk}{\unexpanded{#3}}%
}
\protected\def\skv@cmdkey#1#2[#3]#4{%
\skv@strippointersfromkey{#2}%
\skvifdefboolTF{skv@st}{%
\skv@definedefault\skvcurrentkey{#3}%
- \skvv@tabulate\skvcurrentkey{command}{#3}%
+ \skvv@dotabulate\skvcurrentkey{command}{#3}%
}{%
- \skvv@tabulate\skvcurrentkey{command}{[none]}%
+ \skvv@dotabulate\skvcurrentkey{command}{[none]}%
}%
% This is to allow the key name to be expanded before possibly zapping
% spaces in key name:
\edef\skv@prova{#1\skvcurrentkey}%
\edef\skv@prova{\expandafter\skv@zapornot\expandafter
{\expandafter\skv@zapsw\expandafter}\expandafter{\skv@prova}}%
- \skvcslet{\skv@header\skvcurrentkey.@hp}\skv@prova
- \skvcsedef{\skv@header\skvcurrentkey.@cbk}{\unexpanded{#4}}%
+ \skvcsedef{\skv@header\skvcurrentkey.@cbk}{%
+ \skvcslet{\skv@prova}\noexpand\skvcurrentvalue
+ \unexpanded{#4}%
+ }%
}
\protected\def\skv@choicekey@g{%
\skvcommaparse*\skv@currlist\skv@prova{%
\skvexpbracenext\skv@strippointersfromkey\skv@prova
\ifx\skv@default\skv@rej
- \skvv@tabulate\skvcurrentkey{choice}{[none]}%
- \else\skvafterfi
+ \skvv@dotabulate\skvcurrentkey{choice}{[none]}%
+ \else
\skvexpanded{%
- \noexpand\skvv@tabulate
+ \noexpand\skvv@dotabulate
{\skvxonce\skvcurrentkey}{choice}{\skvxonce\skv@default}%
\noexpand\skv@definedefault
{\skvxonce\skvcurrentkey}{\skvxonce\skv@default}%
}%
\fi
- \skvcsedef{\skv@header\skvcurrentkey.@hp}{\skv@hp\skvcurrentkey}%
- \skvcsedef{\skv@header\skvcurrentkey.@cbk}{\the\skv@toksa}%
+ \skvcsedef{\skv@header\skvcurrentkey.@cbk}{%
+ \skvcslet{\skv@hp\skvcurrentkey}\noexpand\skvcurrentvalue
+ \the\skv@temptoks
+ }%
}%
}
\protected\def\skv@boolkey@c#1#2#3#4{%
- % Pointers have been stripped in \skv@boolkey.
- \skvcsnewif{\skv@zapornot{\skv@zapsw}{#2}}%
- \edef\skvv@boolortog{\if\skv@typetogkey toggle\else bool\fi}%
+ \if\skv@typetogkey
+ \skvdeftog{\skv@zapornot{\skv@zapsw}{#2}}%
+ \else
+ \skvcsnewif{\skv@zapornot{\skv@zapsw}{#2}}%
+ \fi
\skvifdefboolTF{skv@st}{%
\skv@definedefault{#1}{#3}%
- \skvv@tabulate{#1}{\skvv@boolortog}{#3}%
+ \skvv@dotabulate{#1}{\if\skv@typetogkey toggle\else bool\fi}{#3}%
}{%
- \skvv@tabulate{#1}{\skvv@boolortog}{[none]}%
+ \skvv@dotabulate{#1}{\if\skv@typetogkey toggle\else bool\fi}{[none]}%
}%
\edef\skv@tempa##1##2{%
\noexpand\skv@sttrue
\ifskv@pl\noexpand\skv@pltrue\else\noexpand\skv@plfalse\fi
\skv@checkchoice[\noexpand\skv@value]{##1}{true,false}##2%
}%
- \skv@toksa\expandafter{\skv@tempa{##1}{#4}}%
- \skvcsedef{\skv@header#1.@cbk}{\the\skv@toksa}%
+ \skv@temptoks\expandafter{\skv@tempa{##1}{#4}}%
+ \skvcsedef{\skv@header#1.@cbk}{\the\skv@temptoks}%
}
-% #2: styles, #3: default, #4: callback
-\protected\def\skv@appendstyles@a#1#2[#3]#4{%
+% #2=styles, #3=default, #4=callback
+\protected\def\skv@appendslots@a#1#2[#3]#4{%
\skvcommaparse{#1}\skv@prova{%
\skvexpbracenext\skv@strippointersfromkey\skv@prova
\skvexpanded{%
\skvifstrcmpTF{#3}{^skv^}{%
- \skvv@tabulate{\skvcurrentkey}{style}{[none]}%
+ % When using \skvaddslots, signal keys will otherwise be added
+ % in the database twice (while treating prepended and appended
+ % slots).
+ \ifskv@addslots@appending\else
+ \skvv@dotabulate{\skvcurrentkey}{slot/style}{[none]}%
+ \fi
}{%
\skv@definedefault{\skvcurrentkey}{\unexpanded{#3}}%
- \skvv@tabulate{\skvcurrentkey}{style}{\unexpanded{#3}}%
+ \ifskv@addslots@appending\else
+ \skvv@dotabulate{\skvcurrentkey}{slot/style}{\unexpanded{#3}}%
+ \fi
}%
- \skv@appendstyles@b{\skvcurrentkey}\unexpanded{{#2}{#4}}%
+ \skv@appendslots@b{\skvcurrentkey}\unexpanded{{#2}{#4}}%
}%
}%
}
@@ -238,7 +279,14 @@
\do\skvv@color\do\ifskvv@view\do\ifskvv@vlabels\do\ifskvv@wlabels
}{2}
-\skvrobustdef*\skvv@skvview@a#1{%
+\skvnewdef*\skvv@@view{%
+ \ifskvv@tabulate
+ 0\ifskvv@view 0\else 1\fi
+ \else
+ 01%
+ \fi
+}
+\skvrobustdef*\skvv@skvview#1{%
\skvsetkeys[SKVV]{skvview}{#1}%
\ifx\skvv@default\@nnil\else\@onelevel@sanitize\skvv@default\fi
\ifx\skvv@columns\@nnil
@@ -246,21 +294,32 @@
\skvv@coliitrue\skvv@coliiitrue\skvv@colivtrue\skvv@colvtrue
\else
\skvsetnumber\skvv@nra\@ne
- \@expandtwoargs\skvtestifin{,prefix,}{,\skvv@columns,}%
- \ifin@\skvadvanceno\skvv@nra\@ne\skvv@coliitrue\else\skvv@coliifalse\fi
- \@expandtwoargs\skvtestifin{,family,}{,\skvv@columns,}%
- \ifin@\skvadvanceno\skvv@nra\@ne\skvv@coliiitrue\else\skvv@coliiifalse\fi
- \@expandtwoargs\skvtestifin{,type,}{,\skvv@columns,}%
- \ifin@
+ \skvxifinTF{,prefix,}{,\skvv@columns,}{%
+ \skvadvanceno\skvv@nra\@ne\skvv@coliitrue
+ }{%
+ \skvv@coliifalse
+ }%
+ \skvxifinTF{,family,}{,\skvv@columns,}{%
+ \skvadvanceno\skvv@nra\@ne\skvv@coliiitrue
+ }{%
+ \skvv@coliiifalse
+ }%
+ \skvxifinTF{,type,}{,\skvv@columns,}{%
\skvadvanceno\skvv@nra\@ne\skvv@colivtrue
- \else
- \@expandtwoargs\skvtestifin{,key type,}{,\skvv@columns,}%
- \ifin@\skvadvanceno\skvv@nra\@ne\skvv@colivtrue\else\skvv@colivfalse\fi
- \fi
- \@expandtwoargs\skvtestifin{,default,}{,\skvv@columns,}%
- \ifin@\skvadvanceno\skvv@nra\@ne\skvv@colvtrue\else\skvv@colvfalse\fi
+ }{%
+ \skvxifinTF{,key type,}{,\skvv@columns,}{%
+ \skvadvanceno\skvv@nra\@ne\skvv@colivtrue
+ }{%
+ \skvv@colivfalse
+ }%
+ }%
+ \skvxifinTF{,default,}{,\skvv@columns,}{%
+ \skvadvanceno\skvv@nra\@ne\skvv@colvtrue
+ }{%
+ \skvv@colvfalse
+ }%
\fi
- \ifskvv@view
+ \if\skvv@@view
\protected@edef\skv@prova{%
\noexpand\begin{longtable}[l]{*\skvv@nra l}%
\\\noexpand\hline
@@ -285,35 +344,37 @@
\\\noexpand\endfoot\noexpand\hline
\noexpand\endlastfoot
}%
- \skv@toksa\expandafter{\skv@prova}%
+ \skvv@toksa\expandafter{\skv@prova}%
+ \fi
+ \ifx\skvv@file\@nnil\else
+ \immediate\openout\skvv@out\skvv@file
\fi
- \ifx\skvv@file\@nnil\else\immediate\openout\skvv@out\skvv@file\fi
\skvcommaloop*\skvv@db\skv@prova{%
\skv@swatrue
- \expandafter\skvv@skvview@b\skv@prova\skv@nil
+ \expandafter\skvv@skvview@a\skv@prova\skv@nil
}%
- \ifskvv@view
- \addto@hook\skv@toksa{\end{longtable}}%
+ \if\skvv@@view
+ \skvaddtotoks\skvv@toksa{\end{longtable}}%
\begingroup
\color{\skvv@color}%
- \ttfamily\the\skv@toksa
+ \ttfamily\the\skvv@toksa
\endgroup
\fi
\ifx\skvv@file\@nnil\else\immediate\closeout\skvv@out\fi
}
-\skvnewdef*\skvv@skvview@b#1=#2=#3=#4=#5\skv@nil{%
+\skvnewdef*\skvv@skvview@a#1=#2=#3=#4=#5\skv@nil{%
\skvv@ifin{#2}\skvv@prefix
\skvv@ifin{#3}\skvv@family
\skvv@ifin{#4}\skvv@type
\skvv@ifin{#5}\skvv@default
\ifskv@swa
- \ifskvv@view
+ \if\skvv@@view
\edef\skv@prova{%
#1\ifskvv@colii&#2\fi\ifskvv@coliii&#3\fi
\ifskvv@coliv&#4\fi\ifskvv@colv&#5\fi
\ifskvv@vlabels\noexpand\label{#2/#3/#1}\fi
}%
- \skv@toksa\expandafter{\the\expandafter\skv@toksa\skv@prova\\}%
+ \skvoaddtotoks\skvv@toksa{\skv@prova\\}%
\fi
\ifx\skvv@file\@nnil\else
\immediate\write\skvv@out{%
@@ -332,7 +393,6 @@
\skvxifinTF{,\detokenize{#1},}{,\skvoxdetok{#2},}{}\skv@swafalse
\fi
}
-
\directkeys*{
.path=SKVV/skvvshow,
.holder prefix=skvvs@,
@@ -344,7 +404,7 @@
\skvstripouterbraces{2}\skvvs@show
\ifx\skvvs@show\@empty\else\skvafterfi
\skvpushstate\skvv@state\skvv@depth
- \skvexpbracenext\skvv@skvview@a\skvvs@show
+ \skvexpbracenext\skvv@skvview\skvvs@show
\skvpopstate\skvv@state\skvv@depth
\fi
},