Skip to contents

Determines widths, ascent and descent in inches. Font lookup is performed by 'systemfonts' (so any font registered via systemfonts::register_font(), register_gfont(), or font_set() is found), then Cairo computes the actual metrics. The results are accurate for devices whose rendering finds the same font – this is guaranteed for 'systemfonts'-based devices (ragg, svglite, ggiraph) and true for Cairo devices (cairo_pdf(), ...) when the font is also installed at the system level. For devices with their own font engine (pdf(), png(), ...) the metrics may not match the rendering.

Usage

strings_sizes(
  x,
  fontname = "sans",
  fontsize = 10,
  bold = FALSE,
  italic = FALSE
)

Arguments

x

A character vector of strings to measure. All arguments are vectorized and recycled to match the length of x.

fontname

A character vector specifying the font family name (e.g., "sans", "serif", "mono"). Default is "sans". This argument is vectorized.

fontsize

A numeric vector specifying the font size in points. Default is 10. This argument is vectorized.

bold

A logical vector indicating whether the text should be bold. Default is FALSE. This argument is vectorized.

italic

A logical vector indicating whether the text should be italic. Default is FALSE. This argument is vectorized.

See also

Other functions for font metrics: m_str_extents(), str_metrics()

Examples

strings_sizes(letters)
#>         width     ascent     descent
#> 1  0.08511013 0.07778592 0.001966688
#> 2  0.08816189 0.10552300 0.001966688
#> 3  0.07636176 0.07778592 0.001966688
#> 4  0.08816189 0.10552300 0.001966688
#> 5  0.08544922 0.07778592 0.001966688
#> 6  0.04889594 0.10552300 0.000000000
#> 7  0.08816189 0.07778592 0.028889974
#> 8  0.08802626 0.10552300 0.000000000
#> 9  0.03858778 0.10552300 0.000000000
#> 10 0.03858778 0.10552300 0.028889974
#> 11 0.08043077 0.10552300 0.000000000
#> 12 0.03858778 0.10552300 0.000000000
#> 13 0.13529460 0.07778592 0.000000000
#> 14 0.08802626 0.07778592 0.000000000
#> 15 0.08497450 0.07778592 0.001966688
#> 16 0.08816189 0.07778592 0.028889974
#> 17 0.08816189 0.07778592 0.028889974
#> 18 0.05710178 0.07778592 0.000000000
#> 19 0.07236057 0.07778592 0.001966688
#> 20 0.05445692 0.09752062 0.000000000
#> 21 0.08802626 0.07778592 0.001966688
#> 22 0.08219401 0.07595486 0.000000000
#> 23 0.11359321 0.07595486 0.000000000
#> 24 0.08219401 0.07595486 0.000000000
#> 25 0.08219401 0.07595486 0.028889974
#> 26 0.07290310 0.07595486 0.000000000
strings_sizes("Hello World!", bold = TRUE, italic = FALSE,
  fontname = "sans", fontsize = 12)
#>      width    ascent     descent
#> 1 1.172282 0.1266276 0.002360026