Implementation and documentation of \crfnmsetup

This commit is contained in:
Bastien Dumont
2025-08-06 08:38:39 +02:00
parent d09410db10
commit eabdf91580
7 changed files with 1210 additions and 267 deletions

View File

@ -506,6 +506,40 @@
%%% Initialization: Key-value configuration interface %%%
\expandafter\ifx\csname crfnmNoKV\endcsname\relax
\crfnm@case[\fmtname]
\crfnm@context: {\usemodule[expkv-def]}
\crfnm@latex: {\usepackage{expkv-def}}
\fmtname: {\input{expkv-def}}
\crfnm@endCases
\def\crfnmsetup[#1]#2{%
% #1 = a reference type or "default"
\ekvdefinekeys{crfnm@type@#1}{
code sg = \expandafter\def\csname crfnm\crfnm@capitalize #1\endcsname{##1},
code pl = \expandafter\def\csname crfnm\crfnm@capitalize #1s\endcsname{##1},
code delimiter = \expandafter\def\csname crfnm\crfnm@capitalize #1EnumDelim\endcsname{##1},
code before last reference = \expandafter\def\csname crfnm\crfnm@capitalize #1BeforeLastInEnum\endcsname{##1},
code range separator = \expandafter\def\csname crfnm\crfnm@capitalize #1RangeSep\endcsname{##1},
code collapsable? = \expandafter\def\csname crfnm\crfnm@capitalize #1Collapsable\endcsname{##1},
code subtypes separator = \expandafter\def\csname crfnm\crfnm@capitalize #1SubtypesSep\endcsname{##1},
code print prefix of first subtype = \expandafter\def\csname crfnm\crfnm@capitalize #1PrintFirstPrefix\endcsname{##1},
code formatting when second subtype = \expandafter\def\csname crfnm\crfnm@capitalize #1FormatInSecond\endcsname####1{##1{####1}},
code print prefix when second subtype? = \expandafter\def\csname crfnm\crfnm@capitalize #1PrintPrefixInSecond\endcsname{##1},
code delimiter when second subtype = \expandafter\def\csname crfnm\crfnm@capitalize #1EnumDelimInSecond\endcsname{##1},
code before last reference when second subtype = \expandafter\def\csname crfnm\crfnm@capitalize #1BeforeLastInSecond\endcsname{##1},
code group subtypes? = \expandafter\def\csname crfnm\crfnm@capitalize #1GroupSubtypes\endcsname{##1},
code continuous numbering? = \expandafter\def\csname crfnm\crfnm@capitalize #1NumberingContinuousAcrossDocument\endcsname{##1},
code order = \expandafter\def\csname crfnm\crfnm@capitalize #1Order\endcsname{##1}
}%
\ekvset{crfnm@type@#1}{#2}%
}
\fi
%%% Initialization: Default configuration %%%
% Prefixes