summaryrefslogtreecommitdiff
path: root/tex/context/base/page-brk.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/page-brk.mkiv')
-rw-r--r--tex/context/base/page-brk.mkiv94
1 files changed, 52 insertions, 42 deletions
diff --git a/tex/context/base/page-brk.mkiv b/tex/context/base/page-brk.mkiv
index 244036bc9..f3bdddaed 100644
--- a/tex/context/base/page-brk.mkiv
+++ b/tex/context/base/page-brk.mkiv
@@ -48,31 +48,36 @@
\let\page_breaks_current_option \empty
\let\page_breaks_current_options\empty
+\installcorenamespace{pagebreakmethod}
+\installcorenamespace{pagebreaks}
+
\def\page_breaks_handle#1%
{\edef\page_breaks_current_options{#1}% handy for tracing
\processcommacommand[\page_breaks_current_options]\page_breaks_handle_indeed}
\def\page_breaks_handle_indeed#1%
{\edef\page_breaks_current_option{#1}% can be used in handler
- \ifcsname\??pe:\page_breaks_current_option\endcsname
- \csname\??pe:\page_breaks_current_option\endcsname
- \else\ifcsname\??pe::\page_breaks_current_option\endcsname
- \expandafter\page_breaks_handle\csname\??pe::\page_breaks_current_option\endcsname
+ \ifcsname\??pagebreakmethod\page_breaks_current_option\endcsname
+ \csname\??pagebreakmethod\page_breaks_current_option\endcsname
+ \else\ifcsname\??pagebreaks\page_breaks_current_option\endcsname
+ \expandafter\page_breaks_handle\csname\??pagebreaks\page_breaks_current_option\endcsname
\else
- \csname\??pe:\s!unknown\endcsname
+ \csname\??pagebreakmethod\s!unknown\endcsname
\fi\fi}
\def\page_breaks_handle_direct#1%
- {\csname\??pe:#1\endcsname}
+ {\csname\??pagebreakmethod#1\endcsname}
+
+\unexpanded\def\installpagebreakmethod#1#2% low level definer
+ {\setvalue{\??pagebreakmethod#1}{#2}}
-\def\installpagebreakhandler#1#2% low level definer
- {\setvalue{\??pe:#1}{#2}}
+\let\installpagebreakhandler\installpagebreakmethod % will go
\unexpanded\def\definepagebreak
{\dodoubleargument\page_breaks_define}
\def\page_breaks_define[#1][#2]%
- {\setvalue{\??pe::#1}{#2}}
+ {\setvalue{\??pagebreaks#1}{#2}}
\unexpanded\def\pagebreak
{\dosingleempty\page_breaks_process}
@@ -115,19 +120,19 @@
\def\disablepagebreaks % to be used grouped !
{\def\page_breaks_process[##1]{}}
-\installpagebreakhandler \s!dummy
+\installpagebreakmethod \s!dummy
{\page_otr_flush_all_floats
\gotonextpage
\page_otr_insert_dummy_page}
-\installpagebreakhandler \v!frame
+\installpagebreakmethod \v!frame
{\page
\begingroup
\showframe
\page[\v!empty]
\endgroup}
-\installpagebreakhandler \s!unknown
+\installpagebreakmethod \s!unknown
{\doifinstringelse{+}\page_breaks_current_option
{\page_otr_flush_all_floats
\gotonextpage
@@ -143,17 +148,17 @@
\fi}}
{}}}
-\installpagebreakhandler \s!default
+\installpagebreakmethod \s!default
{} % do nothing if empty
-\installpagebreakhandler \v!reset
+\installpagebreakmethod \v!reset
{% better not: \global\pageornamentstate\zerocount
\resetpagebreak}
-\installpagebreakhandler \v!disable
+\installpagebreakmethod \v!disable
{\global\setfalse\c_page_breaks_enabled}
-\installpagebreakhandler \v!yes
+\installpagebreakmethod \v!yes
{\ifconditional\c_page_breaks_enabled
\page_otr_flush_all_floats
\gotonextpage
@@ -162,22 +167,22 @@
\fi
\fi}
-\installpagebreakhandler \v!makeup
+\installpagebreakmethod \v!makeup
{\ifconditional\c_page_breaks_enabled
\page_otr_fill_and_eject_page
\fi}
-\installpagebreakhandler \v!blank
+\installpagebreakmethod \v!blank
{\ifcase\pageornamentstate
\global\pageornamentstate\plusone
\fi}
-\installpagebreakhandler \v!no
+\installpagebreakmethod \v!no
{\ifconditional\c_page_breaks_enabled
\dosomebreak\nobreak
\fi}
-\installpagebreakhandler \v!preference
+\installpagebreakmethod \v!preference
{\ifconditional\c_page_breaks_enabled
\ifinsidecolumns % this will move to MUL
\dosomebreak\goodbreak
@@ -186,7 +191,7 @@
\fi
\fi}
-\installpagebreakhandler \v!bigpreference
+\installpagebreakmethod \v!bigpreference
{\ifconditional\c_page_breaks_enabled
\ifinsidecolumns % this will move to MUL
\dosomebreak\goodbreak
@@ -195,25 +200,25 @@
\fi
\fi}
-% \installpagebreakhandler \v!empty {} % defined in page-txt.mkiv
-% \installpagebreakhandler \v!header{} % defined in page-txt.mkiv
-% \installpagebreakhandler \v!footer{} % defined in page-txt.mkiv
-% \installpagebreakhandler \v!left {} % defined in page-txt.mkiv
+% \installpagebreakmethod \v!empty {} % defined in page-txt.mkiv
+% \installpagebreakmethod \v!header{} % defined in page-txt.mkiv
+% \installpagebreakmethod \v!footer{} % defined in page-txt.mkiv
+% \installpagebreakmethod \v!left {} % defined in page-txt.mkiv
-\installpagebreakhandler \v!right
+\installpagebreakmethod \v!right
{\page_otr_flush_all_floats
\gotonextpageX % will become \gotonextpage
\doifbothsidesoverruled{}{}{\resetcurrentstructuremarkswithpage\page_otr_insert_dummy_page}}
-\installpagebreakhandler \v!even
+\installpagebreakmethod \v!even
{\page
\doifoddpageelse{\resetcurrentstructuremarkswithpage\page_otr_insert_dummy_page}\donothing}
-\installpagebreakhandler \v!odd
+\installpagebreakmethod \v!odd
{\page
\doifoddpageelse\donothing{\resetcurrentstructuremarkswithpage\page_otr_insert_dummy_page}}
-\installpagebreakhandler \v!quadruple % not yet ok inside columnsets
+\installpagebreakmethod \v!quadruple % not yet ok inside columnsets
{\ifdoublesided
\ifnum\numexpr\realpageno/4\relax=\numexpr\realpageno/2\relax\else
\page_breaks_handle_direct\v!yes
@@ -222,7 +227,7 @@
\fi
\fi}
-\installpagebreakhandler \v!last
+\installpagebreakmethod \v!last
{\page_otr_flush_all_floats
\gotonextpageX % will become \gotonextpage
\relax
@@ -233,7 +238,7 @@
\page_otr_insert_dummy_page}%
\filluparrangedpages}
-\installpagebreakhandler \v!lastpage % handy for backpage preceded by empty pages
+\installpagebreakmethod \v!lastpage % handy for backpage preceded by empty pages
{\page_breaks_handle_direct\v!yes
\ifdoublesided
\page_breaks_handle_direct\v!left
@@ -241,11 +246,14 @@
\page_breaks_handle_direct\v!empty
\fi}
-\installpagebreakhandler \v!start {\global\settrue \c_otr_shipout_enabled}
-\installpagebreakhandler \v!stop {\global\setfalse\c_otr_shipout_enabled}
+\installpagebreakmethod \v!start {\global\settrue \c_otr_shipout_enabled}
+\installpagebreakmethod \v!stop {\global\setfalse\c_otr_shipout_enabled}
% Column breaks.
+\installcorenamespace{columnbreakmethod}
+\installcorenamespace{columnbreaks}
+
\newtoks\everybeforecolumnbreak
\newtoks\everyaftercolumnbreak
@@ -258,25 +266,27 @@
\def\page_breaks_columns_handle_indeed#1%
{\edef\page_breaks_columns_current_option{#1}%
- \ifcsname\??cn:\OTRidentifier:\page_breaks_columns_current_option\endcsname
- \csname\??cn:\OTRidentifier:\page_breaks_columns_current_option\endcsname
- \else\ifcsname\??cn::\page_breaks_columns_current_option\endcsname
- \expandafter\csname\page_breaks_columns_handle\??cn::\page_breaks_columns_current_option\endcsname
+ \ifcsname\??columnbreakmethod\OTRidentifier:\page_breaks_columns_current_option\endcsname
+ \csname\??columnbreakmethod\OTRidentifier:\page_breaks_columns_current_option\endcsname
+ \else\ifcsname\??columnbreaks\page_breaks_columns_current_option\endcsname
+ \expandafter\csname\page_breaks_columns_handle\??columnbreaks\page_breaks_columns_current_option\endcsname
\else
- \csname\??cn:\OTRidentifier:\s!unknown\endcsname
+ \csname\??columnbreakmethod\OTRidentifier:\s!unknown\endcsname
\fi\fi}
\def\page_breaks_columns_handle_direct#1%
- {\csname\??cn:\OTRidentifier:#1\endcsname}
+ {\csname\??columnbreakmethod\OTRidentifier:#1\endcsname}
+
+\unexpanded\def\installcolumnbreakmethod#1#2#3% #1=otr-id #2=tag #3=action
+ {\setvalue{\??columnbreakmethod#1:#2}{#3}}
-\def\installcolumnbreakhandler#1#2#3% #1=otr-id #2=tag #3=action
- {\setvalue{\??cn:#1:#2}{#3}}
+\let\installcolumnbreakhandler\installcolumnbreakmethod % will go
\unexpanded\def\definecolumnbreak
{\dodoubleargument\page_break_columns_define}
\def\page_break_columns_define[#1][#2]%
- {\setvalue{\??cn::#1}{#2}}
+ {\setvalue{\??columnbreaks#1}{#2}}
\unexpanded\def\columnbreak
{\dosingleempty\page_breaks_columns_process}