diff options
Diffstat (limited to 'tex/context/base/cont-new.mkiv')
-rw-r--r-- | tex/context/base/cont-new.mkiv | 119 |
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} |