%D \module %D [ file=cont-new, %D version=1995.10.10, %D title=\CONTEXT\ Miscellaneous Macros, %D subtitle=New Macros, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \newcontextversion{2014.10.08 00:33} %D This file is loaded at runtime, thereby providing an excellent place for %D hacks, patches, extensions and new features. \unprotect % \writestatus\m!system{beware: some patches loaded from cont-new.mkiv} % \attribute152\zerocount : marks ... lots of sweeps so best early in list %D Maybe: % \appendtoks % \inheritmaintextcolor % \to \everybeforenoteinsert % \appendtoks % \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} \unexpanded\def\tightvtop{\dowithnextbox{\ht\nextbox\zeropoint\box\nextbox}\vtop} %D Needs some work: \unexpanded\def\startgridcorrection {\dosingleempty\spac_grid_correction_start} \def\spac_grid_correction_start[#1]% {\ifgridsnapping \snaptogrid[#1]\vbox\bgroup \else \startbaselinecorrection \fi} \unexpanded\def\stopgridcorrection {\ifgridsnapping \egroup \else \stopbaselinecorrection \fi} \unexpanded\def\checkgridsnapping {\lineskip\ifgridsnapping\zeropoint\else\normallineskip\fi} %D Probably obsolete: \unexpanded\def\startcolumnmakeup % don't change {\bgroup \getrawnoflines\textheight % raw as we cna have topskip \setbox\scratchbox\vbox to \dimexpr\noflines\lineheight-\lineheight+\topskip\relax \bgroup \forgetall} \unexpanded\def\stopcolumnmakeup {\egroup \dp\scratchbox\zeropoint \wd\scratchbox\textwidth \box\scratchbox \egroup \page_otr_command_synchronize_hsize} %D Till we fixed all styles: \let\\=\crlf \protect \endinput