summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/keyreader/doc/keyreader-example1.tex
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/keyreader/doc/keyreader-example1.tex
Initial commit
Diffstat (limited to 'macros/latex/contrib/keyreader/doc/keyreader-example1.tex')
-rw-r--r--macros/latex/contrib/keyreader/doc/keyreader-example1.tex118
1 files changed, 118 insertions, 0 deletions
diff --git a/macros/latex/contrib/keyreader/doc/keyreader-example1.tex b/macros/latex/contrib/keyreader/doc/keyreader-example1.tex
new file mode 100644
index 0000000000..6ca57dc2ac
--- /dev/null
+++ b/macros/latex/contrib/keyreader/doc/keyreader-example1.tex
@@ -0,0 +1,118 @@
+\documentclass{article}
+\usepackage{keyreader}[2012/11/01]
+\usepackage{xcolor}
+\usepackage{graphicx}
+\makeatletter
+
+% Choice keys with braced default:
+\krddefinekeys[JKV]{jorg}{%
+ choice/key1/{A/X}/{
+ A/X.do=\def\currcolor{blue},
+ A/Y.do=\def\currcolor{green},
+ B/X.do=\def\currcolor{red},
+ B/Y.do=\def\currcolor{magenta}
+ }
+ /\def\val{Value of key1: #1}
+ ;
+ choice/align/justified/{
+ 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
+ }
+ ;
+}
+\krdpresetkeys[JKV]{jorg}{key1=A/X,align=justified}
+\newcommand\jorgcommand[2][]{%
+ \krdsetkeys[JKV]{jorg}{#1}%
+ \endgraf\bigskip
+ \parbox{\hsize}{\centering\textbf{\textcolor{\currcolor}{\val}}}%
+ \endgraf
+ \parbox{\hsize}{\curralign{\textcolor{\currcolor}{#2}}}%
+}
+
+% Shadow box:
+\newdimen\shadowsize
+\krddefinekeys*[KV]{ebox}[mp@]{%
+ bool/frame/true;
+ bool+/shadow/true//
+ \mp@shadowtrue
+ \@@warning{Invalid value for 'shadow': 'true' assumed}
+ ;
+ cmd/framecolor/black;
+ cmd/shadecolor/white;
+ cmd/shadowcolor/gray;
+ cmd/framesize/.4pt;
+ cmd/boxsize/.1\columnwidth;
+ cmd/shadowsize/1pt;
+ choice+/align/center/
+ center.do=\let\mp@alignright\hfil\let\mp@alignleft\hfil,
+ right.do=\let\mp@alignright\hfill\let\mp@alignleft\relax,
+ left.do=\let\mp@alignright\relax\let\mp@alignleft\hfill,
+ justified.do=\let\mp@alignright\relax\let\mp@alignleft\relax
+ //
+ \let\mp@alignright\hfil\let\mp@alignleft\hfil
+ \@@warning{Invalid value for 'align'; 'center' used}
+ ;
+}
+\savevaluekeys[KV]{ebox}{frame,framecolor,framesize}
+\krdpresetkeys[KV]{ebox}{%
+ frame,framecolor=black,shadecolor=white,framesize=0.5pt,boxsize,align
+}
+\krdpostsetkeys[KV]{ebox}{%
+ shadow=\usevalue{frame},shadowcolor=\usevalue{framecolor}!40,
+ shadowsize=\usevalue{framesize}*4
+}
+\newcommand*\ebox[2][]{%
+ \krdsetkeys[KV]{ebox}{#1}%
+ \begingroup
+ \ifmp@frame
+ \fboxrule=\dimexpr\mp@framesize\relax
+ \else
+ \fboxrule=0pt
+ \fi
+ \ifmp@shadow
+ \shadowsize=\dimexpr\mp@shadowsize\relax
+ \else
+ \shadowsize=0pt
+ \fi
+ \setbox0=\hbox{%
+ \fcolorbox{\mp@framecolor}{\mp@shadecolor}{%
+ \hbox to\mp@boxsize{%
+ \mp@alignright #2\mp@alignleft
+ }%
+ }%
+ }%
+ \hskip\shadowsize
+ \color{\mp@shadowcolor}%
+ \rule[-\dp0]{\wd0}{\the\dimexpr\ht0+\dp0\relax}%
+ \llap{\raisebox{\shadowsize}{\box0\hskip\shadowsize}}%
+ \endgroup
+}
+\makeatother
+
+\begin{document}
+\parindent-60pt
+% Shadow boxes:
+\scalebox{2}{%
+ \ebox[shadecolor=brown!70]{ebox1}%
+ \ebox[framecolor=magenta,boxsize=2cm,align=right]{ebox2}%
+ \ebox[shadow=false,framesize=1pt,framecolor=red,boxsize=1.5cm,align=left]{ebox3}%
+ \ebox[framesize=1pt,framecolor=green,shadowcolor=blue]{ebox4}%
+ \ebox[frame=false,shadow,shadowcolor=yellow,framesize=.5pt]{ebox5}%
+}
+
+% Choice keys:
+\def\name#1{\texttt{\textcolor{black}{#1}}}
+\def\atext{%
+ \name{choice} keys of the \name{keyreader} package.
+}
+\jorgcommand[key1=A/X,align=justified]{\atext}
+\jorgcommand[key1=A/Y,align=center]{\atext}
+\jorgcommand[key1=B/X,align=right]{\atext}
+\jorgcommand[key1=B/Y,align=left]{\atext}
+\jorgcommand{\atext}
+% Invalid value for key1 ('x+y' not allowed):
+% \jorgcommand[key1=x+y]{\atext}
+
+\end{document}