summaryrefslogtreecommitdiff
path: root/tex/context/base/mkxl/spac-ali.mkxl
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkxl/spac-ali.mkxl')
-rw-r--r--tex/context/base/mkxl/spac-ali.mkxl56
1 files changed, 43 insertions, 13 deletions
diff --git a/tex/context/base/mkxl/spac-ali.mkxl b/tex/context/base/mkxl/spac-ali.mkxl
index 6e16614aa..085ed143a 100644
--- a/tex/context/base/mkxl/spac-ali.mkxl
+++ b/tex/context/base/mkxl/spac-ali.mkxl
@@ -570,28 +570,58 @@
\c_spac_align_state_direction \zerocount % what is default ?
\c_spac_align_state_page \zerocount
\c_spac_align_state_par_fill \zerocount
- \ifcsname\??aligncommand\m_spac_align_asked\endcsname
+ \ifcsname\??aligncommand\m_spac_align_named\endcsname
\lastnamedcs
\else
\rawprocesscommacommand[\m_spac_align_asked]\spac_align_collect
\fi
- \normalexpanded{\t_spac_align_collected
- {\setfalse\raggedonelinerstate % bad
- \the\t_spac_align_collected
- \spac_align_flush_horizontal
- \spac_align_flush_vertical
- \spac_align_flush_direction
- \spac_align_flush_page
- \spac_align_flush_parfill
- }}% kept, nice for tracing
+ % % kept, nice for tracing
+ %
+ % \normalexpanded{\t_spac_align_collected
+ % {\setfalse\raggedonelinerstate % bad
+ % \the\t_spac_align_collected
+ % \spac_align_flush_horizontal
+ % \spac_align_flush_vertical
+ % \spac_align_flush_direction
+ % \spac_align_flush_page
+ % \spac_align_flush_parfill
+ % }}%
+ %
+ % \etoksapp\t_spac_align_collected
+ % {\spac_align_flush_horizontal
+ % \spac_align_flush_vertical
+ % \spac_align_flush_direction
+ % \spac_align_flush_page
+ % \spac_align_flush_parfill}%
+ % \etokspre\t_spac_align_collected
+ % {\setfalse\raggedonelinerstate}% bad
+ %
+ \etoks\t_spac_align_collected
+ {\setfalse\raggedonelinerstate % bad
+ \the\t_spac_align_collected
+ \spac_align_flush_horizontal
+ \spac_align_flush_vertical
+ \spac_align_flush_direction
+ \spac_align_flush_page
+ \spac_align_flush_parfill}%
+ %
\enforced\permanent\protected\edef\raggedcommand {\the\t_spac_align_collected }%
\enforced\permanent\protected\edef\updateraggedskips{\spac_align_flush_horizontal}%
- \enforced\aliased\gletcsname\??alignmentnormalcache\m_spac_align_asked\endcsname\raggedcommand
- \enforced\aliased\gletcsname\??alignmentraggedcache\m_spac_align_asked\endcsname\updateraggedskips}
+ \enforced\aliased\gletcsname\??alignmentnormalcache\m_spac_align_named\endcsname\raggedcommand
+ \enforced\aliased\gletcsname\??alignmentraggedcache\m_spac_align_named\endcsname\updateraggedskips}
+
+\mutable\def\m_spac_align_named{\m_spac_align_asked}
\def\spac_align_collect#1%
{\csname\??aligncommand#1\endcsname}
+\permanent\protected\tolerant\def\definealign[#1]#*[#2]%
+ {\pushmacro\m_spac_align_named
+ \edef\m_spac_align_named{#1}%
+ \edef\m_spac_align_asked{#2}%
+ \spac_align_add_to_cache
+ \popmacro\m_spac_align_named}
+
% The local (key driven) setter:
\permanent\protected\def\spac_align_prepare#1% deferred
@@ -655,7 +685,7 @@
% Maybe we need something different in columns.
\permanent\protected\def\installalign#1#2% beware: commands must be unexpandable!
- {\ifcsname\??aligncommand#1\endcsname \else
+ {\ifcsname\??aligncommand#1\endcsname \else % : so maybe we should use \etoksapp
\defcsname\??aligncommand#1\endcsname{\toksapp\t_spac_align_collected{#2}}%
\fi}