summaryrefslogtreecommitdiff
path: root/macros/generic/expkv-bundle/impatient.tex
blob: b3d62b07faf3763505830b3977e4da26ec0b330f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
\addsec{\expkvbundle\ for the Impatient}

This section gives a very brief and non-exhaustive overview over the contents of
the \expkvbundle. For more information (and more functionality) you'll have to
read the sections of the packages you're interested in.

\expkvbundle\ supports expansion control in \kv\ lists. The corresponding
syntax and features are documented in \autoref{sec:expkv:expansion}.

The following user interface macros (and more) are available in the different
packages of the bundle:
\paragraph{Defining keys}
\begin{itemize}
  \item \cs[no-index]{ekvdefinekeys}\marg{set}\texttt{\kvarg}
    defines the keys in the \kv\ list, many common key types are available
    (\autoref{sec:d:macros} and for the types \autoref{sec:d:types}).
  \item \cs[no-index]{ekvdef}\marg{set}\marg{key}\marg{code}
    defines the behaviour of a \Vkey\ (\autoref{sec:expkv:setup}).
  \item \cs[no-index]{ekvdefNoVal}\marg{set}\marg{key}\marg{code}
    defines the behaviour of a \Nkey\ (\autoref{sec:expkv:setup}).
\end{itemize}
\paragraph{Parsing \kv\ lists}
\begin{itemize}
  \item \cs[no-index]{ekvset}\marg{set}\texttt{\kvarg}
    sets defined keys (\autoref{sec:expkv:set}).
  \item \cs[no-index]{ekvparse}\marg{k-code}\marg{kv-code}\texttt{\kvarg}
    parses the \kv\ list and runs \meta{k-code} or \meta{kv-code} on the
    elements (\autoref{sec:expkv:parse}).
\end{itemize}
\paragraph{Defining expandable \kv\ macros}
\begin{itemize}
  \item \cs[no-index]{ekvcSplit}\meta{cs}\texttt{\kvarg}\marg{code}
    defines a fully expandable macro with the keys in the \kv\ list,
    values are accessed by |#1| to |#9| (\autoref{sec:c:split}).
  \item \cs[no-index]{ekvcHash}\meta{cs}\texttt{\kvarg}\marg{code}
    defines a fully expandable macro with the keys in the \kv\ list,
    values are accessed using \cs[no-index]{ekvcValue}\hskip0pt\marg{key}|{#1}|
    (\autoref{sec:c:hash}).
  \item \cs[no-index]{ekvcSecondaryKeys}\meta{cs}\texttt{\kvarg}
    defines additional keys of predefined types for a \meta{cs} defined with
    \cs[no-index]{ekvcSplit} or \cs[no-index]{ekvcHash}
    (\autoref{sec:c:secondary} and for the types
    \autoref{sec:c:secondarytypes}).
\end{itemize}
\paragraph{Parsing options} (\autoref{sec:o:macros})
\begin{itemize}
  \item \cs[no-index]{ekvoProcessOptions}\marg{set}
    processes the global options, and the options given to the current and
    all future calls of the package.
  \item \cs[no-index]{ekvoProcessGlobalOptions}\marg{set}
    processes the global options.
  \item \cs[no-index]{ekvoProcessLocalOptions}\marg{set}
    processes the local options of a package or class.
  \item \cs[no-index]{ekvoProcessFutureOptions}\marg{set}
    processes the options of future calls of the package.
\end{itemize}