<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body text="#000000" bgcolor="#FFFFFF">
While working on the most recent iteration of my code for floating image insertion, I encountered a situation in which I was unable to determine the correct value of \prevgraf.  It transpired that this was because the previous paragraph had been terminated
 (via a macro) by \endgraf rather than with a blank line, explicit \par or \vskip.  Although Knuth provides \everypar, which can be reliably used to trap
<i>entry </i>to a paragraph, there does not appear (to me, at least) to be any 100% reliable method of trapping exit therefrom, and of course once the next paragraph has been entered, the previous (and desired) value of \prevgraf has been lost.  I wonder if
 anyone has successfully addressed this problem, and found a reliable way of trapping paragraph exits, or equivalently, returns to vertical mode.  Re-defining \endgraf solves the trivial case, but of course one can never know what other synonyms for the primitive
 \par might have been created before one's own code is entered.<br>
<br>
<i>Philip Taylor</i><br>
--------<br>
\count 0 = 0
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px;
      margin-right:0px; -qt-block-indent:0; text-indent:0px;">
\everypar = {\advance \count 0 by 1 }</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px;
      margin-right:0px; -qt-block-indent:0; text-indent:0px;">
\def \par {\primitive \par \message {para.\string ~\the \count 0: \string \prevgraf = \the \prevgraf;}}</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px;
      margin-right:0px; -qt-block-indent:0; text-indent:0px;">
\leavevmode \par</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px;
      margin-right:0px; -qt-block-indent:0; text-indent:0px;">
\leavevmode \vskip 0 pt</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px;
      margin-right:0px; -qt-block-indent:0; text-indent:0px;">
\leavevmode \endgraf</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px;
      margin-right:0px; -qt-block-indent:0; text-indent:0px;">
\leavevmode % only this line is followed by a blank line<br>
<br>
</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px;
      margin-right:0px; -qt-block-indent:0; text-indent:0px;">
\end<br>
</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px;
      margin-right:0px; -qt-block-indent:0; text-indent:0px;">
<br>
-> <br>
</p>
<br>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px;
      margin-right:0px; -qt-block-indent:0; text-indent:0px;">
( para.~1: \prevgraf= 1; para.~2: \prevgraf= 1; para.~4: \prevgraf= 1; [4] )</p>
<br>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px;
      margin-right:0px; -qt-block-indent:0; text-indent:0px;">
i.e., no \prevgraf report for para.~3, the paragraph terminated by \endgraf.<br>
</p>
</body>
</html>