[texhax] Change the definition of LaTeX \oval?

Hironobu YAMASHITA h.y.acetaminophen at gmail.com
Thu Feb 25 00:32:34 CET 2016


Hi Karl,

 > 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,
Hironobu


More information about the texhax mailing list