summaryrefslogtreecommitdiff
path: root/tex/context/base/cont-new.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/cont-new.mkiv')
-rw-r--r--tex/context/base/cont-new.mkiv119
1 files changed, 118 insertions, 1 deletions
diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv
index 0083e7aee..c58ec05bd 100644
--- a/tex/context/base/cont-new.mkiv
+++ b/tex/context/base/cont-new.mkiv
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2014.09.27 14:46}
+\newcontextversion{2014.10.07 11:14}
%D This file is loaded at runtime, thereby providing an excellent place for
%D hacks, patches, extensions and new features.
@@ -32,6 +32,123 @@
% \inheritmaintextcolor
% \to \everymargindatacontent
+% This is experimental; if this changes we need to adapt the mb-mp
+% style too. It's not in the core yet.
+
+% \def\ActionY{\blank\analyzenofparlines{\inleftmargin{\analyzednofparlines}}}
+% \def\ActionN{\analyzenofparlines{\inleftmargin{\analyzednofparlines}}}
+%
+% \saveparnumber\ifnum\nofparlines<2 \ActionY\else\ActionN\fi 1.1 nop \crlf
+% 1.2 nop \par
+% \saveparnumber\ifnum\nofparlines<2 \ActionY\else\ActionN\fi 2.1 nop \par
+% \saveparnumber\ifnum\nofparlines<2 \ActionY\else\ActionN\fi 3.1 yes \crlf
+% 3.2 nop \crlf
+% 3.3 nop \par
+% \saveparnumber\ifnum\nofparlines<2 \ActionY\else\ActionN\fi 4.1 nop \crlf
+% 4.2 nop \par
+% \saveparnumber\ifnum\nofparlines<2 \ActionY\else\ActionN\fi 5.1 nop \par
+% \saveparnumber\ifnum\nofparlines<2 \ActionY\else\ActionN\fi 6.1 yes \par
+%
+% \saveparnumber\doifelselessparlines {2}\ActionY\ActionN 1.1 nop \crlf
+% 1.2 nop \par
+% \saveparnumber\doifelselessparlines {2}\ActionY\ActionN 2.1 nop \par
+% \saveparnumber\doifelselessparlines {2}\ActionY\ActionN 3.1 yes \crlf
+% 3.2 nop \crlf
+% 3.3 nop \par
+% \saveparnumber\doifelselessparlines {2}\ActionY\ActionN 4.1 nop \crlf
+% 4.2 nop \par
+% \saveparnumber\doifelselessparlines {2}\ActionY\ActionN 5.1 nop \par
+% \saveparnumber\doifelselessparlines {2}\ActionY\ActionN 6.1 yes \par
+
+\newcount \c_typo_par_current
+\newcount \c_typo_par_saved
+\newconstant\c_typo_par_state
+\newconstant\c_typo_par_lines
+\newconstant\c_typo_par_criterium
+
+\appendtoks
+ \advance\c_typo_par_current\plusone % local
+\to \everypar
+
+\unexpanded\def\saveparnumber
+ {\c_typo_par_saved\tagparcounter} % local
+
+\def\savedparnumber {\number\c_typo_par_saved}
+\def\currentparnumber{\number\c_typo_par_current}
+
+\unexpanded\def\nofparlines
+ {\numexpr
+ \ifhmode
+ \maxdimen
+ \else\ifnum\c_typo_par_current=\c_typo_par_current
+ % we have not yet started a new one
+ \prevgraf
+ \else\ifnum\c_typo_par_current>\c_typo_par_current
+ % we are somewhere in the future
+ \maxdimen
+ \else
+ \zerocount
+ \fi\fi\fi
+ \relax}
+
+\unexpanded\def\setnofparlinesstate
+ {\c_typo_par_state\numexpr
+ \ifhmode
+ \zerocount
+ \else\ifnum\c_typo_par_current=\c_typo_par_current
+ % we have not yet started a new one
+ \plusone
+ \else\ifnum\c_typo_par_current>\c_typo_par_current
+ % we are somewhere in the future
+ \plustwo
+ \else
+ \plusthree
+ \fi\fi\fi
+ \relax}
+
+\unexpanded\def\shownofparlines
+ {\dontleavehmode\hbox\bgroup
+ \infofont
+ [%
+ \number\c_typo_par_current:\number\c_typo_par_current:\space
+ \ifcase\c_typo_par_state
+ unknown%
+ \or
+ \ifnum\c_typo_par_lines<\c_typo_par_criterium
+ \darkred
+ \number\c_typo_par_lines<\number\c_typo_par_criterium
+ \else
+ \darkgreen
+ \number\c_typo_par_lines>=\number\c_typo_par_criterium
+ \fi
+ \or
+ ahead%
+ \else
+ behind%
+ \fi
+ ]%
+ \egroup}
+
+\unexpanded\def\doifelselessparlines#1%
+ {\c_typo_par_criterium#1\relax
+ \c_typo_par_lines\prevgraf
+ \setnofparlinesstate
+ \ifnum\nofparlines<#1\relax
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+\unexpanded\def\doiflessparlines#1%
+ {\c_typo_par_criterium#1\relax
+ \c_typo_par_lines\prevgraf
+ \setnofparlinesstate
+ \ifnum\nofparlines<#1\relax
+ \expandafter\firstofoneargument
+ \else
+ \expandafter\gobbleoneargument
+ \fi}
+
%D Maybe:
\unexpanded\def\tightvbox{\dowithnextbox{\dp\nextbox\zeropoint\box\nextbox}\vbox}