[tex-live] Possibility to enhance registers
Dan Luecking
dluecking at sbcglobal.net
Thu Sep 27 00:21:11 CEST 2012
On Tue Sep 25 2012 at 08:55:05 CEST, Robin Fairbairns
(<Robin.Fairbairns at cl.cam.ac.uk>) wrote:
> > What about to change \unpenalty
> > with \ifvmode\else\expandafter\unpenalty\fi
> > in \<http://tug.org/mailman/listinfo/tex-live>mtc at BBR definition?
>
>either would deal with the present case; it would be good to know if
>there were adverse consequences, for future reference.
>
>we need an analysis of what the author actually thought he was doing by
>saying \unpenalty before adding a penalty of 10000 using \linebreak
I don't know what he actuall intended, but what the code
_does_ is:
1. When \centering is not in effect:
\unpenalty removes the negative penalty placed by \\,
cancelling the line break. Then, \nopagebreak[4] is
essentially \vadjust{\nobreak}. This prevents a break
between a previously placed rule across the page an
anything that might follow.
Oddly enough this makes the \\ more-or-less unnecessary
as well as all the other elements on this code:
(*) \nopagebreak[4]\null\leavevmode\mtc at zrule\\\mtc at BBR
2. In the presence of \centering:
Then \\ issues a \par and \mtc at BBR happens in vertical mode,
leading to the error.
The entire line of code (*) above doesn't place any penalties
except \\. It is quite silly to place this penalty and then
remove it. It is also silly to place a column-wide rule, than
add a bunch of zero-width invisible stuff after it.
I would replace all of (*) with \par\nobreak. This line of code
and slight variants of it, occurs 9 times in minitoc.sty. What
are macros for?
Dan
Daniel H. Luecking
Department of Mathematical Sciences
Fayetteville, Arkansas
http://www-cs-faculty.stanford.edu/~knuth/iaq.html
More information about the tex-live
mailing list