LATEX-L Archives

Mailing list for the LaTeX3 project


Options: Use Classic View

Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Kelly Smith <[log in to unmask]>
Sun, 9 Dec 2018 23:53:44 -0700
text/plain (39 lines)

(long background, short question)

I’ve been looking at the various parameters that are set in accordance with
the document’s main font size. There are at least a dozen dimens and skips
that are set along with the font size, though some classes (and the plain
format) may leave some things unchanged.

I realized that, instead of being set directly by the font size option,
these parameters ought to be managed by templates that control specific
document elements (e.g. \abovedisplayskip and friends should be managed by
equation templates). However, there should be a way to conveniently set
these parameters relative to the main font size. A final consideration is
the fact that there may be cases where a designer would prefer to use exact
values instead.

This also applies to font sizes other than the main point size. It is quite
natural to want to define \large as 1.2 times \normalsize. Defining font
sizes and the several spacing and layout parameters in this relative manner
means that arbitrary font sizes can be used with good results. It also
eliminates the need for providing a bunch of .clo files for a finite set of
font size options.

In trying to allow both relative and exact definitions, I’m providing
templates that take exact values, but I also provide the command
\NormalPointSize, which returns the value of the main font size, and some
commands for scaling a length by some factor. The scaling commands use
floating-point arithmetic and round to some particular precision (e.g.
hundredth, tenth, half, whole point). The rounding helps keep lengths and
skips at “tidy” numbers, but more importantly will (hopefully) reduce the
likelyhood of odd layout issues caused by uncontrolled roundoff error.

My question: is this a good solution/compromise for the issues I described?
It seems reasonable to me, but I fear I’m probably biased :-)