diff options
author | Karl Berry <karl@freefriends.org> | 2013-05-16 22:30:01 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-05-16 22:30:01 +0000 |
commit | 318d628c7989d4f9ede20b1ee66471bedf447437 (patch) | |
tree | e552e9f9b6195d98f3d579088419fdce722df49c /Master/texmf-dist/doc/latex/skeyval/README | |
parent | f297f05f92068bd7f54e8ee25ce7b8b8a83c2353 (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/README | 59 |
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 |