[texhax] Displaying the \current value of \prevgraf in the log file
Paul Isambert
zappathustra at free.fr
Mon Nov 14 09:14:46 CET 2011
Le 13/11/2011 20:01, Philip TAYLOR a écrit :
>
>
> Paul Isambert wrote:
>
>> I don't know about \vadjust injection, but \showlists doesn mention
>> prevgraf. For instance "abc\par\showlists\bye" produces:
>>
>> ### vertical mode entered at line 0
>> ### current page:
>> ... blah blah ...
>> total height 10.0
>> goal height 643.20255
>> prevdepth 0.0, prevgraf 1 line
>
> Oh ... I tried something similar, and saw
> prevdepth but no prevgraf -- let me try
> your example and see how it differs ...
>
> Yes, you're quite right : \showlists after
> a non-empty paragraph and a \par does indeed
> show the current value of \prevgraf. Unfortunately
> it doesn't help me to find the value at a \vadjust !
Where in the \vadjust?
abc\par abc\vadjust{\showlists}\bye % No prevgraf
abc\par abc\vadjust{abc\showlists}\bye % No prevgraf
abc\par abc\vadjust{abc\par\showlists}\bye % Prevgraf, but of course, of
the first paragraph in the \vadjust
But I suppose you're interested in the the first line?
Apparently, \showlists displays prevgraf when non-zero, i.e. only in
vmode after a paragraph (which is also how I understand the code from
tex.web).
So, at the beginning of a \vadjust (i.e. before a paragraph), even if
you retrieved \prevgraf, it would be 0, as it is in horizontal mode or
in vertical mode in an empty list. Your problem is thus rather to make
\prevgraf survive a little bit longer; apart from hacking \par to
something like \def\par{\endgraf\mycount=\prevgraf}, I can't see a
solution. Unless you're willing to go LuaTeX, in which case the \par
hack can be made a little bit more elegant (and less dangerous) with:
callback.register("post_linebreak_filter",
function (h)
tex.count.mycount = tex.nest[tex.nest.ptr].prevgraf
return h
end)
Best,
Paul
More information about the texhax
mailing list