[texhax] Change the definition of LaTeX \oval?
h.y.acetaminophen at gmail.com
Thu Feb 25 00:32:34 CET 2016
> Could you please describe in a few words what your change is doing?
> I mean, what did the "bad implementation" do before and what you are
> doing differently now?
Original \@ovvert macro contains (similarly for \@ovhorz):
\leaders \vrule \@width \@wholewidth \vfil
This means that the vertical \leaders is always drawn even when the
actual height of \vfil is almost zero; this is what I said "bad
implementation." When we introduce a new flag
\newif\if at ovvline
and use it
\if at ovvline \leaders\vrule \@width \@wholewidth \fi \vfil
then the \leaders is put only if non-zero length for filling is required.
We can tell whether \leaders is required in \@oval macro, based on the
fact that the arguments of \oval can take only discrete values. If two
arguments of \@oval are different from each other, or if \ovdy takes
a positive value, then we have to fill between "lcircle10" characters
(flag = "true"). Otherwise we don't need to fill (flag = "false").
The flag is initialized as "true" for backward compatibility, because
\@ovvert and \@ovhorz can be called outside \@oval (fancybox.sty is a
good example, which defines \fancy@@oval which calls \@ovvert).
Hope this helps,
More information about the texhax