summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/skeyval/doc
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/skeyval/doc
Initial commit
Diffstat (limited to 'macros/latex/contrib/skeyval/doc')
-rw-r--r--macros/latex/contrib/skeyval/doc/skeyval-pokayoke1.pdfbin0 -> 125805 bytes
-rw-r--r--macros/latex/contrib/skeyval/doc/skeyval-pokayoke1.tex597
-rw-r--r--macros/latex/contrib/skeyval/doc/skeyval-pokayoke2.pdfbin0 -> 135914 bytes
-rw-r--r--macros/latex/contrib/skeyval/doc/skeyval-pokayoke2.tex194
-rw-r--r--macros/latex/contrib/skeyval/doc/skeyval-view-pokayoke1.aux50
-rw-r--r--macros/latex/contrib/skeyval/doc/skeyval-view-pokayoke1.log540
-rw-r--r--macros/latex/contrib/skeyval/doc/skeyval-view-pokayoke1.pdfbin0 -> 108029 bytes
-rw-r--r--macros/latex/contrib/skeyval/doc/skeyval-view-pokayoke1.tex173
8 files changed, 1554 insertions, 0 deletions
diff --git a/macros/latex/contrib/skeyval/doc/skeyval-pokayoke1.pdf b/macros/latex/contrib/skeyval/doc/skeyval-pokayoke1.pdf
new file mode 100644
index 0000000000..f94e0f6eda
--- /dev/null
+++ b/macros/latex/contrib/skeyval/doc/skeyval-pokayoke1.pdf
Binary files differ
diff --git a/macros/latex/contrib/skeyval/doc/skeyval-pokayoke1.tex b/macros/latex/contrib/skeyval/doc/skeyval-pokayoke1.tex
new file mode 100644
index 0000000000..6205121ae9
--- /dev/null
+++ b/macros/latex/contrib/skeyval/doc/skeyval-pokayoke1.tex
@@ -0,0 +1,597 @@
+%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%
+% This is file 'skeyval-pokayoke1.tex', 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, %
+% either version 1.3 of this license or 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. %
+% %
+% The LPPL maintenance status of this software is 'author-maintained'. %
+% %
+% This software is provided 'as it is', without warranty of any kind, %
+% either expressed or implied, including, but not limited to, the %
+% implied warranties of merchantability and fitness for a particular %
+% purpose. %
+% %
+% The following files constitute the skeyval bundle and must be %
+% distributed as a whole: %
+% %
+% 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, %
+% skeyval-testpkg.sty, skeyval-pokayoke1, skeyval-pokayoke2, %
+% skeyval-view-pokayoke1. %
+% %
+% Copyright (c) 2010-2013 Ahmed Musa (amusa22@gmail.com). %
+%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%
+
+\makeatletter
+\RequirePackage{skeyval-ltxpatch}
+
+% With 'skeyval-ltxpatch' loaded, class options will not be zapped and
+% expandable commands can be passed as options.
+
+\documentclass[
+ text style=\ttfamily,
+ show author=true,
+ insertwatermark,
+ watermarktext={skeyval-test1\\[.25ex]Page~\thepage},
+ watermarkcolor=brown!80!yellow
+]{skeyval-testclass}
+
+\skvifpackageloadedTF{xcolor}{}{\usepackage[dvipsname]{xcolor}}
+\usepackage{lipsum}
+
+% The command \cmdalign is just for illustrating how key values
+% may be expanded at key setting time:
+\def\cmdalign{justified}
+
+\usepackage[
+ author=Albert X\"avier Einstein,
+ align=.expanded{\cmdalign},
+ show author=true,
+ unknown-option,
+]{skeyval-testpkg}
+
+%+++++++++++ Keys whose names are zapped internally ++++++++++++++%
+
+\skvzcmdkeys[KV]{fam}[mp@]{provide value,give value}[some value]{}
+\skvzboolkeys[KV]{fam}[mp@]{provide value,give value}[true]{}
+
+%++++++++++++++++++++++ Parenthesized keys +++++++++++++++++++++++%
+
+% Parenthesized keys are keys with names that have parentheses
+% The following is a key of 3 arguments. The default values are
+% \x, \y, and \numexpr\x*2 - since there are 3 arguments.
+%
+\skvpntkey[KV]{fam}{evaluate (?) as (?) using (?)}[{\x}{\y}{\numexpr\x*2}]{%
+ \def\argone{#1}\def\argtwo{#2}\def\argthree{#3}%
+ % '\detokenize{\pgfmath}' won't work here!
+ \skvxifinTF{\relax\string\pgfmath}{\relax\detokenize{#3}}{%
+ #3%
+ }{%
+ \edef#2{#3}%
+ }%
+}
+
+% The above parenthesized key can be set as follows:
+%
+\def\cmda{2}
+\skvsetkeys[KV]{fam}{%
+ evaluate (\cmda) as (\cmdb) using (\pgfmathsetmacro\cmdb{\cmda*10})
+}
+%\show\argthree
+
+\newcommand*\vgap{\endgraf\medskip}
+\def\keycval{xx}
+
+%% +++++++++++++++ Examples of using \directkeys command ++++++++++%
+
+% Note: When the value of a handler contains equality sign (=) or
+% comma (,), it should be enclosed in braces.
+
+\directkeys*{
+ .exec=\skvtestcnt\z@,
+ .prefix = KV1,
+ .family = fam1,
+ .holder prefix = mp@,
+ .add paths={KV2/fam2,KV3/fam3},
+ .ignore paths={KV2/fam2,KV3/fam3},
+ .restore paths={KV2/fam2,KV3/fam3},
+ .save initial values of keys,
+ .initialize keys after define=false,
+ .new keys = {
+ .ord/keya/{dfta,dftb}/
+ %\def\skvhp{my@}
+ \def\cmda##1{#1*##1*#2}\logsetting
+ ,
+ .arg/keya/{#1,#2},
+ % See argument of keyb below:
+ .cmd/keyb/{1cm,2cm}/
+ \edef\boxht{\the\dimexpr#1*2\relax}
+ \edef\boxwd{\the\dimexpr#2*2\relax},
+ .choice/keyc/center/{right,left,center,justified},
+ .bool/keyd/true,
+ .cmd/keye/dfte/\def\cmde##1{##1#1},
+ .cmd/keyf/dftf/\def\cmdf##1{##1#1},
+ .ord/.need value{keyg}/dftg,
+ .ord/.forbid value{keyh}/dfth,
+ },
+ .args={
+ keyb={#1,#2}
+ },
+ .set={
+ keya={val1,val2},keyb={2.5cm,5cm}
+ },
+ .get value={KV1}{fam1}{keya}\cmda,
+ .ignore keys={
+ keyd,keye
+ },
+ .set with defaults={
+ keyd,keye,keyf,keyg
+ },
+ .restore keys = keye,
+ .link={keye2/keye},
+ % Choices for keye can be declared directly:
+ .state pattern expanded={keye,keye2}/{
+ center.do=\def\curralign##1{\hfil##1\hfil},
+ right.do=\def\curralign##1{\hfill##1},
+ left.do=\def\curralign##1{##1\hfill},
+ justified.do=\let\curralign\@iden
+ },
+ .exec code={
+ \def\leftval{left}\def\rightval{right}
+ \def\rrightval{\rightval}
+ },
+ % key1 and key2 are undefined. They will be defined internally
+ % with the default values of keyc and keyd:
+ .prepend slots={
+ key1/{keyc=.expanded{\rightval}},key2/{keyd=false}
+ },
+ .append slots={
+ key1/{keye=right,keyf=valf}
+ },
+ % When key3 and key4 are set, use their expanded values to set keye:
+ .elink={
+ {key3,key4}/keye
+ },
+ .slot expand twice={
+ key5/{keyf=#1,keyg=#1}
+ },
+ .set keys={
+ key3=.expand once{\leftval},
+ key5=.expand twice{\rrightval}
+ },
+ .prepend links={
+ {key6,key7}/{keye,keyf},
+ {key8,key9}/{keye,keyg}
+ },
+ .exec code=\skvsetkeys[KV1]{fam1}{key6=center},
+ % Set keya and keyb on previously declared and the following paths.
+ % Enter known keys in \mysuccesslist. Try 14 families; stop when
+ % 12 families have been hit (ie, keys have been set in them
+ % successfully):
+ .exec code=\def\flukepaths{},
+ .search also set keys={
+ .paths={KX/famx,KV1/fam1,KV3/fam3,KV3/fam4,KV4/fam3,KV4/fam4},
+ .ignore keys={keyc},
+ .try=14,
+ .min success=10,
+ .max success=12,
+ .success list=\mysuccesslist,
+ .if any path fails={%
+ \edef\flukepaths{\skvaddlist,\flukepaths\skvcurrentpath}
+ },
+ .if hits less than goal={\skvsetkeys[KV1]{fam1}{keyc=center}},
+ .kv={keya={val1,val2},keyb={1cm,2cm},keyc}
+ },
+% .exec code={\show\mysuccesslist},
+ \directkeys*{
+ .exec=\skvtestcnt\z@\def\mysuccesslist{},
+ .paths={KUA/fam1,KUA/fam2,KUB/fam1,KUB/fam2},
+ .define ordinary keys={
+ {keya,keyb,keyc}/.na/
+ \def\y##1{#1*##1}
+ \typeout{***}\logsetting
+ \skvsetkeys[KV1]{fam1}{keyc=center}
+ ,
+ }
+ },
+ % '.try set keys' works independent of previously declared paths:
+ .try set keys={
+ .paths={
+ KUA/fam1,KUA/fam2,KUA/fam3,KUA/fam4,
+ KUB/fam1,KUB/fam2,KUB/fam3,KUB/fam4,
+ KUC/fam1,KUC/fam2,KUC/fam3,KUC/fam4
+ },
+ .try=8,
+ .upper goal=4,
+ .lower goal=2,
+ .ignore keys={keyb,keyc},
+ .success list=\mysuccesslist,
+ .kv={keya=vala,keyb=valb,keyc=valc}
+ },
+%.exec code={\show\mysuccesslist},
+}
+
+\directkeys*{
+ .exec=\skvtestcnt\z@\def\mysuccesslist{},
+ .paths={KUA/fam1,KUB/fam2},
+ .hp=mp@,
+ .ignore keys={keyd},
+ .define keys={
+ .initialize keys after define=true,
+ .save initial values of keys,
+ .exec code/\skvtestcnt\z@,
+ % keya has no default but has a complex callback:
+ .ord/keya/.na/{
+ \skvtestcnt\z@\def\mysuccesslistb{}
+ \directkeys{
+ .path={KVX/famx},
+ .search also set keys={%
+ .paths={KUA/fam1,KUA/fam2,KUB/fam1,KUB/fam2},
+ .try=8,
+ .upper goal=4,
+ .lower goal=1,
+ .success list=\mysuccesslistb,
+ .kv={keyb=valb}
+ },
+% .exec code=\show\mysuccesslistb,
+ }
+ }
+ ,
+ % No default:
+ .ord/{keyb,keyc,keyd}/.na/\def\x##1{#1*##1}\logsetting,
+ .exec code=\def\cmda#1{\if0#1\fi},
+ % No callback:
+ .choice/keye/center/{center,left,right},
+ .choice/keye2/center/{
+ center.do=\def\giv@c{#1},
+ left.do=\def\giv@l{#1},
+ right.do=\def\giv@r{#1}
+ }/.na/\@@warning{Invalid value '\detokenize{#1}' for keye2},
+ },
+ .try set keys={%
+ .paths={
+ KUA/fam1,KUA/fam2,KUA/fam3,KUA/fam4,
+ KUB/fam1,KUB/fam2,KUB/fam3,KUB/fam4
+ },
+ .try=1,
+ .upper goal=1,
+ .lower goal=1,
+ .ignore keys={keyc,keyd},
+ .success list=\mysuccesslist,
+ .kv={keya=vala,keyc=valc,keyd=vald}
+ },
+% .exec code={\show\mysuccesslist},
+ % Defining new handlers that can't be overloaded.
+ % '.resd handler' and '.resd handlers' are reserved handlers.
+ % They can be used to define new handlers (see below).
+ .new reserved handlers={
+ {.resd handler,.resd handlers}=\dirkeysdefhandlers{00}{#1},
+ },
+ .resd handlers={
+ .example handler1=\def\val{#1}, .example handler2=\edef\val{#1}
+ },
+% .exec=\skvshowcs{dirkeys@handler@.example handler1},
+}
+
+\makeatother
+
+\begin{document}
+
+\title{The \texttt{\textcolor{blue}{skeyval}} Package\\[1ex]
+ Version 1.1a\\[1ex]
+ \textsf{Test document 1}}
+\author{Ahmed Musa}
+\maketitle
+
+%%+++++++++++++++++++ Producing arbitrary texts +++++++++++++++++++++%%
+
+\noindent
+An author writing an article for publication in \textsc{TUGboat} is
+encouraged to create it on a computer file and submit it on magnetic tape.
+\par
+\hfill{\small Barbara Beeton, 1981}
+\par\bigskip
+
+\begin{\mpfalign}
+\skvxifstrcmpTF\mpfalign{justified}{\noindent}{}
+\mpftextstyle
+The printer should refuse to employ wandering men, foreigners who,
+after having committed some grievous error, can easily disappear and
+return to their own country.
+\hfill{\small Hieronymus Hornschuch (1608)}\endgraf
+\end{\mpfalign}
+
+\begingroup
+\par\bigskip
+\noindent
+If you want to find out anything from the theoretical physicists
+about the methods they use, I advise you to stick closely to
+one principle: don't listen to their words, fix your mind
+on their deeds.
+\ifmpfshowauthor
+ \nobreak
+ \quad\hskip\fill\finalhyphendemerits0\relax
+ \textcolor{red}{\mpfauthor}
+\fi
+\endgroup
+
+
+%%++++++++++++++++++++++ Shadow boxes ++++++++++++++++++++++++%%
+
+\par\bigskip
+\begin{center}
+\hrule
+\par\bigskip
+
+\newshadowbox{test 1}
+\newshadowbox[framecolor=magenta,shadecolor=cyan,shadowsize=8pt,
+ align=left]{test 2}
+\newshadowbox[shadow=false,boxwidth=1cm]{test 3}
+\newshadowbox[framesize=2pt,framecolor=red,shadowcolor=green]{test 4}
+\newshadowbox[put frame=false,shadow,shadowsize=9pt,shadecolor=yellow,
+ shadowcolor=violet!50,align=right]{test 5}
+\par\bigskip
+\hrule
+\end{center}
+
+
+%%++++++++++++++++++++++++++ Citation ++++++++++++++++++++++++%%
+
+\par\bigskip
+\noindent
+\newcitation[
+ author=George Bernard Shaw (1856--1950),
+ show author,
+ leftmargin=0pt,
+ rightmargin=0pt,
+ put frame,
+ framecolor=blue,
+ shadecolor=yellow!25!green!14,
+ frame thickness=1pt,
+]{%
+ A man of great common sense and good taste; meaning thereby
+ a man without originality and/or moral courage.
+}
+
+\par\bigskip
+\noindent
+\newcitation[
+ author=George Bernard Shaw (1856--1950),
+ show author,
+ leftmargin=0pt,
+ rightmargin=0pt,
+ put frame=false,
+ framecolor=yellow!30!blue,
+ shadecolor=yellow!25,
+ frame thickness=5pt,
+ width=.8\textwidth,
+]{%
+ A man of great common sense and good taste; meaning thereby
+ a man without originality and/or moral courage.
+}
+
+\par\bigskip
+\noindent
+\newcitation[
+ author=Mohammed Ali,
+ show author,
+ leftmargin=0pt,
+ rightmargin=0pt,
+ put frame,
+ framecolor=red!70!green,
+ shadecolor=magenta!5!red!4,
+ frame thickness=10pt,
+]{%
+ I always say I was `the greatest'; I have never said I was the smartest.
+ \vgap
+ At home I am a nice, quiet guy, but I don't want the world to know.
+ Humble people, I have found, don't get very far.
+ \vgap
+ To win, you must have the skill and the will. But the will must be
+ stronger than the skill.
+ \vgap
+ I'm the best golfer; I just haven't played it yet.
+}
+
+
+%++++++++++++++++++ Collecting body of environment +++++++++++++++++++%
+
+\bigskip
+\begin{collectbody}[
+ title=Example of collect body,
+ title scale=.8,
+ title text style=\ttfamily\color{red}
+]
+\lipsum[1]
+\end{collectbody}
+
+\end{document}
+
+
+%%+++++++++++++++++++++ Assigning arguments to keys +++++++++++++++++%%
+
+\skvsetdefaultprefix{myprefix}
+\skvordkey{fam}{key1}[deafult1]{}
+\skvcmdkey{fam}[mp@]{key2}[deafultx,defaulty]{%
+ \def\cmd##1{#1+#2+##1}%
+}
+\skvassignargs{fam}[.expanded]{key2}{#1,#2}
+\def\valuex{valuex}
+\def\valuey{valuey}
+\skvsetkeys[myprefix]{fam}{key1=value1,key2={\valuex,\valuey}}
+
+%%+++++++++++++++++++++ Examples of \skvmakekeys +++++++++++++++++++%%
+
+\skvmakekeys[
+ .prefix=KVA,
+ .families={fam1,fam2},
+ .hp=thp@,
+ .all new,
+ .define in all families,
+ .initialize=true
+]{%
+ .ord/{keya,keyb}/default-a,
+ .cmd/{keyc,keyd}/.na/\def\y##1{#1**##1},
+ .choice/keyf/center/{center.do=\def\x##1{#1*##1},left,right},
+ .zbool/show center/true/\edef\cmd{\ifthp@showcenter Yes\else No\fi},
+}
+%\skvshowcs{KVA/fam2/keyf.@cbk}
+%\skvshowcs{KVA/fam1/keyb.@defa}
+\def\keybval{xx}
+\skvsetkeys[KVA]{fam1}{keyb=.expand once{\keybval}}
+
+
+%%+++++++++++++++++++++ Examples of \skvusekeys +++++++++++++++++++%%
+
+\skvmakekeys[
+ .prefix=KVA,
+ .families={fam1,fam2},
+ .hp=thp@,
+ .all new
+]{%
+ .ord/keya/{default-a}/\def\y##1{##1*#1*##1},
+ .ord/keyb/defa-b,
+}
+
+\def\keybval{xx}
+
+\skvusekeys[
+ .prefix=KVA,
+ .families={fam1,fam2},
+ .set in all families,
+ .save unknown keys
+]{%
+ keya,
+ keyb=.expand once{\keybval}
+}
+
+% Families fam3 and fam4 aren't defined. Hence, with 'save unknown keys'
+% set to 'true' by default, keys keya and keyb are saved as rm keys with
+% their default values.
+\skvusekeys[
+ .prefix=KVA,
+ .families={fam3,fam4},
+ .set in all families,
+ .save unknown keys
+]{%
+ keya,keyb=.expand once{\keybval}
+}
+%\skvshowcs{KVA/fam3/.@rmkeys}
+%\skvshowcs{KVA/fam4/.@rmkeys}
+
+
+%%+++++++++++++++ Key values with unbalanced conditionals ++++++++++++%%
+
+\skvcmdkey[SKVT]{fam}[mpf]{keya}[keya-defa]{\def\keyaval{#1}}
+\skvsetkeys[SKVT]{fam}{keya=\fi}
+
+%%+++++++++++++++++++++ Examples of \skvkeyslet +++++++++++++++++++%%
+
+\skvsaveinitialvaluekeys[KV]{fam}{keya,keyb,keyc}
+%\skvshowcs{KV/fam/.@needini}
+\skvmakekeys[
+ .prefix=KV,
+ .family=fam,
+ .hp=thp@,
+ .all new,
+ .initialize,
+ .save initial values
+]{%
+ .ord/keya/defa-a/\def\keyay##1{##1*#1*##1},
+ .cmd/{keyb,keyc}/defa-b/\def\keyby##1{##1*#1*##1},
+ .cmd/keyd,
+}
+%\skvshowcs{KV/fam/.@inikv}
+\skvignorekeys[KV]{fam}{keyb,keyc}
+\skvkeyslet[KV]{fam}{keyA=keya,keyB=keyb,keyC=keyc}
+\skvshowcs{KV/fam/.@needini}
+
+
+%++++++++++++++++++ Evaluating boolean expressions +++++++++++++++++++%
+
+\skvifexprTF{%
+ not ( expr { \skvifdefTF\xa } and expr { \skvifemptyTF\xa } )
+ or ( expr { \skvifdefTF\xb } or expr { \skvifxTF\xa\xb } )
+}{%
+ \def\x{T}%
+}{%
+ \def\x{F}%
+}
+
+%++++++++++++++++++++++++++++ \cicadaloop +++++++++++++++++++++++++++%
+
+\makeatletter
+\skvtestcnt\z@
+\def\blist{{X};\fi;{Y};Z}
+\def\stack{}
+\let\romn\romannumeral
+\cicadaloop{{a},\if,{b},c}\if01\fi{%
+ \advance\skvtestcnt by\@ne
+ \@tempcntb\z@\@tempswafalse
+ \cicadaloop*[;]\blist\if@tempswa\fi{%
+ \advance\@tempcntb by\@ne
+ \typeout{Doing \romn\skvtestcnt, \romn\@tempcntb:
+ \detokenize{#1, ##1}}%
+ \edef\stack{%
+ \unexpanded\expandafter{\stack}\noexpand\do
+ {\romn\skvtestcnt,\romn\@tempcntb}{\unexpanded{#1;##1}}%
+ }%
+ \ifnum\@tempcntb>\tw@\@tempswatrue\fi
+ }%
+}
+\makeatother
+
+%++++++++++++++++++++++++ \ifcases ++++++++++++++++++++++++++++++%
+
+\skvifcases b\then
+ case{a}{\def\x{do a}}
+ case{b}{\def\x{do b}}
+ case{c}{\def\x{do c}}
+ % default{\def\x{no match}}
+\fi
+
+\skvifcasse{x}
+ case{a}{\def\x{do a}}
+ case{b}{\def\x{do b}}
+ case{c}{\def\x{do c}}
+\elsedo
+ \def\x{no match}
+\endif
+
+\skvifcasse{x}
+ case{a}{\def\x{do a}}
+ case{b}{\def\x{do b}}
+ case{c}{\def\x{do c}}
+%\elsedo
+% \def\x{no match}
+\endif
+
+%++++++++++++ Processing a key's value as a comma list +++++++++++%
+
+\skvordkeys[KV]{fam}{key1,key2}[default]{%
+ .arg{#1/#2}%
+ \def\x##1{##1*#1*#2}%
+}
+\def\aval{val1a/val1b}
+\def\bval{val2a/val2b,val2c/val2d}
+\skvsetkeys[KV]{fam}{%
+ key1=\aval,
+ key2=.eprocess list{\bval}
+}
+
+\skvordkeys[KV]{fam}{key1}[default]{\def\x##1{##1*#1}}
+\def\aval{val1a,val1b,val1c,val1d}
+\def\bval{\aval}
+\def\cval{\bval}
+\skvsetkeys[KV]{fam}{%
+ key1=.expand once process list{\aval},
+ key1=.expand twice process list{\bval},
+ key1=.expand process list{\cval}
+}
+
+% End of file skeyval-pokayoke1.tex
diff --git a/macros/latex/contrib/skeyval/doc/skeyval-pokayoke2.pdf b/macros/latex/contrib/skeyval/doc/skeyval-pokayoke2.pdf
new file mode 100644
index 0000000000..995acce947
--- /dev/null
+++ b/macros/latex/contrib/skeyval/doc/skeyval-pokayoke2.pdf
Binary files differ
diff --git a/macros/latex/contrib/skeyval/doc/skeyval-pokayoke2.tex b/macros/latex/contrib/skeyval/doc/skeyval-pokayoke2.tex
new file mode 100644
index 0000000000..3c016c0d3c
--- /dev/null
+++ b/macros/latex/contrib/skeyval/doc/skeyval-pokayoke2.tex
@@ -0,0 +1,194 @@
+%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%
+% This is file 'skeyval-pokayoke2.tex', 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, %
+% either version 1.3 of this license or 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. %
+% %
+% The LPPL maintenance status of this software is 'author-maintained'. %
+% %
+% This software is provided 'as it is', without warranty of any kind, %
+% either expressed or implied, including, but not limited to, the %
+% implied warranties of merchantability and fitness for a particular %
+% purpose. %
+% %
+% The following files constitute the skeyval bundle and must be %
+% distributed as a whole: %
+% %
+% 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, %
+% skeyval-testpkg.sty, skeyval-pokayoke1, skeyval-pokayoke2, %
+% skeyval-view-pokayoke1. %
+% %
+% Copyright (c) 2010-2013 Ahmed Musa (amusa22@gmail.com). %
+%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%
+
+% Check the log file for warning about unused global option 'unknown-option':
+\documentclass[
+ insertwatermark,watermarkcolor=blue!55,
+ firstpagenumber=2,maketitlepage,unknown-option
+]{skeyval-testclass}
+
+\setupskvtestclass{%
+ watermarktext={skeyval-test2\\[.25ex]Page~\thepage}
+}
+
+\usepackage{lipsum}
+\usepackage{xcolor}
+
+% If you try to load 'skeyval-testpkg' with options, the options
+% will all be zapped, unless you load 'skeyval-ltxpatch' on top of
+% \documentclass.
+
+\setuptextemphasis{usecolour=true,usebold,useitalics=true}
+
+\begin{document}
+
+\title{%
+ The \texttt{\textcolor{blue}{skeyval}} Package\\[2ex]
+ Version 1.1a\\[1ex]
+ \textsf{Test document 2}
+ \footnote{Made by \texttt{skeyval-testclass, Version~1.1a.}}%
+}
+\author{Ahmed Musa\footnote{\texttt{amusa22@gmail.com}.}}
+
+\maketitle
+
+\lipsum[1]
+
+\xem{\lipsum[1]}
+
+\setuptextemphasis{color=blue}
+
+\xem{\lipsum[1]}
+
+\setuptextemphasis{usecolor=false, usebold=false, useitalic=false}
+
+\xem{\lipsum[1]}
+
+\lipsum[1]
+
+\setuptextemphasis{make-textemphasis-inactive}
+
+\xem{\lipsum[1]}
+
+% This will raise an error: 'dummy-option' has been disabled
+% at begin document:
+% \setuptextemphasis{dummy-option}
+
+\begin{tikzpicture}[shading=ball]
+\newforeach \x/\cola in {0/red,1/green,2/blue,3/yellow} do {%
+ \newforeach \y/\colb in {0/red,1/green,2/blue,3/yellow} {%
+ \node[
+ circle,double,draw=-\cola!50!\colb,fill=\cola!50!\colb,
+ thick,inner sep=2pt,
+ minimum size=10mm,font=\bfseries\color{white}
+ ] at (\x*2,\y*2) {\x,\y};
+ }%
+}
+\end{tikzpicture}
+
+\bigskip
+\parindent-20pt
+\begin{tikzpicture}
+\draw[step=.5cm,blue!65,very thin] (0,0) grid (13,6);
+\newforeach \x in {1,2,...,5,7,8,...,12} {
+ \newforeach \y in {1,...,5} do {
+ \draw (\x,\y) +(-.5,-.5) rectangle ++(.5,.5);
+ \draw (\x,\y) node{\x,\y};
+ }
+}
+\end{tikzpicture}
+
+\bigskip
+\begingroup
+\catcode`\,=13
+\gdef\alist{1,2,...,5,7,8,...,12}
+\endgroup
+\parindent-20pt
+\begin{tikzpicture}
+\draw[step=.5cm,blue!65,very thin] (0,0) grid (13,6);
+\newforeach* \x [
+ count in=\xc all \x satisfying \ifnum\x>5\fi
+] in \alist {
+ \newforeach[
+ parser={;}, subparser=:,
+ evaluate=\y as \ye using \numexpr\y*10
+ ]
+ \y:\z in {1:red; 2:green; 3:blue; 4:brown; 5:purple} do {
+ \draw [fill=\z\ifnum\x>5!\ye\fi](\x,\y) +(-.5,-.5) rectangle ++(.5,.5);
+ \draw (\x,\y) node {\x,\y};
+ }
+}
+\global\let\xc\xc
+\end{tikzpicture}
+%\show\xc
+
+
+\end{document}
+
+
+%++ Pokayoke for \skvsetdirectkeysparser and \skvsetdefinekeysparser ++%
+
+\usepackage{tikz}
+\usetikzlibrary{shapes.geometric}
+\makeatletter
+\skvsetdirectkeysparser{;}
+\skvsetdefinekeysparser{;}
+\directkeys*{
+ .family=graph;
+ .holder prefix=cvt@;
+ .initialize keys after define;
+ .define keys={
+ .ord/num vertices,number of vertices,vertices/6/
+ \skvensureinteger{vertices}{#1}
+ \def\cvt@vertices{#1}
+ ;
+ .ord/radius,circle radius/2/\def\cvt@radius{#1};
+ .cmd/x,y/0
+ };
+ .preset keys={vertices,radius,x,y}
+}
+\newcommand*\drawgraph[1][]{%
+ \directkeys{
+ .family=graph;
+ .set keys={#1}
+ }
+ \pgfmathsetmacro\halfcircleradius{\cvt@radius/2}
+ \draw[blue] (\cvt@x,\cvt@y) circle (\halfcircleradius cm)
+ node [regular polygon, regular polygon sides=\cvt@vertices,
+ minimum size=\cvt@radius cm, draw=none, name={vertex set}]{};
+ \foreach \x in {1,...,\cvt@vertices}{
+ \node[draw,circle,inner sep=1pt,blue,fill=blue] at (vertex set.corner \x){};
+ }
+ \foreach \x in {1,...,\cvt@vertices}{
+ \foreach \y in {\x,...,\cvt@vertices}{
+ \draw[ultra thin, red] (vertex set.corner \x)--(vertex set.corner \y);
+ }
+ }
+}
+\makeatother
+\begin{document}
+\begin{tikzpicture}
+\drawgraph[number of vertices=6, circle radius=3, x=0, y=0]
+\drawgraph[number of vertices=8, circle radius=3, x=4, y=0]
+\end{tikzpicture}
+\par\bigskip
+\begin{tikzpicture}
+% Use default values of positions:
+\drawgraph[vertices=8, radius=3]
+% Use default values of vertices and radius:
+\drawgraph[x=4, y=0]
+\end{tikzpicture}
+\par\bigskip
+\begin{tikzpicture}
+% Use default values of all keys:
+\drawgraph
+\end{tikzpicture}
+\end{document}
+
+% End of file skeyval-pokayoke2.tex
diff --git a/macros/latex/contrib/skeyval/doc/skeyval-view-pokayoke1.aux b/macros/latex/contrib/skeyval/doc/skeyval-view-pokayoke1.aux
new file mode 100644
index 0000000000..7b28271730
--- /dev/null
+++ b/macros/latex/contrib/skeyval/doc/skeyval-view-pokayoke1.aux
@@ -0,0 +1,50 @@
+\relax
+\gdef \LT@i {\LT@entry
+ {5}{69.74951pt}\LT@entry
+ {1}{38.00008pt}\LT@entry
+ {1}{41.86122pt}\LT@entry
+ {5}{64.49956pt}\LT@entry
+ {5}{132.74896pt}}
+\gdef \LT@ii {\LT@entry
+ {5}{74.99947pt}\LT@entry
+ {1}{38.00008pt}\LT@entry
+ {1}{41.86122pt}\LT@entry
+ {5}{43.49974pt}\LT@entry
+ {1}{44.3612pt}}
+\gdef \LT@iii {\LT@entry
+ {5}{32.99983pt}\LT@entry
+ {1}{38.00008pt}\LT@entry
+ {1}{41.86122pt}\LT@entry
+ {5}{53.99965pt}\LT@entry
+ {1}{44.3612pt}}
+\newlabel{KV/fam1/show shadow}{{2}{1}}
+\newlabel{KV/fam1/show center}{{2}{1}}
+\newlabel{KV/fam1/keyg}{{2}{1}}
+\newlabel{KV/fam2/space travel}{{2}{1}}
+\newlabel{KV/fam1/keyb}{{3}{1}}
+\newlabel{KV/fam1/keyd}{{3}{1}}
+\newlabel{KV/fam1/keye}{{3}{1}}
+\gdef \LT@iv {\LT@entry
+ {5}{32.99983pt}\LT@entry
+ {1}{38.00008pt}\LT@entry
+ {1}{41.86122pt}\LT@entry
+ {5}{53.99965pt}\LT@entry
+ {1}{44.3612pt}}
+\gdef \LT@v {\LT@entry
+ {5}{101.24924pt}\LT@entry
+ {1}{38.00008pt}\LT@entry
+ {1}{41.86122pt}\LT@entry
+ {5}{53.99965pt}\LT@entry
+ {5}{127.49901pt}}
+\gdef \LT@vi {\LT@entry
+ {5}{101.24924pt}\LT@entry
+ {1}{41.86122pt}\LT@entry
+ {5}{53.99965pt}\LT@entry
+ {5}{127.49901pt}}
+\gdef \LT@vii {\LT@entry
+ {5}{101.24924pt}\LT@entry
+ {1}{38.00008pt}\LT@entry
+ {1}{41.86122pt}\LT@entry
+ {5}{64.49956pt}\LT@entry
+ {5}{132.74896pt}}
+\newlabel{KV/fam1/keyf}{{3}{2}}
diff --git a/macros/latex/contrib/skeyval/doc/skeyval-view-pokayoke1.log b/macros/latex/contrib/skeyval/doc/skeyval-view-pokayoke1.log
new file mode 100644
index 0000000000..be0650196b
--- /dev/null
+++ b/macros/latex/contrib/skeyval/doc/skeyval-view-pokayoke1.log
@@ -0,0 +1,540 @@
+This is pdfTeX, Version 3.1415926-2.3-1.40.12 (MiKTeX 2.9) (preloaded format=pdflatex 2013.3.17) 17 MAY 2013 18:28
+entering extended mode
+**skeyval-view-pokayoke1.tex
+("D:\My Documents\TeX Stuff\CTAN Uploads\skeyval\doc\skeyval-view-pokayoke1.tex
+"
+LaTeX2e <2011/06/27>
+Babel <v3.8m> and hyphenation patterns for english, afrikaans, ancientgreek, ar
+abic, armenian, assamese, basque, bengali, bokmal, bulgarian, catalan, coptic,
+croatian, czech, danish, dutch, esperanto, estonian, farsi, finnish, french, ga
+lician, german, german-x-2009-06-19, greek, gujarati, hindi, hungarian, iceland
+ic, indonesian, interlingua, irish, italian, kannada, kurmanji, lao, latin, lat
+vian, lithuanian, malayalam, marathi, mongolian, mongolianlmc, monogreek, ngerm
+an, ngerman-x-2009-06-19, nynorsk, oriya, panjabi, pinyin, polish, portuguese,
+romanian, russian, sanskrit, serbian, slovak, slovenian, spanish, swedish, swis
+sgerman, tamil, telugu, turkish, turkmen, ukenglish, ukrainian, uppersorbian, u
+senglishmax, welsh, loaded.
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\skeyval\skeyval-testclass.cls"
+Document Class: skeyval-testclass 2013/05/15 v1.3 skeyval test class (AM)
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\skeyval\skeyval.sty"
+Package: skeyval 2013/05/15 v1.3 Robust key-value parser (AM)
+
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\skeyval\skeyval-core.tex"
+\skvz@=\dimen102
+\skvm@ne=\count79
+File: skeyval-core.tex 2013/05/15 v1.3 Base file of skeyval package (AM)
+\skv@temptoks=\toks14
+\skv@toksa=\toks15
+\skv@tempcnt=\count80
+\skv@cnta=\count81
+
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\skeyval\skeyval-for.tex"
+File: skeyval-for.tex 2013/05/15 v1.3 Loops for skeyval package (AM)
+\skv@recurse@cnt=\count82
+)))
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\xcolor\xcolor.sty"
+Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK)
+
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\00miktex\color.cfg"
+File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
+)
+Package xcolor Info: Driver file: pdftex.def on input line 225.
+
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\pdftex-def\pdftex.def"
+File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX
+
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\oberdiek\infwarerr.sty"
+Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO)
+)
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\oberdiek\ltxcmds.sty"
+Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO)
+)
+\Gread@gobject=\count83
+)
+Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1337.
+Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1341.
+Package xcolor Info: Model `RGB' extended on input line 1353.
+Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1355.
+Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1356.
+Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1357.
+Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1358.
+Package xcolor Info: Model `Gray' substituted by `gray' on input line 1359.
+Package xcolor Info: Model `wave' substituted by `hsb' on input line 1360.
+)
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\psnfss\pifont.sty"
+Package: pifont 2005/04/12 PSNFSS-v9.2a Pi font support (SPQR)
+LaTeX Font Info: Try loading font information for U+pzd on input line 63.
+
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\psnfss\upzd.fd"
+File: upzd.fd 2001/06/04 font definitions for U/pzd.
+)
+LaTeX Font Info: Try loading font information for U+psy on input line 64.
+
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\psnfss\upsy.fd"
+File: upsy.fd 2001/06/04 font definitions for U/psy.
+))
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\pgf\frontendlayer\tikz.sty"
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\pgf\basiclayer\pgf.sty"
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\pgf\utilities\pgfrcs.sty"
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\utilities\pgfutil-common.te
+x"
+\pgfutil@everybye=\toks16
+)
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\utilities\pgfutil-latex.def
+"
+\pgfutil@abb=\box26
+ ("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\ms\everyshi.sty"
+Package: everyshi 2001/05/15 v3.00 EveryShipout Package (MS)
+))
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\utilities\pgfrcs.code.tex"
+Package: pgfrcs 2010/10/25 v2.10 (rcs-revision 1.24)
+))
+Package: pgf 2008/01/15 v2.10 (rcs-revision 1.12)
+ ("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\pgf\basiclayer\pgfcore.sty"
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\graphics\graphicx.sty"
+Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)
+
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\graphics\keyval.sty"
+Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
+\KV@toks@=\toks17
+)
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\graphics\graphics.sty"
+Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR)
+
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\graphics\trig.sty"
+Package: trig 1999/03/16 v1.09 sin cos tan (DPC)
+)
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\00miktex\graphics.cfg"
+File: graphics.cfg 2007/01/18 v1.5 graphics configuration of teTeX/TeXLive
+)
+Package graphics Info: Driver file: pdftex.def on input line 91.
+)
+\Gin@req@height=\dimen103
+\Gin@req@width=\dimen104
+)
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\pgf\systemlayer\pgfsys.sty"
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\systemlayer\pgfsys.code.tex
+"
+Package: pgfsys 2010/06/30 v2.10 (rcs-revision 1.37)
+ ("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\utilities\pgfkeys.code.tex
+"
+\pgfkeys@pathtoks=\toks18
+\pgfkeys@temptoks=\toks19
+
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\utilities\pgfkeysfiltered.c
+ode.tex"
+\pgfkeys@tmptoks=\toks20
+))
+\pgf@x=\dimen105
+\pgf@y=\dimen106
+\pgf@xa=\dimen107
+\pgf@ya=\dimen108
+\pgf@xb=\dimen109
+\pgf@yb=\dimen110
+\pgf@xc=\dimen111
+\pgf@yc=\dimen112
+\w@pgf@writea=\write3
+\r@pgf@reada=\read1
+\c@pgf@counta=\count84
+\c@pgf@countb=\count85
+\c@pgf@countc=\count86
+\c@pgf@countd=\count87
+
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\systemlayer\pgf.cfg"
+File: pgf.cfg 2008/05/14 (rcs-revision 1.7)
+)
+Package pgfsys Info: Driver file for pgf: pgfsys-pdftex.def on input line 900.
+
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\systemlayer\pgfsys-pdftex.d
+ef"
+File: pgfsys-pdftex.def 2009/05/22 (rcs-revision 1.26)
+
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\systemlayer\pgfsys-common-p
+df.def"
+File: pgfsys-common-pdf.def 2008/05/19 (rcs-revision 1.10)
+)))
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\systemlayer\pgfsyssoftpath.
+code.tex"
+File: pgfsyssoftpath.code.tex 2008/07/18 (rcs-revision 1.7)
+\pgfsyssoftpath@smallbuffer@items=\count88
+\pgfsyssoftpath@bigbuffer@items=\count89
+)
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\systemlayer\pgfsysprotocol.
+code.tex"
+File: pgfsysprotocol.code.tex 2006/10/16 (rcs-revision 1.4)
+))
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\basiclayer\pgfcore.code.tex
+"
+Package: pgfcore 2010/04/11 v2.10 (rcs-revision 1.7)
+ ("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\math\pgfmath.code.tex"
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\math\pgfmathcalc.code.tex"
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\math\pgfmathutil.code.tex")
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\math\pgfmathparser.code.tex
+"
+\pgfmath@dimen=\dimen113
+\pgfmath@count=\count90
+\pgfmath@box=\box27
+\pgfmath@toks=\toks21
+\pgfmath@stack@operand=\toks22
+\pgfmath@stack@operation=\toks23
+)
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\math\pgfmathfunctions.code.
+tex"
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\math\pgfmathfunctions.basic
+.code.tex")
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\math\pgfmathfunctions.trigo
+nometric.code.tex")
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\math\pgfmathfunctions.rando
+m.code.tex")
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\math\pgfmathfunctions.compa
+rison.code.tex")
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\math\pgfmathfunctions.base.
+code.tex")
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\math\pgfmathfunctions.round
+.code.tex")
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\math\pgfmathfunctions.misc.
+code.tex")))
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\math\pgfmathfloat.code.tex"
+\c@pgfmathroundto@lastzeros=\count91
+))
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\basiclayer\pgfcorepoints.co
+de.tex"
+File: pgfcorepoints.code.tex 2010/04/09 (rcs-revision 1.20)
+\pgf@picminx=\dimen114
+\pgf@picmaxx=\dimen115
+\pgf@picminy=\dimen116
+\pgf@picmaxy=\dimen117
+\pgf@pathminx=\dimen118
+\pgf@pathmaxx=\dimen119
+\pgf@pathminy=\dimen120
+\pgf@pathmaxy=\dimen121
+\pgf@xx=\dimen122
+\pgf@xy=\dimen123
+\pgf@yx=\dimen124
+\pgf@yy=\dimen125
+\pgf@zx=\dimen126
+\pgf@zy=\dimen127
+)
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\basiclayer\pgfcorepathconst
+ruct.code.tex"
+File: pgfcorepathconstruct.code.tex 2010/08/03 (rcs-revision 1.24)
+\pgf@path@lastx=\dimen128
+\pgf@path@lasty=\dimen129
+)
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\basiclayer\pgfcorepathusage
+.code.tex"
+File: pgfcorepathusage.code.tex 2008/04/22 (rcs-revision 1.12)
+\pgf@shorten@end@additional=\dimen130
+\pgf@shorten@start@additional=\dimen131
+)
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\basiclayer\pgfcorescopes.co
+de.tex"
+File: pgfcorescopes.code.tex 2010/09/08 (rcs-revision 1.34)
+\pgfpic=\box28
+\pgf@hbox=\box29
+\pgf@layerbox@main=\box30
+\pgf@picture@serial@count=\count92
+)
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\basiclayer\pgfcoregraphicst
+ate.code.tex"
+File: pgfcoregraphicstate.code.tex 2008/04/22 (rcs-revision 1.9)
+\pgflinewidth=\dimen132
+)
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\basiclayer\pgfcoretransform
+ations.code.tex"
+File: pgfcoretransformations.code.tex 2009/06/10 (rcs-revision 1.11)
+\pgf@pt@x=\dimen133
+\pgf@pt@y=\dimen134
+\pgf@pt@temp=\dimen135
+)
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\basiclayer\pgfcorequick.cod
+e.tex"
+File: pgfcorequick.code.tex 2008/10/09 (rcs-revision 1.3)
+)
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\basiclayer\pgfcoreobjects.c
+ode.tex"
+File: pgfcoreobjects.code.tex 2006/10/11 (rcs-revision 1.2)
+)
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\basiclayer\pgfcorepathproce
+ssing.code.tex"
+File: pgfcorepathprocessing.code.tex 2008/10/09 (rcs-revision 1.8)
+)
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\basiclayer\pgfcorearrows.co
+de.tex"
+File: pgfcorearrows.code.tex 2008/04/23 (rcs-revision 1.11)
+)
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\basiclayer\pgfcoreshade.cod
+e.tex"
+File: pgfcoreshade.code.tex 2008/11/23 (rcs-revision 1.13)
+\pgf@max=\dimen136
+\pgf@sys@shading@range@num=\count93
+)
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\basiclayer\pgfcoreimage.cod
+e.tex"
+File: pgfcoreimage.code.tex 2010/03/25 (rcs-revision 1.16)
+
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\basiclayer\pgfcoreexternal.
+code.tex"
+File: pgfcoreexternal.code.tex 2010/09/01 (rcs-revision 1.17)
+\pgfexternal@startupbox=\box31
+))
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\basiclayer\pgfcorelayers.co
+de.tex"
+File: pgfcorelayers.code.tex 2010/08/27 (rcs-revision 1.2)
+)
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\basiclayer\pgfcoretranspare
+ncy.code.tex"
+File: pgfcoretransparency.code.tex 2008/01/17 (rcs-revision 1.2)
+)
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\basiclayer\pgfcorepatterns.
+code.tex"
+File: pgfcorepatterns.code.tex 2009/07/02 (rcs-revision 1.3)
+)))
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\modules\pgfmoduleshapes.cod
+e.tex"
+File: pgfmoduleshapes.code.tex 2010/09/09 (rcs-revision 1.13)
+\pgfnodeparttextbox=\box32
+)
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\modules\pgfmoduleplot.code.
+tex"
+File: pgfmoduleplot.code.tex 2010/10/22 (rcs-revision 1.8)
+)
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\pgf\compatibility\pgfcomp-version
+-0-65.sty"
+Package: pgfcomp-version-0-65 2007/07/03 v2.10 (rcs-revision 1.7)
+\pgf@nodesepstart=\dimen137
+\pgf@nodesepend=\dimen138
+)
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\pgf\compatibility\pgfcomp-version
+-1-18.sty"
+Package: pgfcomp-version-1-18 2007/07/23 v2.10 (rcs-revision 1.1)
+))
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\pgf\utilities\pgffor.sty"
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\pgf\utilities\pgfkeys.sty"
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\utilities\pgfkeys.code.tex"
+))
+("C:\Users\Ahmed Musa\Local TeX Packages\tex\latex\pgfam\tikzkeys\Original file
+s\pgffor.code.tex"
+Package: pgffor 2010/03/23 v2.10 (rcs-revision 1.18)
+\pgffor@iter=\dimen139
+\pgffor@skip=\dimen140
+\pgffor@stack=\toks24
+\pgffor@toks=\toks25
+))
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\frontendlayer\tikz\tikz.cod
+e.tex"
+Package: tikz 2010/10/13 v2.10 (rcs-revision 1.76)
+
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\libraries\pgflibraryplothan
+dlers.code.tex"
+File: pgflibraryplothandlers.code.tex 2010/05/31 v2.10 (rcs-revision 1.15)
+\pgf@plot@mark@count=\count94
+\pgfplotmarksize=\dimen141
+)
+\tikz@lastx=\dimen142
+\tikz@lasty=\dimen143
+\tikz@lastxsaved=\dimen144
+\tikz@lastysaved=\dimen145
+\tikzleveldistance=\dimen146
+\tikzsiblingdistance=\dimen147
+\tikz@figbox=\box33
+\tikz@tempbox=\box34
+\tikztreelevel=\count95
+\tikznumberofchildren=\count96
+\tikznumberofcurrentchild=\count97
+\tikz@fig@count=\count98
+
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\modules\pgfmodulematrix.cod
+e.tex"
+File: pgfmodulematrix.code.tex 2010/08/24 (rcs-revision 1.4)
+\pgfmatrixcurrentrow=\count99
+\pgfmatrixcurrentcolumn=\count100
+\pgf@matrix@numberofcolumns=\count101
+)
+\tikz@expandcount=\count102
+
+("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\frontendlayer\tikz\librarie
+s\tikzlibrarytopaths.code.tex"
+File: tikzlibrarytopaths.code.tex 2008/06/17 v2.10 (rcs-revision 1.2)
+)))
+\skvtestcnt=\count103
+
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\base\article.cls"
+Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\base\size10.clo"
+File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count104
+\c@section=\count105
+\c@subsection=\count106
+\c@subsubsection=\count107
+\c@paragraph=\count108
+\c@subparagraph=\count109
+\c@figure=\count110
+\c@table=\count111
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen148
+))
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\skeyval\skeyval-view.sty"
+Package: skeyval-view 2013/05/15 v1.3 Viewer utility for skeyval package (AM)
+\skvv@toksa=\toks26
+
+("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\tools\longtable.sty"
+Package: longtable 2004/02/01 v4.11 Multi-page Table package (DPC)
+\LTleft=\skip43
+\LTright=\skip44
+\LTpre=\skip45
+\LTpost=\skip46
+\LTchunksize=\count112
+\LTcapwidth=\dimen149
+\LT@head=\box35
+\LT@firsthead=\box36
+\LT@foot=\box37
+\LT@lastfoot=\box38
+\LT@cols=\count113
+\LT@rows=\count114
+\c@LT@tables=\count115
+\c@LT@chunks=\count116
+\LT@p@ftn=\toks27
+)
+\skvv@out=\write4
+)
+("D:\My Documents\TeX Stuff\CTAN Uploads\skeyval\doc\skeyval-view-pokayoke1.aux
+")
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 83.
+LaTeX Font Info: ... okay on input line 83.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 83.
+LaTeX Font Info: ... okay on input line 83.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 83.
+LaTeX Font Info: ... okay on input line 83.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 83.
+LaTeX Font Info: ... okay on input line 83.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 83.
+LaTeX Font Info: ... okay on input line 83.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 83.
+LaTeX Font Info: ... okay on input line 83.
+ ("C:\Program Files (x86)\MiKTeX 2.9\tex\context\base\supp-pdf.mkii"
+[Loading MPS to PDF converter (version 2006.09.02).]
+\scratchcounter=\count117
+\scratchdimen=\dimen150
+\scratchbox=\box39
+\nofMPsegments=\count118
+\nofMParguments=\count119
+\everyMPshowfont=\toks28
+\MPscratchCnt=\count120
+\MPscratchDim=\dimen151
+\MPnumerator=\count121
+\makeMPintoPDFobject=\count122
+\everyMPtoPDFconversion=\toks29
+) ABD: EveryShipout initializing macros
+LaTeX Font Info: External font `cmex10' loaded for size
+(Font) <12> on input line 89.
+LaTeX Font Info: External font `cmex10' loaded for size
+(Font) <8> on input line 89.
+LaTeX Font Info: External font `cmex10' loaded for size
+(Font) <6> on input line 89.
+
+Overfull \hbox (1.85933pt too wide) in alignment at lines 128--128
+[] [] [] [] []
+ []
+
+
+Overfull \hbox (1.85933pt too wide) in alignment at lines 128--128
+[] [] [] [] []
+ []
+
+
+Overfull \hbox (1.85933pt too wide) in alignment at lines 128--128
+[] [] [] [] []
+ []
+
+
+Overfull \hbox (1.85933pt too wide) in alignment at lines 128--128
+[] [] [] [] []
+ []
+
+
+Overfull \hbox (1.85933pt too wide) in alignment at lines 128--128
+[] [] [] [] []
+ []
+
+[1
+
+{C:/ProgramData/MiKTeX/2.9/pdftex/config/pdftex.map}]
+Overfull \hbox (17.60919pt too wide) in alignment at lines 128--128
+[] [] [] [] []
+ []
+
+
+Overfull \hbox (17.60919pt too wide) in alignment at lines 128--128
+[] [] [] [] []
+ []
+
+
+Overfull \hbox (17.60919pt too wide) in alignment at lines 128--128
+[] [] [] [] []
+ []
+
+
+Overfull \hbox (17.60919pt too wide) in alignment at lines 128--128
+[] [] [] [] []
+ []
+
+
+Overfull \hbox (17.60919pt too wide) in alignment at lines 128--128
+[] [] [] [] []
+ []
+
+
+Overfull \hbox (33.35905pt too wide) in alignment at lines 128--128
+[] [] [] [] []
+ []
+
+
+Overfull \hbox (33.35905pt too wide) in alignment at lines 128--128
+[] [] [] [] []
+ []
+
+
+Overfull \hbox (33.35905pt too wide) in alignment at lines 128--128
+[] [] [] [] []
+ []
+
+
+Overfull \hbox (33.35905pt too wide) in alignment at lines 128--128
+[] [] [] [] []
+ []
+
+
+Overfull \hbox (33.35905pt too wide) in alignment at lines 128--128
+[] [] [] [] []
+ []
+
+[2] [3]
+\mycount=\count123
+ [4]
+("D:\My Documents\TeX Stuff\CTAN Uploads\skeyval\doc\skeyval-view-pokayoke1.aux
+") )
+Here is how much of TeX's memory you used:
+ 13088 strings out of 494045
+ 263331 string characters out of 3145954
+ 401542 words of memory out of 3000000
+ 16191 multiletter control sequences out of 15000+200000
+ 8653 words of font info for 31 fonts, out of 3000000 for 9000
+ 715 hyphenation exceptions out of 8191
+ 63i,6n,73p,494b,886s stack positions out of 5000i,500n,10000p,200000b,50000s
+<C:/Program Files (x86)/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmr10.pfb
+><C:/Program Files (x86)/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmr12.pfb><C
+:/Program Files (x86)/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmr17.pfb><C:/P
+rogram Files (x86)/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmr9.pfb><C:/Progr
+am Files (x86)/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmss17.pfb><C:/Program
+ Files (x86)/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmti10.pfb><C:/Program F
+iles (x86)/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmtt10.pfb><C:/Program Fil
+es (x86)/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmtt12.pfb>
+Output written on skeyval-view-pokayoke1.pdf (4 pages, 108029 bytes).
+PDF statistics:
+ 50 PDF objects out of 1000 (max. 8388607)
+ 0 named destinations out of 1000 (max. 500000)
+ 13 words of extra memory for PDF output out of 10000 (max. 10000000)
+
diff --git a/macros/latex/contrib/skeyval/doc/skeyval-view-pokayoke1.pdf b/macros/latex/contrib/skeyval/doc/skeyval-view-pokayoke1.pdf
new file mode 100644
index 0000000000..b8a0dbfbfb
--- /dev/null
+++ b/macros/latex/contrib/skeyval/doc/skeyval-view-pokayoke1.pdf
Binary files differ
diff --git a/macros/latex/contrib/skeyval/doc/skeyval-view-pokayoke1.tex b/macros/latex/contrib/skeyval/doc/skeyval-view-pokayoke1.tex
new file mode 100644
index 0000000000..e67898e6a3
--- /dev/null
+++ b/macros/latex/contrib/skeyval/doc/skeyval-view-pokayoke1.tex
@@ -0,0 +1,173 @@
+%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%
+% This is file 'skeyval-view-pokayoke1.tex', version 1.3, 2013/02/22. %
+% %
+% This package and accompanying files may be distributed and/or %
+% modified under the conditions of the LaTeX Project Public License, %
+% either version 1.3 of this license or 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. %
+% %
+% The LPPL maintenance status of this software is 'author-maintained'. %
+% %
+% This software is provided 'as it is', without warranty of any kind, %
+% either expressed or implied, including, but not limited to, the %
+% implied warranties of merchantability and fitness for a particular %
+% purpose. %
+% %
+% The following files constitute the skeyval bundle and must be %
+% distributed as a whole: %
+% %
+% 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, %
+% skeyval-testpkg.sty, skeyval-pokayoke1, skeyval-pokayoke2, %
+% skeyval-view-pokayoke1. %
+% %
+% Copyright (c) 2010-2013 Ahmed Musa (amusa22@gmail.com). %
+%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%
+
+\documentclass{skeyval-testclass}
+\usepackage[tabulate,xcolor-options=dvipsnames]{skeyval-view}
+\usetikzlibrary[topaths]
+
+\makeatletter
+
+\setupviewkeys{length of default=30}
+
+\skvdefinekeys[KV]{fam1}[vhp@]{%
+ .initialize keys after define,
+ .ord/{keya,keya2}/default-a,
+ .cmd/keyb,
+ .zcmd/key c/\def\cmdc##1{##1}/
+ \edef\y{\detokenize\expandafter{\vhp@keyc}}\def\x##1{#1*key c*##1},
+ % No default for keyd:
+ .choice/keyd/.na
+ /{
+ center.do=\def\x##1{#1*##1},
+ left.do={\def\ans{#1}},
+ right
+ }
+ /\def\z##1{#1*##1}
+ /\@warning{Invalid value for keyd},
+ .bool/show shadow/true,
+ .zbool/show center/true/\edef\cmd{\ifvhp@showcenter Yes\else No\fi},
+ .ord/keye,
+ .cmd/keyf,
+ .tog/keyg/true
+}
+\def\vald{left}
+\skvaddslots[KV]{fam1}{stylekeya,stylekeyb}{keya=vala,keyb=valb}
+ {key c=valc,keyd=.expanded{\vald}}[defaults-a&b]{\def\y##1{#1*##1}}
+
+% Define some keys:
+\directkeys*{
+ .prefix=KV,
+ .family=fam2,
+ .holder prefix=hp@,
+ .initialize keys after define,
+ .define keys={%
+ .ord/keya,
+ .ord/galaxy/Messier 51a/\def\constellation{Canes Venatici},
+ .choice/planet/Earth/{Earth.do=\def\x##1{#1*##1},Mars,Jupiter},
+ .bool/space travel/true,
+ .cmd/astronaut/Yuri Gagarin/
+ \edef\x{\ifx\hp@astronaut\@empty Neil Armstrong\else\hp@astronaut\fi},
+ .ord/space observatory/Hubble Space Telescope/
+ \def\father{Lyman Spitzer~(1914--1997)},
+ },
+}
+
+\makeatother
+
+\begin{document}
+
+\title{The \texttt{\textcolor{blue}{skeyval-view}} Package\\[.25ex]
+ Version 1.1a\\[1ex]
+ \textsf{Test document}}
+\author{Ahmed Musa}
+\maketitle
+
+\skvviewkeys{%
+ .show={
+ family=fam1,
+ color=blue
+ },
+ .show={
+ families={fam1,fam2},
+ only those with default=true,
+ write to file=\jobname.skvv,
+ show labels=true,
+ show wlabels=true,
+ },
+ .show={
+ family=fam1,
+ only those with default=[none],
+ show labels=true,
+ color=cyan,
+ },
+ .show={
+ families={fam1,fam2},
+ only those without default=true,
+ color=purple,
+ },
+ .show={
+ family=fam2,
+ columns={prefix,family,key type,default},
+ color=teal
+ },
+ .show={
+ only those in family=fam2,
+ columns={family,type,default}
+ },
+ .show={
+ only those in families={fam1,fam2},
+ columns={prefix,family,type,default},
+ color=magenta
+ }
+}
+
+\newpage
+
+\skvtestcnt0\relax
+\skvrecurse
+ \advance\skvtestcnt1\relax
+ \vskip\baselineskip\noindent
+ \textcolor{blue!\the\numexpr10*\skvtestcnt!red!%
+ \the\numexpr100/\skvtestcnt}{%
+ The play was a great success, but the audience was a disaster.
+ \endgraf{\small Oscar Wilde, 1854--1900}
+ }%
+\while
+ \ifnum\skvtestcnt<8\relax
+\fi
+
+% Credit: Quintin Jean-Noël
+\newcount\mycount
+\begin{center}
+\begin{tikzpicture}[scale=.5,transform shape]
+\newforeach \nr in {1,...,8}{
+ \mycount=\numexpr(\nr-1)*45\relax
+ \node[draw,circle,inner sep=0.25cm] (N-\nr) at (\the\mycount:5.4cm) {};
+}
+\newforeach \nr in {9,...,16}{
+ \mycount=\numexpr(\nr-1)*45+22\relax
+ \node[draw,circle,inner sep=0.25cm] (N-\nr) at (\the\mycount:5.4cm) {};
+}
+\newforeach \nr in {1,...,15}{
+ \mycount=\numexpr\nr+1\relax
+ \newforeach \nra in {\the\mycount,...,16}{
+ \path (N-\nr) edge[->,bend right=3] (N-\nra) edge[<-,bend left=3]
+ (N-\nra);
+ }
+}
+\end{tikzpicture}
+\end{center}
+
+
+\bigskip
+Find more information about the \textcolor{red}{\texttt{show shadow}} option on page~\pageref{KV/fam1/show shadow}.
+
+\end{document}
+
+% End of file skeyval-view-pokayoke1.tex