Copyright (C) 2017-2023, P. Baudin (https://github.com/pbaudin/ACSF)
The cursive style offered by most of these fonts should delight all cross-stitch lovers. If anyone needs to be convinced, they just have to take a look at the Advanced Cross-Stitch Font Gallery or perform a live test.
The fonts are incomplete but contains all the letters used in the various Latin language alphabets (including diacritics), Czech letters with inverted hat, the German eszett ligature, and letters specific to certain Scandinavian alphabets.
At the start of their design (in 2017), the contextual features of the TrueType
and OpenType
fonts (such as calt
, cimf
or ccmp
) used for ligatures was not supported by many software, including text editors and web browsers. Thanks to LibreOffice
editors and web browsers Firefox
and Chrome
that support these fonts from the beginning (the given pdf
files given as examples were edited with LibreOffice
Writer
).
These Advanced Cross-Stitch Fonts are published with a license that allows you to use the cross-stitch charts that you produce for any purpose, even commercially.
Feel free to download the latest release of the Advanced Cross-Stitch Fonts
from this GitHub repository (recommended) or dafont.com.
A demonstration tool is available inside this GitHub repository.
It allows you to create the cross-stitch chart of your own text from a web browser like Firefox
or Chrome
.
The tool can be used to get a quick look at the font faces and their ligatures thus designed.
Be carefull when applying color attributes to some characters (as in the recipe example), that brakes the eventual ligature existing at their beginning and at their end.
Have fun with these Advanced Cross-Stitch Fonts and the live test tool!
These special characters are part of all Advanced Cross-Stitch Fonts.
~
: 1pt space_
: 20pt of cross stitches$
: cuts a ligature (including kerning). For the rock'n roll fontFestive
, inserting one or more '$' at the begining of words may change their layout. You might have a look at the wordrose
into this french poem.
Category | Characters |
---|---|
Maths | 0 1 2 3 4 5 6 7 8 9 ° / + - * % |
Uppercase | A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
Lowercase | a b c d e f g h i j k l m n o p q r s t u v w x y z |
Circumflex | Â Ê Î Ô Û â ê î ô û |
Acute | Á É Í Ó Ú á é í ó ú |
Grave | À È Ì Ò Ù à è ì ò ù |
Dieris | Ä Ë Ï Ö Ü Ÿ ä ï ë ö ü ÿ |
Tilde | Ã Õ Ñ ã ñ õ |
Caron | Č Š Ž č š ž |
Misc | Å ẞ Ç Ø Æ Œ å ß ç æ œ ø |
Other | ¿ ? ¡ ! , ; . : ' # |
A web site provides from several years a Cross Stitch Writing
tool to make a charted design out of your own text.
Some of the proposed fonts attracted my attention because most of their letters are joinable, but some letters with the usual diacritics of Latin language alphabets are missing.
So, even in English, it is not possible to get the chart of the crème brûlée recipe from these fonts!
The last point, but not the least, concerns the terms of use of that tool. They do not allow you to distribute the charts that you produced with this tool to your friends, even for free!
That was the starting point of this project. The design of cursive cross-stitch fonts without such a restriction would delight most of the cross-stitch lovers.
The first fonts are derived from the volume 1 of the book Cross stitch letters BIBLE des lettres au point de croix
(authored by Valérie LEJEUNE - EAN 9782756503059) which references many alphabet primers (about 800).
Since all of them were published before 1930, these patterns are in the public domain.
In order to share this work (done from our common cultural heritage) with everyone, the SIL Open Font License version 1.1 (OFL 1.1) applies to the Advanced Cross-Stitch Fonts. From such a license, you can use the charts that you will produced with these fonts for any purpose, even commercially.
A cursive font requires to design a lot of glyphs for ligatures, and this is especially true the smaller the font size (i.e. lowercase from 4 to 5 points high). So it is recommended to use a tool to create such a font.
The first designed font was build in scripting FontForge
with the Python 2
API in 2017.
Python
is a dynamically typed language since the types are defined from values obtained at runtime.
That allows rapid code development.
With this software, it was possible to design the two first fonts involving only ligature pairs and kerning pairs, but that is too restrictive.
To handle more complex fonts, it is necessary to use contextual TrueType
(or OpenType
) features.
A new version of that software was written in OCaml
to manage these features in using
the Lymp
library allowing you to use Python
functions and objects of FontForge
API from OCaml
world.
That software version contains an OCaml
layer performing the bindings to FontForge
.
The FontForge
API imposes type constraints between the arguments of the functions managing the contextual font tables.
In order to offer an OCaml
API as close as the FontForge
API, the use of Generalized Algebraic Data Type of OCaml
was seen as an opportunity.
That has not been so much used due to some bugs in the Lymp
library raised by the hudge number of calls from OCaml
to Python
.
A work around has been found in generating an intermediate file (specifying the OpenType Feature Data
to use in a .fea
file) to build the final fonts from FontForge Python
API and the OCaml
bindings.
In the meantime, Fontforge
API migrated to Python 3
and the Lymp
library was no more able to perform the binding with newer versions of OCaml
compiler and various libraries.
Nevertheless, with few effort the Lymp
library was easily replaced by the PyMl
library.
Then, the OCaml
bindings of the FontForge
API have been extracted from the developped software and are available from the fontforge-of-ocaml
library.