summaryrefslogtreecommitdiff
path: root/tex/context/base
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2021-06-09 21:01:42 +0200
committerContext Git Mirror Bot <phg@phi-gamma.net>2021-06-09 21:01:42 +0200
commitc558f97f6e47f6d2604fdea3bcd808794a6e41a7 (patch)
treeaa6369aa586b5c8b938c21e91e2149dd432af545 /tex/context/base
parent3d8b4fe968e7b195ef57a952108b3632ecbf10b4 (diff)
downloadcontext-c558f97f6e47f6d2604fdea3bcd808794a6e41a7.tar.gz
2021-06-09 20:33:00
Diffstat (limited to 'tex/context/base')
-rw-r--r--tex/context/base/mkii/cont-new.mkii2
-rw-r--r--tex/context/base/mkii/context.mkii2
-rw-r--r--tex/context/base/mkii/mult-fr.mkii1
-rw-r--r--tex/context/base/mkiv/cont-new.mkiv2
-rw-r--r--tex/context/base/mkiv/context.mkiv2
-rw-r--r--tex/context/base/mkiv/mult-low.lua2
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin23930 -> 23931 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin230131 -> 230130 bytes
-rw-r--r--tex/context/base/mkxl/anch-loc.mkxl9
-rw-r--r--tex/context/base/mkxl/cont-new.mkxl2
-rw-r--r--tex/context/base/mkxl/context.mkxl2
-rw-r--r--tex/context/base/mkxl/page-ffl.mkxl20
-rw-r--r--tex/context/base/mkxl/supp-box.mkxl10
-rw-r--r--tex/context/base/mkxl/syst-ini.mkxl25
-rw-r--r--tex/context/base/mkxl/syst-pln.mkxl4
-rw-r--r--tex/context/base/mkxl/tabl-ntb.mkxl48
-rw-r--r--tex/context/base/mkxl/tabl-tbl.mkxl77
17 files changed, 112 insertions, 96 deletions
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index e9fcb123e..b2394098d 100644
--- a/tex/context/base/mkii/cont-new.mkii
+++ b/tex/context/base/mkii/cont-new.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2021.06.09 00:11}
+\newcontextversion{2021.06.09 20:31}
%D This file is loaded at runtime, thereby providing an
%D excellent place for hacks, patches, extensions and new
diff --git a/tex/context/base/mkii/context.mkii b/tex/context/base/mkii/context.mkii
index 65be067b4..f87187c45 100644
--- a/tex/context/base/mkii/context.mkii
+++ b/tex/context/base/mkii/context.mkii
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2021.06.09 00:11}
+\edef\contextversion{2021.06.09 20:31}
%D For those who want to use this:
diff --git a/tex/context/base/mkii/mult-fr.mkii b/tex/context/base/mkii/mult-fr.mkii
index e9ebb1256..de20eb6f0 100644
--- a/tex/context/base/mkii/mult-fr.mkii
+++ b/tex/context/base/mkii/mult-fr.mkii
@@ -1265,6 +1265,7 @@
\setinterfaceconstant{symbolset}{jeusymbole}
\setinterfaceconstant{symcolor}{couleursym}
\setinterfaceconstant{symstyle}{stylesym}
+\setinterfaceconstant{synchronize}{synchronize}
\setinterfaceconstant{synonym}{synonyme}
\setinterfaceconstant{synonymcolor}{couleursynonyme}
\setinterfaceconstant{synonymcommand}{commandesynonyme}
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index c3ae7c13e..9ef4d9f95 100644
--- a/tex/context/base/mkiv/cont-new.mkiv
+++ b/tex/context/base/mkiv/cont-new.mkiv
@@ -13,7 +13,7 @@
% \normalend % uncomment this to get the real base runtime
-\newcontextversion{2021.06.09 00:11}
+\newcontextversion{2021.06.09 20:31}
%D This file is loaded at runtime, thereby providing an excellent place for hacks,
%D patches, extensions and new features. There can be local overloads in cont-loc
diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv
index fbde307f9..776d85c8b 100644
--- a/tex/context/base/mkiv/context.mkiv
+++ b/tex/context/base/mkiv/context.mkiv
@@ -45,7 +45,7 @@
%D {YYYY.MM.DD HH:MM} format.
\edef\contextformat {\jobname}
-\edef\contextversion{2021.06.09 00:11}
+\edef\contextversion{2021.06.09 20:31}
%D Kind of special:
diff --git a/tex/context/base/mkiv/mult-low.lua b/tex/context/base/mkiv/mult-low.lua
index 13ebb8fcb..2b2173ae9 100644
--- a/tex/context/base/mkiv/mult-low.lua
+++ b/tex/context/base/mkiv/mult-low.lua
@@ -227,7 +227,7 @@ return {
--
"doglobal", "dodoglobal", "redoglobal", "resetglobal",
--
- "donothing", "untraceddonothing", "dontcomplain", "forgetall",
+ "donothing", "untraceddonothing", "dontcomplain", "lessboxtracing", "forgetall",
--
"donetrue", "donefalse", "foundtrue", "foundfalse",
--
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index 383ebf0cb..4363c067a 100644
--- a/tex/context/base/mkiv/status-files.pdf
+++ b/tex/context/base/mkiv/status-files.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf
index 998d9f26b..1f3016ff8 100644
--- a/tex/context/base/mkiv/status-lua.pdf
+++ b/tex/context/base/mkiv/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/mkxl/anch-loc.mkxl b/tex/context/base/mkxl/anch-loc.mkxl
index 969bdfffe..8009e1595 100644
--- a/tex/context/base/mkxl/anch-loc.mkxl
+++ b/tex/context/base/mkxl/anch-loc.mkxl
@@ -37,13 +37,20 @@
\permanent\protected\def\anch_local_withanchor_s #1#2#3{\leftboundary\setlocalsyncanchor {#1} #2 #3\rightboundary}
\permanent\protected\def\anch_local_withanchor_a#1#2#3#4{\leftboundary\setlocalalignanchor{#1} #2 #3{#4}\rightboundary}
-\permanent\protected\def\anch_local_withanchor_m #1#2#3{\leftboundary\setlocalmarkanchor {#1} #2 #3\rightboundary}
+\permanent\protected\def\anch_local_withanchor_n #1#2#3{\leftboundary\setlocalmarkanchor {#1} #2 #3\rightboundary}
+\permanent\protected\def\anch_local_withanchor_t #1#2#3{\anch_local_withanchor_n{#1}{#2}{#3}\smash[whd]{\smallinfofont\number#2-\number#3}}
\permanent\protected\def\setlocalanchoring
{\enforced\let\syncanchor \anch_local_withanchor_s
\enforced\let\alignanchor\anch_local_withanchor_a
\enforced\let\markanchor \anch_local_withanchor_m}
+\let\anch_local_withanchor_m\anch_local_withanchor_n
+
+\installtextracker{localanchor}
+ {\let\anch_local_withanchor_m\anch_local_withanchor_t}
+ {\let\anch_local_withanchor_m\anch_local_withanchor_n}
+
\permanent\protected\lettonothing\stopanchoring
\permanent\protected\def\startanchoring#1\stopanchoring % todo: boundary
diff --git a/tex/context/base/mkxl/cont-new.mkxl b/tex/context/base/mkxl/cont-new.mkxl
index d100f8292..25b2101ef 100644
--- a/tex/context/base/mkxl/cont-new.mkxl
+++ b/tex/context/base/mkxl/cont-new.mkxl
@@ -13,7 +13,7 @@
% \normalend % uncomment this to get the real base runtime
-\newcontextversion{2021.06.09 00:11}
+\newcontextversion{2021.06.09 20:31}
%D This file is loaded at runtime, thereby providing an excellent place for hacks,
%D patches, extensions and new features. There can be local overloads in cont-loc
diff --git a/tex/context/base/mkxl/context.mkxl b/tex/context/base/mkxl/context.mkxl
index 01d03a936..d6ec56778 100644
--- a/tex/context/base/mkxl/context.mkxl
+++ b/tex/context/base/mkxl/context.mkxl
@@ -29,7 +29,7 @@
%D {YYYY.MM.DD HH:MM} format.
\immutable\edef\contextformat {\jobname}
-\immutable\edef\contextversion{2021.06.09 00:11}
+\immutable\edef\contextversion{2021.06.09 20:31}
%overloadmode 1 % check frozen / warning
%overloadmode 2 % check frozen / error
diff --git a/tex/context/base/mkxl/page-ffl.mkxl b/tex/context/base/mkxl/page-ffl.mkxl
index 9aeaeef60..77018004f 100644
--- a/tex/context/base/mkxl/page-ffl.mkxl
+++ b/tex/context/base/mkxl/page-ffl.mkxl
@@ -229,17 +229,25 @@
% todo
\else
\begingroup
- \setbox\scratchbox\vsplit#1 upto \textheight
+ \setbox\scratchboxone\hpack\bgroup
+ \edef\currentfacingfloat{\currentfacingfloat:#2}%
+ \inheritedfacingfloatframed{\strut}%
+ \egroup
+ \scratchdimenone\dimexpr\textheight-\htdp\scratchboxone+\lineheight\relax
+ \dontcomplain
+ \splittopskip\zeropoint
+ \setbox\scratchbox\vsplit#1 upto \scratchdimenone
\setsplitlisthtdp\scratchbox\strutht\strutdp
\setbox\scratchbox\hpack\bgroup
\edef\currentfacingfloat{\currentfacingfloat:#2}%
\inheritedfacingfloatframed{\box\scratchbox}%
\egroup
- \ifdim\ht\scratchbox<\dimexpr\textheight-\scratchdimen\relax
- \setbox\scratchbox\vbox{\box\scratchbox\directvspacing\p_spaceinbetween}%
- \else
- \setbox\scratchbox\vbox to \textheight{\box\scratchbox\vss}%
- \fi
+ \setbox\scratchbox\vbox
+ \ifdim\ht\scratchbox<\dimexpr\textheight-\scratchdimen\relax
+ {\box\scratchbox\directvspacing\p_spaceinbetween}%
+ \else
+ to \textheight{\box\scratchbox\vss}%
+ \fi
\global\advance\c_strc_floats_facing_saved\plusone
\putboxincache{\currentfacingfloat}{\number\c_strc_floats_facing_saved}\scratchbox
\endgroup
diff --git a/tex/context/base/mkxl/supp-box.mkxl b/tex/context/base/mkxl/supp-box.mkxl
index 4b6a576e2..113cf7d2d 100644
--- a/tex/context/base/mkxl/supp-box.mkxl
+++ b/tex/context/base/mkxl/supp-box.mkxl
@@ -2611,8 +2611,8 @@
\permanent\protected\def\shownextbox % seldom used
{\dowithnextbox
{\bgroup
- \showboxbreadth\maxdimen
- \showboxdepth \maxdimen
+ \showboxbreadth\maxcount
+ \showboxdepth \maxcount
\scratchcounter\interactionmode
\batchmode
\showbox\nextbox
@@ -2641,10 +2641,8 @@
\fi
\egroup}
-% Why not ...
-
-\showboxbreadth\plusthousand
-\showboxdepth \plusthousand
+% \showboxbreadth\plusthousand
+% \showboxdepth \plusthousand
%D Moved from cont-new:
%D
diff --git a/tex/context/base/mkxl/syst-ini.mkxl b/tex/context/base/mkxl/syst-ini.mkxl
index beda7c081..f6f1d4044 100644
--- a/tex/context/base/mkxl/syst-ini.mkxl
+++ b/tex/context/base/mkxl/syst-ini.mkxl
@@ -543,9 +543,15 @@
\aliased\let\leavevmode\unvoidbox % we prefer to use \dontleavehmode
%D \macros
-%D {dontcomplain}
+%D {dontcomplain,lessboxtracing}
%D
-%D We need this one soon:
+%D We need this one soon. The second one shows less box details (because that actually
+%D slows down noticeably due to the more extensive details in node content.
+
+% With \showboxdepth\maxcount and \showboxbreadth\maxcount the second one is way slower:
+%
+% \testfeatureonce{10}{\setbox\scratchbox\vbox {\samplefile{tufte}}} \elapsedtime\par
+% \testfeatureonce{10}{\setbox\scratchbox\vbox to 10cm{\samplefile{tufte}}} \elapsedtime\par
\permanent\protected\def\dontcomplain
{\hbadness\plustenthousand
@@ -553,6 +559,10 @@
\hfuzz \maxdimen
\vfuzz \maxdimen}
+\permanent\protected\def\lessboxtracing
+ {\showboxdepth \plusthree
+ \showboxbreadth\plusfive}
+
%D Some expected plain variants follow. We don't reuse registers because we
%D don't want clashes.
@@ -701,8 +711,8 @@
\tracingonline \zerocount}
\permanent\protected\def\tracingnone
- {\showboxdepth \plusthree
- \showboxbreadth \plusfive
+ {\showboxdepth \maxcount % \plusthree
+ \showboxbreadth \plusten % \plusfive
\tracingalignments\zerocount
\tracingmath \zerocount
\tracingassigns \zerocount
@@ -719,8 +729,11 @@
%D When we want to see a box we can as well show all of it.
-\showboxdepth \maxdimen
-\showboxbreadth\maxdimen
+% \showboxdepth \maxcount
+% \showboxbreadth\maxcount
+
+\showboxdepth \maxcount
+\showboxbreadth\plusten
%D Just for tracing purposes we set:
diff --git a/tex/context/base/mkxl/syst-pln.mkxl b/tex/context/base/mkxl/syst-pln.mkxl
index 38ec9c4c1..f6c0f6556 100644
--- a/tex/context/base/mkxl/syst-pln.mkxl
+++ b/tex/context/base/mkxl/syst-pln.mkxl
@@ -57,8 +57,8 @@
\pretolerance = 100
\relpenalty = 500
\righthyphenmin = 3
-\showboxbreadth = 5
-\showboxdepth = 3
+%showboxbreadth = 5
+%showboxdepth = 3
%time = 0
\tolerance = 200
%tracingcommands = 0
diff --git a/tex/context/base/mkxl/tabl-ntb.mkxl b/tex/context/base/mkxl/tabl-ntb.mkxl
index 02caa6caf..418164daa 100644
--- a/tex/context/base/mkxl/tabl-ntb.mkxl
+++ b/tex/context/base/mkxl/tabl-ntb.mkxl
@@ -207,7 +207,6 @@
%D For local anchoring:
-
\installcorenamespace{naturaltableanchor}
\let\tabl_ntb_anchor_start \gobbletwoarguments
@@ -219,30 +218,17 @@
\let\xanchor\!!zerocount
\let\yanchor\!!zerocount
-\def\tabl_ntb_anchor_start_normal#1#2%
+\def\tabl_ntb_anchor_start_indeed#1#2%
{\hpack\bgroup
\edef\xanchor{\number#2}%
\edef\yanchor{\number#1}%
\markanchor{matrix}{#1}{#2}}
-\def\tabl_ntb_anchor_start_traced#1#2%
- {\hpack\bgroup
- \edef\xanchor{\number#2}%
- \edef\yanchor{\number#1}%
- \markanchor{matrix}{#2}{#1}%
- \smash[whd]{\smallinfofont#2-#1}}
-
-\let\tabl_ntb_anchor_start_indeed\tabl_ntb_anchor_start_normal
-\let\tabl_ntb_anchor_stop_indeed \egroup
+\let\tabl_ntb_anchor_stop_indeed\egroup
\def\tabl_ntb_anchor_process_indeed#1%
{\localframed[\??naturaltableanchor]{\box#1}}
-\installtextracker
- {localanchor}
- {\let\tabl_ntb_anchor_start_indeed\tabl_ntb_anchor_start_traced}
- {\let\tabl_ntb_anchor_start_indeed\tabl_ntb_anchor_start_normal}
-
\definesimplifiedframed
[\??naturaltableanchor]
@@ -251,6 +237,22 @@
[\c!synchronize=\v!background,
\c!background=\m_tabl_ntb_anchor_background]
+\def\tabl_ntb_anchor_setup
+ {\ifcstok{\naturaltablelocalparameter\c!synchronize}\v!background
+ \let\tabl_ntb_anchor_start \tabl_ntb_anchor_start_indeed
+ \let\tabl_ntb_anchor_stop \tabl_ntb_anchor_stop_indeed
+ \let\tabl_ntb_anchor_process \tabl_ntb_anchor_process_indeed
+ \edef\m_tabl_ntb_anchor_background{\naturaltablelocalparameter\c!background}%
+ \resetnaturaltablelocalparameter\c!background
+ \setlocalanchoring
+ \else
+ \let\m_tabl_ntb_anchor_background\empty
+ \let\tabl_ntb_anchor_start \gobbletwoarguments
+ \let\tabl_ntb_anchor_stop \relax
+ \let\tabl_ntb_anchor_process \gobbleoneargument
+ \fi
+ \resetnaturaltablelocalparameter\c!synchronize}
+
%D We have already prepared the previous macros for nesting, so we only have to pop
%D in the right ones:
@@ -973,19 +975,7 @@
\resetcharacteralign % new
\setupcurrentnaturaltablelocal[\c!align={\v!right,\v!broad,\v!high},#1]%
%
- \ifcstok{\naturaltablelocalparameter\c!synchronize}\v!background
- \let\tabl_ntb_anchor_start \tabl_ntb_anchor_start_indeed
- \let\tabl_ntb_anchor_stop \tabl_ntb_anchor_stop_indeed
- \let\tabl_ntb_anchor_process \tabl_ntb_anchor_process_indeed
- \edef\m_tabl_ntb_anchor_background{\naturaltablelocalparameter\c!background}%
- \resetnaturaltablelocalparameter\c!background
- \else
- \let\m_tabl_ntb_anchor_background\empty
- \let\tabl_ntb_anchor_start \gobbletwoarguments
- \let\tabl_ntb_anchor_stop \relax
- \let\tabl_ntb_anchor_process \gobbleoneargument
- \fi
- \resetnaturaltablelocalparameter\c!synchronize
+ \tabl_ntb_anchor_setup
%
\d_tabl_ntb_leftmargindistance \naturaltablelocalparameter\c!leftmargindistance\relax
\d_tabl_ntb_rightmargindistance\naturaltablelocalparameter\c!rightmargindistance\relax
diff --git a/tex/context/base/mkxl/tabl-tbl.mkxl b/tex/context/base/mkxl/tabl-tbl.mkxl
index 4ccb0e107..08f2ee4ad 100644
--- a/tex/context/base/mkxl/tabl-tbl.mkxl
+++ b/tex/context/base/mkxl/tabl-tbl.mkxl
@@ -421,7 +421,6 @@
\let\tabl_tabulate_hook_b\donothing
\let\tabl_tabulate_hook_e\donothing
-
\let\tabl_tabulate_hook_g\donothing
\def\tabl_tabulate_set_preamble_step#1#2% only makes sense for many tabulates
@@ -440,6 +439,7 @@
\global\c_tabl_tabulate_colorspan\zerocount
\global\c_tabl_tabulate_column\constantnumber\c_tabl_tabulate_columns
\tabl_tabulate_hook_g
+ \tabl_tabulate_anchor % new
\tabl_tabulate_setups_check % unexpandable
\tabl_tabulate_hook_check % unexpandable
\ifzeropt\d_tabl_tabulate_width
@@ -1120,10 +1120,10 @@
\let\m_tabl_tabulate_data\empty
\def\tabl_tabulate_start_head_yes[#1]%
- {\processcontent{\e!stop\v!tabulatehead}\m_tabl_tabulate_data{\letvalue{\??tabulatehead#1}\m_tabl_tabulate_data}}
+ {\processcontent{\e!stop\v!tabulatehead}\m_tabl_tabulate_data{\letcsname\??tabulatehead#1\endcsname\m_tabl_tabulate_data}}
\def\tabl_tabulate_start_foot_yes[#1]%
- {\processcontent{\e!stop\v!tabulatetail}\m_tabl_tabulate_data{\letvalue{\??tabulatefoot#1}\m_tabl_tabulate_data}}
+ {\processcontent{\e!stop\v!tabulatetail}\m_tabl_tabulate_data{\letcsname\??tabulatefoot#1\endcsname\m_tabl_tabulate_data}}
\def\tabl_tabulate_start_head_nop{\tabl_tabulate_start_head_yes[\v!tabulate]}
\def\tabl_tabulate_start_foot_nop{\tabl_tabulate_start_foot_yes[\v!tabulate]}
@@ -1132,7 +1132,7 @@
{\bgroup
\edef\currenttabulationparent{#1}%
\let\currenttabulation\currenttabulationparent
- \iftok{\tabulationparameter\c!format}{\v!none}%
+ \ifcstok{\tabulationparameter\c!format}\v!none
% this is special case: we need to define the generic english
% \starttabulate in other interfaces as well
\lettabulationparameter\c!format\tabl_default_format
@@ -1158,30 +1158,11 @@
\def\tabl_default_format{|l|p|} % actually format is always set
-\permanent\protected\setuvalue{\e!start\v!tabulate}%
+\permanent\protected\defcsname\e!start\v!tabulate\endcsname
{\bgroup % whole thing
\let\currenttabulationparent\empty
\tabl_start_regular}
-% \tolerant\protected\def\tabl_start_regular[#1]#*[#2]% [format] | [settings] | [format] [settings] | [settings] [format]
-% {\let\currenttabulation\currenttabulationparent
-% \iftok{#1}\emptytoks
-% \ifhastok={#2}\relax
-% \setupcurrenttabulation[#2]%
-% \fi
-% \orelse\ifhastok={#1}\relax
-% \iftok{#2}\emptytoks\else
-% \settabulationparameter\c!format{#2}%
-% \fi
-% \setupcurrenttabulation[#1]%
-% \else
-% \settabulationparameter\c!format{#1}%
-% \ifhastok={#2}\relax
-% \setupcurrenttabulation[#2]%
-% \fi
-% \fi
-% \tabl_tabulate_start_building}
-
\tolerant\protected\def\tabl_start_regular[#1]#*[#2]% [format] | [settings] | [format] [settings] | [settings] [format]
{\let\currenttabulation\currenttabulationparent
\iftok{#1}\emptytoks
@@ -1212,7 +1193,7 @@
\expandafter\gobbleuntil\csname\ifconditional\c_tabl_generic stoptabulate\else\e!stop\v!tabulate\fi\endcsname}
\appendtoks
- \enforced\letvalue{\e!start\v!tabulate}\tabl_tabulate_start_ignore % only the main one
+ \enforced\letcsname\e!start\v!tabulate\endcsname\tabl_tabulate_start_ignore % only the main one
\to \everytabulate
\defcsname\??tabulatesplit\v!yes \endcsname{\settrue\c_tabl_tabulate_split}
@@ -1536,12 +1517,11 @@
\global\d_tabl_tabulate_vrulethickness\zeropoint} % nils second one
\protected\def\tabl_tabulate_column_vrule_inject_second
- {\ifcase\d_tabl_tabulate_vrulethickness\else
- \ifempty\m_tabl_tabulate_vrule_color
- \tabl_tabulate_column_vruled_normal
- \else
- \tabl_tabulate_column_vruled_colored
- \fi
+ {\ifcase\d_tabl_tabulate_vrulethickness
+ \orelse\ifempty\m_tabl_tabulate_vrule_color
+ \tabl_tabulate_column_vruled_normal
+ \else
+ \tabl_tabulate_column_vruled_colored
\fi
\global\d_tabl_tabulate_vrulethickness\zeropoint} % nils second one
@@ -2182,6 +2162,28 @@
% \ruledvbox{\starttabulate[|k8|] \NC xxx \NC \NR \stoptabulate}
% \ruledvbox{\starttabulate[|l|l|] \NC xxx \NC xxx \NC \NR \stoptabulate}
+\protected\def\tabl_tabulate_anchor_indeed
+ {\edef\xanchor{\number\c_tabl_tabulate_column}%
+ \edef\yanchor{\number\c_tabl_tabulate_nofrealrows}%
+ \markanchor{matrix}{\c_tabl_tabulate_column}{\c_tabl_tabulate_nofrealrows}}
+
+\def\tabl_tabulate_anchor_setup % a bit of a cheat but good enough for a lightweight experiment
+ {\edef\p_synchronize{\tabulationparameter\c!synchronize}%
+ \ifx\p_synchronize\v!background
+ \edef\currentframedcontent{\tabulationparameter\c!frame}%
+ \ifx\currentframedcontent\v!off
+ \lettabulationparameter\c!frame\empty
+ \let\currentframedcontent\empty
+ \letframedcontentparameter\c!frame\v!off
+ \fi
+ \letframedcontentparameter\c!synchronize\p_synchronize
+ \setframedcontentparameter\c!background {\tabulationparameter\c!background}%
+ \enforced\let\tabl_tabulate_anchor\tabl_tabulate_anchor_indeed
+ \setlocalanchoring
+ \fi}
+
+\permanent\protected\lettonothing\tabl_tabulate_anchor
+
\def\tabl_tabulate_process
{\c_tabl_tabulate_pass\plusone
\tabl_tabulate_check_full_content
@@ -2318,6 +2320,7 @@
\ifinsidesplitfloat
\global\setbox\b_tabl_tabulate\vbox \bgroup
\else
+ \tabl_tabulate_anchor_setup
\startframedcontent[\tabulationparameter\c!frame]%
\fi
\else
@@ -2903,19 +2906,15 @@
\permanent\protected\def\tabl_tabulate_NA_first
{\tabl_tabulate_column_normal\zerocount\zerocount\relax
- \iftrialtypesetting\else
- \ifcase\c_tabl_tabulate_column\or
- \tabl_tabulate_A_first
- \fi
+ \iftrialtypesetting\orelse\ifcase\c_tabl_tabulate_column\or
+ \tabl_tabulate_A_first
\fi
\ignorespaces}
\permanent\protected\def\tabl_tabulate_BA_first
{\tabl_tabulate_column_normal\plusone\zerocount\relax
- \iftrialtypesetting\else
- \ifcase\c_tabl_tabulate_column\or
- \tabl_tabulate_A_first
- \fi
+ \iftrialtypesetting\orelse\ifcase\c_tabl_tabulate_column\or
+ \tabl_tabulate_A_first
\fi
\usetabulationstyleandcolor\c!foregroundstyle\c!foregroundcolor
\ignorespaces}