NEWS
easeling 0.3.1
- Words drawn as separate calls on one baseline now end up in a single
shape, one run per word. gridtext, and through it ggtext, lays out
marked-up titles that way, and every word used to become its own box
sized by our estimate of its width.
- Super- and subscripts stay on the line as shifted runs instead of
breaking it into separate shapes.
- Glyphs (R >= 4.3) keep the positions the graphics engine gave them and
are never merged.
- Nothing is drawn outside the canvas any more. Clip rectangles are
intersected with the device, which
xpd = NA can otherwise exceed, and
raster cells are clipped one by one instead of only as a whole image.
- Rotated text now rotates the shape rather than the text inside it, so
selecting a rotated axis label shows handles that follow the glyphs
instead of an upright box. The text lands in the same place either way.
- An opaque raster cell no longer bleeds half a cell into a transparent
neighbour. The overlap exists so that neighbouring cells paint over
each other's antialiased seams, but nothing is drawn over a transparent
cell, so the bleed ate into it.
width and height take a units argument: "in", "cm", "mm" or
"px" at 96 per inch.
- New
bg argument for a background colour. The default is still
transparent, so the sheet shows through.
- New
symbolfamily argument for the typeface asked for on plotmath
symbols, for when the main font does not cover them.
- New
font_match() reports which font was really measured. Writing a
drawing on a machine that lacks the font it will be opened with is
normal, and systemfonts substitutes without saying so.
easeling 0.3.0
easel_xml() renders plotting code straight to a DrawingML string with no
file involved; easel_dev(file=) remains the file-based device.
easel_size() and easel_dev(dims =, wb =) size the device from real
workbook cell geometry.
- Optional real font metrics through 'systemfonts' (
metrics =), with a
built-in table and user-supplied tables as alternatives.
- Text placement calibrated against Excel's line layout (
text_voff),
with per-character vertical metrics for correct centring.
- Shaped clip paths (R >= 4.1): exact for arbitrary simple regions
(Greiner-Hormann polygon intersection); multi-ring and oversized
regions fall back to their bounding box with a warning.
- Hard-edged alpha and luminance masks render as clips; soft and inverse
masks warn and draw unmasked (not representable in DrawingML).
- Linear and radial gradient fills, including the radial focus position.
- Glyph API support (R >= 4.3, e.g. 'marquee' typeset text) via an
optional 'systemfonts' glyph-to-character mapping.
- Exact
custDash patterns for all line types; evenodd paths keep their
holes; runs on R >= 3.6 with all newer graphics API behind version
guards.