summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/keyval2e/keyval2e-examples.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/keyval2e/keyval2e-examples.tex')
-rw-r--r--macros/latex/contrib/keyval2e/keyval2e-examples.tex67
1 files changed, 67 insertions, 0 deletions
diff --git a/macros/latex/contrib/keyval2e/keyval2e-examples.tex b/macros/latex/contrib/keyval2e/keyval2e-examples.tex
new file mode 100644
index 0000000000..a13274b3e2
--- /dev/null
+++ b/macros/latex/contrib/keyval2e/keyval2e-examples.tex
@@ -0,0 +1,67 @@
+% keyval2e.sty examples, version 0.0.2, August 2011
+
+\documentclass{article}
+\usepackage{keyval2e,color}
+\makeatletter
+\kve@definekeys[KV]{fam}[mp@]{%
+ keyone/+/\ifstrcmpTF{#1}{+}{\def\userinput{#1}}{\def\userinput{not `+'}},
+ keytwo/+,
+ keythree/+,
+ keyfour/+,
+ keyfive/true/\ifmp@keyfive\def\x{keyfive is 'true'}\else
+ \def\x{keyfive is 'false'}\fi,
+ keysix/true
+}
+
+% \show\ifmp@keyfive
+
+% The starred variant of \kve@definekeys gives error for the
+% already defined key 'keyone':
+% \kve@definekeys*[KV]{fam}[mp@]{keyone/+}
+
+% Changing the family and macro-prefix makes 'keyone' definable again:
+\kve@definekeys*[KV]{famx}[mpx@]{keyone/+}
+
+\def\fourplus{+,+,+,+}
+\newcommand*\putmany[2][*]{%
+ \begingroup
+ \toks@{}\@tempcnta\z@
+ \loop
+ \advance\@tempcnta\@ne
+ \toks@\expandafter{\the\toks@#1}%
+ \ifnum\@tempcnta<#2\relax
+ \repeat
+ \expandafter\endgroup\the\toks@
+}
+\newcommand{\testa}[2]{%
+ \kve@setafterdefaults[KV]{fam}{#2}%
+ \edef\tempa{\mp@keyone,\mp@keytwo,\mp@keythree,\mp@keyfour}%
+ \noindent
+ \vbox{%
+ \hsize\dimexpr1.1\hsize\relax\leftskip=-1.5cm
+ \def\redstar{\textcolor{red}{*}}\ttfamily
+ Test #1: \redstar\space\texttt{\tempa}\space\redstar\space
+ \ifxTF\tempa\fourplus
+ {All values are defaults\putmany[\space]{2}}%
+ {At least one value is set}%
+ \@spaces\textcolor{red}{||} keyone's value: \userinput
+ }%
+}
+\newcommand{\testb}[2][]{\testa{#2}{#1}}
+
+\begin{document}
+
+\title{The \texttt{\color{blue}keyval2e} Package \\Examples}
+\maketitle
+
+\testa{Aa}{}\\
+\testa{Ba}{keyone=+, keythree=+}\\
+\testa{Ca}{keytwo=+, keythree=a}\\
+\testa{Da}{keyone=b, keythree=a,keyfour=+}\\
+
+\testb{Ab}\\
+\testb[keyone=+, keythree=+]{Bb}\\
+\testb[keytwo=+, keythree=a]{Cb}\\
+\testb[keyone=b, keytwo=+,keythree=a]{Db}\\
+
+\end{document} \ No newline at end of file