summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/skeyval/README
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/doc/latex/skeyval/README
parentf297f05f92068bd7f54e8ee25ce7b8b8a83c2353 (diff)
skeyval (16may13)
git-svn-id: svn://tug.org/texlive/trunk@30509 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/skeyval/README')
-rw-r--r--Master/texmf-dist/doc/latex/skeyval/README59
1 files changed, 35 insertions, 24 deletions
diff --git a/Master/texmf-dist/doc/latex/skeyval/README b/Master/texmf-dist/doc/latex/skeyval/README
index 00977c54e35..3bf12d11cbc 100644
--- a/Master/texmf-dist/doc/latex/skeyval/README
+++ b/Master/texmf-dist/doc/latex/skeyval/README
@@ -6,12 +6,19 @@ Ahmed Musa
VERSION
-Version 1.2, February 10, 2013.
+Version 1.3, 2013/05/15.
LOCATION ON CTAN
macros/latex/contrib/skeyval
+ANNOUNCEMENT TEXT
+
+The package integrates the features of xkeyval and of pgfkeys by
+introducing a new set of handlers. Style keys, links, changing
+key callbacks and values on the fly, and other features of pgfkeys
+are introduced in a new context.
+
LICENSE
Copyright (c) 2010-2013 Ahmed Musa
@@ -29,13 +36,14 @@ FILES
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.tex, skeyval-pokayoke2.tex,
+ skeyval-view-pokayoke1.tex.
-The skeyval package can be used by LaTeX and non-LaTeX users.
-LaTeX users should load the package via
+The skeyval package can be used by LaTeX and non-LaTeX users. LaTeX users
+should load the package via
\usepackage[<options>]{skeyval}
@@ -51,12 +59,16 @@ Users of pre-version-1.0 of skeyval package can access the former
version by entering the option 'compatibility' in <options> above.
This option will automatically load version 0.73 (the version
just before 1.0) of skeyval package. From version 1.0, the package
-has changed radically.
+has changed radically. Please accept my sincere apologies for making
+changes to the implementation and command names without renaming
+the package. I hate the practice of creating many forks of the same
+package, irrespective of the fact that forking a package is rather
+a standard practice in LaTeX.
SUMMARY
-The 's' in skeyval means 'skeleton keys' or 'master keys'.
+The 's' in skeyval means 'skeleton' or 'master' keys.
The skeyval package provides commands for compactly defining and
initializing all types of key (ordinary, command, boolean, style, choice,
@@ -179,7 +191,7 @@ the following.
\skvcmdkey{fam}[mp@]{key2}[deafultx,defaulty]{%
\def\cmd##1{#1+#2+##1}%
}
- \skvassignargs{fam}[.expanded]{key2}{#1,#2}
+ \skvassignargs{fam}{key2}{.expanded{#1,#2}}
and much later
@@ -189,11 +201,12 @@ the following.
** The callbacks of keys can be readily modified using commands
like \skvaddtocallback, \skvprependtocallback, \skvappendtocallback,
- or the handlers .prepend code, .append code, .add code.
+ or (within \directkeys) using the handlers .prepend code, .append code,
+ .add code.
-** Handlers
+** Handlers
- The skeyval package has many handlers. The handlers of
+ The skeyval package has many handlers. The handlers of skeyval package
start with a dot (.), as in pgfkeys package.
Unlike in pgfkeys package, when 'expand' or 'expanded'
@@ -207,26 +220,24 @@ the following.
\skvappendstyles[KV]{fam}{key1,key2}{keya=.expanded{\vala},keyb=valb}
[default of key1&2]{\def\y##1{#1*##1}}
- Here the subjects are key1 and key2, while the observers are keya and
- keyb. For now, the only thing the subject does is to set the given values
+ Here the subjects/observable are key1 and key2, while the observers are keya
+ and keyb. For now, the only thing the subject does is to set the given values
of the observers on the current path. In the future, we intend to extend
the subject-observer functionality to include more features of the
observer pattern found in other programming paradigms. We foresee that
subjects will be able to publish their services, and observer keys will be
- able to subscribe for notification from subjects. And rather than 'notify
- messages' simply setting observer keys with prior prescribed observer
- values, as is currently the obtainable, observers may be able to do more
- with such messages (such as change observer state patterns).
+ able to subscribe for notification from subjects. And rather than having
+ 'notify messages' simply setting observer keys with prior prescribed
+ observer values, which is what is currently obtainable, observers may be
+ able to do more with such messages (such as change observer state patterns).
** The parameters/arguments of callbacks of keys can be easily changed
by calling \skvdefinekeys, \skvmakekeys, \skvassignargs or \directkeys.
\skvordkeys[KV1]{fam2}{keya,keyb}[default-a]{\def\x##1{#1*##1}}
- \skvassignargs[KV1,KV2]{fam1,fam2}[x1]{keya,keyb}{#1/#2}
+ \skvassignargs[KV1,KV2]{fam1,fam2}{keya,keyb}{.expand{#1/#2}}
\skvsetkeys[KV1]{fam2}{keya=vala/valb}
- 'x1' here means 'expand argument once at setting keys'.
-
** \directkeys command:
\directkeys{%
@@ -385,8 +396,8 @@ the following.
** 'Quick keys' are a new concept. They're quite fast to define and set,
but they can't carry pointers.
- \quickkeys.define{<family>}[<holder.prefix>]{<list>}
- \quickkeys.set{<family>}[<na>]{<kvlist>}
+ \skvquickkeys.define{<family>}[<holder.prefix>]{<list>}
+ \skvquickkeys.set{<family>}[<na>]{<kvlist>}
When defining keys, the syntax of <list> is:
@@ -396,7 +407,7 @@ the following.
Example:
- \quickkeys.define{fam}[mp@]{%
+ \skvquickkeys.define{fam}[mp@]{%
keya/true/\def\x##1{#1*##1}/true,false;
keyb;
keyc,keyd/aaa+bbb/\def\y##1{#1*##1*#2}/.na/#1+#2;
@@ -765,4 +776,4 @@ the following.
\skvdefineordkey{key1}[def1]{\def\cmd##1{#1*##1}}
\skvprocesskeys{key1=value1}
-% End of readme file of skeyval package.
+% End of readme file