diff options
Diffstat (limited to 'tex/context/base/spac-ali.mkiv')
| -rw-r--r-- | tex/context/base/spac-ali.mkiv | 45 | 
1 files changed, 33 insertions, 12 deletions
diff --git a/tex/context/base/spac-ali.mkiv b/tex/context/base/spac-ali.mkiv index d0736dd5f..d9a85920f 100644 --- a/tex/context/base/spac-ali.mkiv +++ b/tex/context/base/spac-ali.mkiv @@ -108,14 +108,23 @@     \v!flushright=>\def\raggedbox{\doalignedline\v!left  },         \v!center=>\def\raggedbox{\doalignedline\v!middle}]} +\newconditional \injectraggedpagesignals \settrue\injectraggedpagesignals +  \def\dosetraggedcommand#1%    {\normalexpanded{\noexpand\dodosetraggedcommand{#1}}} +\def\dosetpureraggedcommand#1% +  {\setfalse\injectraggedpagesignals +   \normalexpanded{\dodosetraggedcommand{#1}}% +   \settrue\injectraggedpagesignals} +  \newtoks\everyraggedcommand  \def\raggedcommand{\the\everyraggedcommand} -\def\dodosetraggedcommand#1% beware: #1=empty is ignored, keep that! +% slow, we can do this in lua ... some day + +\unexpanded\def\dodosetraggedcommand#1% beware: #1=empty is ignored, keep that!    {\everyraggedcommand\emptytoks     \let\raggedtopcommand\empty     \let\raggedbottomcommand\empty @@ -193,17 +202,29 @@  \setvalue{\@@ragged@@command\v!normal}%    {\appendtoks\notragged\to\everyraggedcommand} -\setvalue{\@@ragged@@command\v!inner}% not yet perfect -  {\signalrightpage % may interfere -   \doifrightpageelse -     {\getvalue{\@@ragged@@command\v!right}} -     {\getvalue{\@@ragged@@command\v!left}}} - -\setvalue{\@@ragged@@command\v!outer}% not yet perfect -  {\signalrightpage % may interfere -   \doifrightpageelse -     {\getvalue{\@@ragged@@command\v!left}} -     {\getvalue{\@@ragged@@command\v!right}}} +\setvalue{\@@ragged@@command\v!inner}% +  {\ifconditional\injectraggedpagesignals +     \signalrightpage % may interfere +     \doifrightpageelse +       {\getvalue{\@@ragged@@command\v!right}}% +       {\getvalue{\@@ragged@@command\v!left }}% +   \else +     \rightorleftpageaction +       {\getvalue{\@@ragged@@command\v!left }}% +       {\getvalue{\@@ragged@@command\v!right}}% +   \fi} + +\setvalue{\@@ragged@@command\v!outer}% +  {\ifconditional\injectraggedpagesignals +     \signalrightpage % may interfere +     \doifrightpageelse +       {\getvalue{\@@ragged@@command\v!left }}% +       {\getvalue{\@@ragged@@command\v!right}}% +   \else +     \rightorleftpageaction +       {\getvalue{\@@ragged@@command\v!right}}% +       {\getvalue{\@@ragged@@command\v!left }}% +   \fi}  \setvalue{\@@ragged@@command\v!lesshyphenation}%    {\appendtoks\lesshyphens\to\everyraggedcommand}  | 
