plottery_fonts 0.16.0

Plotter fonts bundled with Plottery: single-stroke SVG fonts, single-line TTFs and OpenType-SVG fonts, with their licences.
Documentation

plottery_fonts

65 single-line fonts for pen plotters, laser cutters, CNC engravers and anything else that draws strokes instead of filling shapes. All of them are free to redistribute, the licences and credits ship with the crate.

The crate is pure data with no dependencies: every font is embedded with include_bytes! and exposed through the BundledFont enum. It is made for Plottery, but nothing in it depends on Plottery.

Usage with Plottery

plottery_lib re-exports this crate and turns the fonts into geometry:

use plottery_lib::*;

let font = Font::bundled(BundledFont::HersheySans);
let layer = Text::new("Hello plotter", &font)
    .size(2.0) // em height in cm
    .to_layer(SampleSettings::default())?;
layer.write_svg("hello.svg".into())?;

Usage without Plottery

Pick a font and feed the bytes to your own parser. kind() tells you what the bytes are:

use plottery_fonts::{BundledFont, FontKind};

let font = BundledFont::ReliefSingleLine;
let bytes: &[u8] = font.bytes();

match font.kind() {
    FontKind::Stroke => {}     // SVG 1.1 font: <glyph d="..."> strokes, plus <hkern> pairs
    FontKind::SingleLine => {} // TrueType whose contours are strokes: do not close them
    FontKind::Outline => {}    // TTF/OTF, the strokes live in its OpenType `SVG ` table
}

for font in BundledFont::ALL {
    let credit = font.credit();
    println!("{} by {} ({})", font.family(), credit.author, credit.licence.name());
}

file_name() gives the original file name, credit() the author, source URL and licence, and Licence::text() the full licence text for your "about" screen.

Licences

Everything is under the SIL Open Font License 1.1 or the Hershey font licence. Both allow commercial use and bundling. The Hershey licence asks that its acknowledgement travels with the data, so keep LICENSES/ (or Licence::Hershey.text()) in anything you ship. Per-font credits are in LICENSES/CREDITS.md.

Fonts

Hershey

The classic plotter fonts by Dr. A. V. Hershey, SVG conversion by Windell H. Oskay. Latin-1 charset.

Font Sample
HersheyGothicEnglish Hershey Gothic English
HersheyGothicGerman Hershey Gothic German
HersheyGothicItalian Hershey Gothic Italian
HersheySans Hershey Sans 1-stroke
HersheySansMedium Hershey Sans medium
HersheyScript Hershey Script 1-stroke
HersheyScriptMedium Hershey Script medium
HersheySerif Hershey Serif medium
HersheySerifItalic Hershey Serif medium italic
HersheySerifBold Hershey Serif bold
HersheySerifBoldItalic Hershey Serif bold italic

Hershey extras

More Hershey sets converted by Shriinivas. Greek, Japanese and the markers map onto Latin letters, the symbol fonts (astrology, math, meteorology, music, symbolic) keep plain letters and put their symbols on digits and punctuation, Cyrillic uses real Cyrillic code points.

Font Sample
HersheySansBold Hershey-Sans bold
HersheyScriptAlt Hershey-Script 1-stroke (alt)
HersheyAstrology Hershey-Astrology
HersheyCyrillic Hershey-Cyrillic
HersheyGreek Hershey-Greek 1-stroke
HersheyGreekMedium Hershey-Greek medium
HersheyJapanese Hershey-Japanese
HersheyMarkers Hershey-Markers
HersheyMathLower Hershey-Math (lower)
HersheyMathUpper Hershey-Math (upper)
HersheyMeteorology Hershey-Meteorology
HersheyMusic Hershey-Music
HersheySymbolic Hershey-Symbolic

EMS

Fonts drawn for plotters by Sheldon B. Michaels and Windell H. Oskay at Evil Mad Scientist Laboratories.

Font Sample
EmsAllure EMS Allure
EmsBird EMS Bird
EmsBirdSwashCaps EMS Bird Swash Caps
EmsBrush EMS Brush
EmsCapitol EMS Capitol
EmsCasualHand EMS Casual Hand
EmsDecorousScript EMS Decorous Script
EmsDelight EMS Delight
EmsDelightSwashCaps EMS Delight Swash Caps
EmsElfin EMS Elfin
EmsFelix EMS Felix
EmsHerculean EMS Herculean
EmsInvite EMS Invite
EmsLeague EMS League
EmsLittlePrincess EMS Little Princess
EmsMistyNight EMS Misty Night
EmsNeato EMS Neato
EmsNixish EMS Nixish
EmsNixishItalic EMS Nixish Italic
EmsOsmotron EMS Osmotron
EmsPancakes EMS Pancakes
EmsPepita EMS Pepita
EmsQwandry EMS Qwandry
EmsReadability EMS Readability
EmsReadabilityItalic EMS Readability Italic
EmsSociety EMS Society
EmsSwiss EMS Swiss
EmsTech EMS Tech
TwinSans Twin Sans

Cutlings

Single-stroke fonts by Ellen Wasbo.

Font Sample
CutlingsDualis CutlingsDualis
CutlingsGeometric CutlingsGeometric
CutlingsGeometricRound CutlingsGeometricRound
CutlingsPluralis CutlingsPluralis
CutlingsSingularis CutlingsSingularis

Custom

Stroke fonts by Shriinivas, derived from Square Grotesk and Pinyon Script.

Font Sample
CustomScript Custom-Script
CustomSquare Custom-Square Normal
CustomSquareItalic Custom-Square Italic

Single-line TrueType and OpenType-SVG

Real font files with proper kerning. Relief stores its strokes as open TrueType contours, Mistral and Zniko keep them in an OpenType SVG table.

Font Sample
ReliefSingleLine Relief SingleLine
ReliefSingleLineOrnament Relief SingleLine Ornament
MistralSingleLine Mistral SingleLine OTF-SVG Regular
Zniko ZnikoSLSVGinOT-8