Jonathan P. Spratte submitted the
expkv-bundle .
Version: 2023-01-23 License: lppl1.3c
Summary description: An expandable key=val implementation and friends
Announcement text: ----------------------------------------------------------------------
`expkv-bundle` replaces the earlier CTAN packages `expkv`, `expkv-cs`, `expkv-def`, and `expkv-opt` to distribute them as a single CTAN-package (they are still individual LaTeX-packages). There were some changes to the individual packages that might break backwards compatibility in edge cases. The most noteworthy change perhaps is the new expansion control mechanism for key=value input supported by all packages in the bundle.
A complete changelog can be found at https://gitlab.com/islandoftex/texmf/expkv-bundle/-/blob/master/changelog.md
The following changes might break existing code:
## `expkv` - allow access to the raw key names in unknown handlers (might break existing code if `par` is part of a key name and your unknown handlers aren't defined `long`, also might break existing uses of `ekvletunknown` and `ekvletunknownNoVal`, as the macros should now expect an argument more) - `ekvsetdef` no longer defines the macro as `long` automatically (use a prefix if you need to) - the expansion control might break existing uses of `ekvparse` if the keys contain a colon followed by a space (only if the tokenlist following the space is not blank and the colon is not preceded by a space)
## `expkv-cs` - the unknown handlers defined with `...` forward the raw key names now. - the unknown handlers defined with `...` forward the key name surrounded by one set of braces and spaces now - use `ekvmorekv` for `meta` and `nmeta` instead of a nested `ekvset` (might affect behaviour if a set-changing key is used in the meta list, though this would most likely break in `expkv-cs` in the first place)
## `expkv-def` - add `unprotected` prefix for choices (might break existing choices starting with that word) - use `expanded` in `estore`, `xstore`, `edata`, `xdata`, `edataT`, `xdataT`, `einitial`, and `edefault` instead of `edef` expansion. Might break existing usage using `#`-doubling. - use `ekvmorekv` for `meta` and `nmeta` instead of a nested `ekvset` (might affect behaviour if a set-changing key is used in the meta list, you can get the old behaviour using `smeta` or `snmeta`) - allow values stored in the underlying control sequence differing from their choice in `choice-store` (might break existing choices containing an equals sign)
## `expkv-opt` - the deprecated `ekvoProcessUnusedGlobalOptions` now throws an error (will be removed next version) - also remove from unused global options if in a class the local options are identical to the global options and the unused global options aren't empty
----------------------------------------------------------------------
The bundle’s Catalogue entry can be viewed at https://ctan.org/pkg/expkv-bundle
The bundle’s files themselves can be inspected at https://mirrors.ctan.org/macros/generic/expkv-bundle/
------------------------------------------------------------------------
Thanks for the upload.
For the CTAN Team Petra Rübe-Pugliese
------------------------------------------------------------------------
CTAN is run entirely by volunteers and supported by TeX user groups. Please join a user group or donate to one, see https://ctan.org/lugs