r3tex

custom LuaTeX format
git clone git://git.rr3.xyz/r3tex
Log | Files | Refs | README | LICENSE

commit cc489217aa978f84372c14c74c55468cdf18f5d9
parent 770c085f3614b37e446791da65ab5c0cd52608a8
Author: robert <robertrussell.72001@gmail.com>
Date:   Sun, 16 Jan 2022 09:23:07 -0800

Add event for \par

Diffstat:
Mparam.tex | 2++
Mtext.tex | 41++++++++++++++++++++++++-----------------
2 files changed, 26 insertions(+), 17 deletions(-)

diff --git a/param.tex b/param.tex @@ -223,6 +223,8 @@ \newskip\normalbaselineskip \newskip\normallineskip \newdimen\normallineskiplimit +\newskip\normalparskip +\newskip\normalparindent \newdimen\lineht \newdimen\linedp diff --git a/text.tex b/text.tex @@ -27,23 +27,30 @@ \def\constlineskip{\afterassignment\@constlineskip \dimenA=} \def\offinterlineskip{\constlineskip0pt\relax} -% Parskip control -% TODO: \par should be an event, and this should be accordingly rewritten -\newskip\@oldparskip -\def\tmpparskip{% - \ifx\@oldpar\@undefined - \glet\@oldpar=\par - \g\@oldparskip=\parskip - \gdef\@restorepar{% - \g\parskip=\@oldparskip - \glet\par=\@oldpar - \glet\@oldpar=\@undefined - }% - \gdef\par{\ifhmode \@restorepar\ea\par \fi}% - \fi - \g\parskip=% -} -\def\noparskip{\tmpparskip0pt } +% We often need to do something after the next \par. Redefining \par to trigger +% an event handles these situations in a general way. +\defevent[par] +\def\par{\event[par]\endgraf} + +% \parskip control: use \tmpparskip to change the \parskip until the next \par; +% use \tmpparskipw to change the \parskip until after the next paragraph (in +% horizontal mode). +\def\@restoreparskip{\g\parskip=\normalparskip \glet\@tmpparskip\relax} +\def\@restoreparskipweak{\ifhmode \@restoreparskip \fi} +\def\tmpparskip{\glet\@tmpparskip\@restoreparskip \g\parskip=} +\def\tmpparskipw{\glet\@tmpparskip\@restoreparskipweak \g\parskip=} +\let\@tmpparskip=\relax +\addhook[par]\@tmpparskip + +% \parindent control: use \tmpparindent to change the \parindent until the next +% \par; use \tmpparindentw to change the \parindent until after the next +% paragraph (in horizontal mode). +\def\@restoreparindent{\g\parindent=\normalparindent \glet\@tmpparindent\relax} +\def\@restoreparindentweak{\ifhmode \@restoreparindent \fi} +\def\tmpparindent{\glet\@tmpparindent\@restoreparindent \g\parindent=} +\def\tmpparindentw{\glet\@tmpparindent\@restoreparindentweak \g\parindent=} +\let\@tmpparindent=\relax +\addhook[par]\@tmpparindent % Unbreakable glue \def\topglue{\nointerlineskip \vglue-\topskip \vglue}