summaryrefslogtreecommitdiff
path: root/tex/context/base/mkxl/strc-flt.mklx
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkxl/strc-flt.mklx')
-rw-r--r--tex/context/base/mkxl/strc-flt.mklx41
1 files changed, 40 insertions, 1 deletions
diff --git a/tex/context/base/mkxl/strc-flt.mklx b/tex/context/base/mkxl/strc-flt.mklx
index 2559e897b..94d06fd92 100644
--- a/tex/context/base/mkxl/strc-flt.mklx
+++ b/tex/context/base/mkxl/strc-flt.mklx
@@ -1092,6 +1092,35 @@
\def\strc_floats_group_index
{\numexpr\clf_listgroupindex{\currentfloat}{\currentfloatgroup}\relax}
+%D A lightweight subnumber feature:
+%D
+%D \starttyping
+%D \startplacefigure [location=none]
+%D \startsubfloatnumbering
+%D \startfloatcombination [nx=3]
+%D \startplacefigure [title=Left] \externalfigure \stopplacefigure
+%D \startplacefigure [title=Middle] \externalfigure \stopplacefigure
+%D \startplacefigure [title=Right] \externalfigure \stopplacefigure
+%D \stopfloatcombination
+%D \stopsubfloatnumbering
+%D \stopplacefigure
+%D \stoptyping
+
+\glet\currentsubfloatcounter\empty
+
+\permanent\protected\def\startsubfloatnumbering
+ {\glet\currentsubfloatcounter\s!unknown}
+
+\permanent\protected\def\stopsubfloatnumbering
+ {\strc_counters_reset_sub\currentsubfloatcounter\plustwo
+ \glet\currentsubfloatcounter\empty}
+
+\defineconversionset[subfloats][number,characters]
+
+\setupcaptions
+ %[figure]
+ [\c!numberconversionset=subfloats]
+
\def\strc_floats_place_packaged_boxes
{\expandafter\strc_floats_place_packaged_boxes_indeed\expandafter{\m_strc_floats_saved_userdata}}
@@ -1109,7 +1138,17 @@
\orelse\ifempty\currentfloatgroup
% independent
\iftrialtypesetting\strc_counters_save\currentfloatcounter\fi
- \strc_counters_increment\currentfloatcounter
+ \ifempty\currentsubfloatcounter
+ \strc_counters_increment\currentfloatcounter
+ \strc_counters_reset_sub\currentfloatcounter\plustwo
+ \else
+ \ifcase\strc_counters_raw_sub\currentfloatcounter\plustwo\relax
+ \strc_counters_increment\currentfloatcounter
+ \strc_counters_reset_sub\currentfloatcounter\plustwo
+ \fi
+ \strc_counters_increment_sub\currentfloatcounter\plustwo
+ \glet\currentsubfloatcounter\currentfloatcounter
+ \fi
\orelse\ifcase\strc_floats_group_index
% first in group
\iftrialtypesetting\strc_counters_save\currentfloatcounter\fi