summaryrefslogtreecommitdiff
path: root/macros/generic/expkv-bundle/README.md
blob: 8d484d62d4e2f6efd465e8ee7966bf1e04dc0f20 (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
-------------------------------------------------------------------------------
# `expkv-bundle` -- an expandable key=value implementation and more

Version 2023-01-23

Released under the LaTeX Project Public License v1.3c or later
See http://www.latex-project.org/lppl.txt

Hosted on the Island of TeX at https://gitlab.com/islandoftex/texmf/expkv-bundle

-------------------------------------------------------------------------------

Copyright (C) 2020-2023 Jonathan P. Spratte

This work may be distributed and/or modified under the conditions of the LaTeX
Project Public License (LPPL), either version 1.3c of this license or (at your
option) any later version. The latest version of this license is in the file:

  http://www.latex-project.org/lppl.txt

This work is "maintained" (as per LPPL maintenance status) by
  Jonathan P. Spratte

-------------------------------------------------------------------------------

## Summary of Contents

`expkv-bundle` is a collection of different packages that provide key=value
functionality in plainTeX, LaTeX, and ConTeXt.

At the core the `expkv` package implements two expandable key=value parsers that
are somewhat fast and robust against common bugs in many key=value
implementations (no accidental brace stripping, no fragility for active commas
or equals signs).

`expkv-cs` enables users to define expandable key=value macros in a comfortable
and straight forward way.

`expkv-def` provides an interface to define common key types for `expkv` similar
to the key defining interfaces of wide spread key=value implementations.

`expkv-opt` allows to parse package or class options in LaTeX via `expkv`.

`expkv-pop` is a utility package to define prefix oriented parsers that allow a
somewhat natural formulation (it provides the core functionality for the
key-defining front ends of both `expkv-cs` and `expkv-def`).