Main index Placemat: main guide About author

Glasses placemat: obscure parameters

Julian D. A. Wiseman

Contents: Publication history; Introduction; Type sizes and controls (VerticalMiddling…, Type sizes); CirclesReplaceCircletext.

Publication history: only here. Usual disclaimer and copyright terms apply.


Introduction

There are some parameters that, in practice, would (or should) never be changed by non-expert users of the the placemat program. To avoid excessive cluttering of the main guide, these are described here.

Type sizes and controls

/MatchNone
/MatchNone
/MatchRow
/MatchRow
/MatchString
/MatchString

VerticalMiddling…

◊ The parameters VerticalMiddling… control the vertical alignment of the Titles, and when OverlapSubtitlesOnTitles is true, of Subtitles. Older versions of this code centred separately each title (and also each overlapped subtitle). This is now done by setting VerticalMiddlingTitles to /MatchNone (see diagram on right, the Titles’ baselines being shown in green). Alternatively the baselines (pedantically: as a proportion of the relevant font size) can be jointly computed with those of some other Titles (/MatchRow, /MatchPage, /MatchAll), or set to a fixed string (VerticalMiddlingStringTitles, defaulting to the port-friendly 4-free 5-free descender-free “08W31T67G92F”). Particularly if there are descenders or accents (especially upper-case accents as might happen in a Burgundy tasting including Échezeaux or Épineuil), it is worth setting VerticalMiddling to a value other than /MatchNone.

There is also the technical and usually irrelevant parameter VerticalMiddlingIncludeBaselineTitles. When computing the middle for a string or collection of strings, it computes the highest of the tops, and lowest of the the bottoms. If these fail to straddle zero, as would happen if a Title/Subtitle were (-), and VerticalMiddlingIncludeBaselineTitles is true, then the nearer boundary is deemed moved to the baseline.

◊ Similar parameters control the vertical placement of overlapped Subtitles: VerticalMiddlingSubtitles, VerticalMiddlingStringSubtitles, and VerticalMiddlingIncludeBaselineSubtitles.

Type sizes

The type sizes of Titles and Subtitles is controlled by a two-stage process. First, one at a time, various maximum-size constraints are applied. Second, all the circles are considered together, and various subsets are required to be the same size, that is, the size of the smallest in that subset.

One-at-a-time constraints include the following.

In general, it looks nicer if most of the Titles (and likewise Subtitles) have matching type sizes. Which of Titles (Subtitles) are the same size is controlled by SameSizeTitlesIfAllOf (SameSizeSubtitlesIfAllOf), being an array of ‘condition flags’, the items of Titles (Subtitles) being the same size if all the conditions are met. So an empty set of conditions is always true: all the Titles (Subtitles) would then be the same size. Permitted conditions are as follows.

How big is the circle text? In points, not bigger than CircletextMaxFontSizeAbsolute; and as a proportion of the circles’ radius not bigger than CircletextMaxFontSizeProportionRadius. If, in a font size equal to the lesser of these two, a particular item in Circlearrays is too long to fit at least CircletextsMinCopies times, then the font size is reduced for that circle such that it does. The number of copies is also bounded above by CircletextsMaxCopies; and the minimum separation (measured in space-widths) between the items of the sub-arrays of Circlearrays is CircletextsMinNumSpacesBetween.

CirclesReplaceCircletext

◊ Following a suggestion of the author’s father, /CirclesReplaceCircletext true def causes Circlearrays to be ignored, the glass places instead being bounded by a circle of width CirclesLineWidth, and filled according to the PostScript code in CirclesFillColour. But, in the author’s judgement, use of Circlearrays is generally more pleasing to the eye.


Main index Top About author