New on CTAN: expkv-bundle

CTAN Announcements ctan-ann at ctan.org
Tue Jan 24 20:34:11 CET 2023


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


More information about the Ctan-ann mailing list