Skip to content

Commit

Permalink
Rename the font to “Rawnd Musmus Duployan”
Browse files Browse the repository at this point in the history
The testing font is now “Ilo Snas Duployan”. “Rawnd musmus ilo snas” is
Chinook Jargon for ‘round cow without rain’, as in a spherical cow in a
vacuum, alluding to this project’s goal of being a technical proof of
concept, and not necessarily a beautiful and perfectly accurate
emulation of handwriting.

The font name suffix “Unjoined” is now “Uncow”, alluding to the Chinook
Jargon word for ‘untied’ and to the “Musmus” earlier in the name.
  • Loading branch information
dscorbett committed Sep 15, 2024
1 parent d6306cf commit 1a6006b
Show file tree
Hide file tree
Showing 7 changed files with 56 additions and 41 deletions.
6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ ifdef NOTO
VERSION = 3.003
override NOTO = --noto
else
FONT_FAMILY_NAME = Duployan$(if $(filter testing,$(CHARSET)), Test)$(if $(UNJOINED), Unjoined)
CHARSET = $(if $(RELEASE),standard,testing)
FONT_FAMILY_NAME = $(if $(filter standard,$(CHARSET)),Rawnd Musmus,Ilo Snas) Duployan$(if $(UNJOINED), Uncow)
CHARSET = standard
VERSION = 1.0
endif
unexport CHARSET
Expand Down Expand Up @@ -105,7 +105,7 @@ $(FONTS): $(INTERMEDIATE_FONTS)
mkdir -p "$$(dirname "$@")"
$(COVERAGE) sources/copy_metrics.py --text $(TALL_TEXT) $@ $(INTERMEDIATE_PREFIX)$@ $(filter-out $(INTERMEDIATE_PREFIX)$@,$^)

%.otf: sources/Duployan.fea $(shell find sources -name '*.py') | dummy-%
%.otf: sources/metadata.fea $(shell find sources -name '*.py') | dummy-%
ifdef COVERAGE
coverage erase
endif
Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@ See the License for the specific language governing permissions and
limitations under the License.
-->

# Duployan font
# Rawnd Musmus Duployan

An OpenType Unicode font for Duployan shorthand.

Duployan is a shorthand used for French, English, Romanian, Chinook Jargon, and
many other languages. This font is a technical proof of concept for all of
Duployan’s features that is also suitable for practical use.
many other languages. Rawnd Musmus Duployan is a technical proof of concept for
all of Duployan’s features that is also suitable for practical use.

## Installation

Expand All @@ -40,7 +40,7 @@ advice about installing the font that might be helpful.

## Features

The font has full support for Unicode Duployan:
Rawnd Musmus Duployan has full support for Unicode Duployan:

* All characters in the Duployan and Shorthand Format Controls blocks
* Contextual forms and cursive joining
Expand All @@ -50,8 +50,8 @@ The font has full support for Unicode Duployan:

There are [multiple variants](docs/variants.md) of the font, including:

* Duployan: the main font
* Duployan Unjoined: the font with cursive joining removed
* Rawnd Musmus Duployan: the main font
* Rawnd Musmus Duployan Uncow: the font with cursive joining removed
* Noto Sans Duployan: the font with modifications for the Noto font project

See [the user guide](docs/user-documentation.md) for more information.
Expand Down
13 changes: 7 additions & 6 deletions docs/developer-documentation.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,10 @@ make

That will produce four fonts:

* fonts/Duployan/unhinted/otf/Duployan-Bold.otf
* fonts/Duployan/unhinted/otf/Duployan-Regular.otf
* fonts/Duployan/unhinted/ttf/Duployan-Bold.ttf
* fonts/Duployan/unhinted/ttf/Duployan-Regular.ttf
* fonts/RawndMusmusDuployan/unhinted/otf/RawndMusmusDuployan-Bold.otf
* fonts/RawndMusmusDuployan/unhinted/otf/RawndMusmusDuployan-Regular.otf
* fonts/RawndMusmusDuployan/unhinted/ttf/RawndMusmusDuployan-Bold.ttf
* fonts/RawndMusmusDuployan/unhinted/ttf/RawndMusmusDuployan-Regular.ttf

See .github/workflows/main.yml for how to get the prerequisites on Ubuntu. The
steps should be analogous on other platforms. Getting FontForge to build
Expand All @@ -58,7 +58,7 @@ To test the fonts, run:
python3 -m venv venv
. venv/bin/activate
pip install --no-deps -r dev-requirements.txt
make check
make CHARSET=testing check
```

Alternatively, push a commit and wait for GitHub Actions to run CI.
Expand All @@ -83,7 +83,8 @@ Makefile has many available targets. The main ones are:
These targets are affected by various variables:

* `CHARSET`: Which [character set variant](variants.md) to build: `standard` for
Duployan, `noto` for Noto Sans Duployan, or `testing` for Duployan Test.
Rawnd Musmus Duployan, `noto` for Noto Sans Duployan, or `testing` for Ilo
Snas Duployan.
* `WEIGHTS`: A space-separated list of weights to build. The only valid weights
are `Regular` and `Bold`. The default is both.
* `SUFFIXES`: A space-separated list of OpenType variants to build. The only
Expand Down
28 changes: 15 additions & 13 deletions docs/user-documentation.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ limitations under the License.

# User documentation

This is an unmodulated (“sans-serif”) font for many Duployan modes, available in
regular and bold weights.
Rawnd Musmus Duployan is an unmodulated (“sans-serif”) font for many Duployan
modes, available in regular and bold weights.

## Installation

Expand All @@ -32,11 +32,12 @@ See the top-level [README.md](../README.md) for installation instructions.

### Custom extensions

This font uses some code point sequences not sanctioned by Unicode to support
some orienting letters needed in Chinook Jargon (and, incidentally, various
other modes). Adding the sequence \<U+034F, U+034F, U+034F> after one of the
letters U+1BC44, U+1BC53, U+1BC5A, U+1BC5B, U+1BC5C, U+1BC5D, U+1BC5E, U+1BC5F,
or U+1BC60 changes it from primary orientation to secondary orientation.
Rawnd Musmus Duployan uses some code point sequences not sanctioned by Unicode
to support some orienting letters needed in Chinook Jargon (and, incidentally,
various other modes). Adding the sequence \<U+034F, U+034F, U+034F> after one of
the letters U+1BC44, U+1BC53, U+1BC5A, U+1BC5B, U+1BC5C, U+1BC5D, U+1BC5E,
U+1BC5F, or U+1BC60 changes it from primary orientation to secondary
orientation.

There are also some private use characters for non-joining characters:

Expand Down Expand Up @@ -135,7 +136,8 @@ OpenType feature 'sups'), and subscripts (with 'subs').

## Languages and modes

The font supports all modes mentioned in the Duployan Unicode proposals:
Rawnd Musmus Duployan supports all modes mentioned in the Duployan Unicode
proposals:

* Duployé’s original mode (French)
* Pernin (English)
Expand All @@ -153,11 +155,11 @@ extensions for Chinook Jargon.

## Technical caveats

The font does not work in all applications. For proper shaping, it requires
HarfBuzz 8.1.0 or later, which is used in all major browsers on all operating
systems, and for most applications on Linux. Even in some applications that use
HarfBuzz, though, it is broken to varying degrees. If the main font does not
work, use Duployan Unjoined as a fallback.
Rawnd Musmus Duployan does not work in all applications. For proper shaping, it
requires HarfBuzz 8.1.0 or later, which is used in all major browsers on all
operating systems, and for most applications on Linux. Even in some applications
that use HarfBuzz, though, it is broken to varying degrees. If the main font
does not work, use Rawnd Musmus Duployan Uncow as a fallback.

In particular, long strings are liable to be rendered wrong. The glyphs will not
be cursively connected but will instead overlap each other in a semilegible
Expand Down
28 changes: 20 additions & 8 deletions docs/variants.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,18 @@ limitations under the License.

# Font variants

The Duployan font family has multiple variants:
The Rawnd Musmus Duployan font family has multiple variants:

* Duployan
* Duployan Unjoined
* Rawnd Musmus Duployan
* Rawnd Musmus Duployan Uncow
* Noto Sans Duployan
* Noto Sans Duployan Unjoined
* Duployan Test
* Duployan Test Unjoined
* Ilo Snas Duployan
* Ilo Snas Duployan Uncow

By default, the font supports cursive joining and contextual forms. The
Unjoined fonts remove those features for compatibility with software in which
the main fonts do not work.
Uncow/Unjoined fonts remove those features for compatibility with software in
which the main fonts do not work.

The Noto variants exclude certain characters which are inappropriate or
unnecessary for inclusion in the Noto project’s Duployan font. The canonical
Expand All @@ -36,8 +36,20 @@ https://github.com/notofonts/duployan/releases) or from [Google Fonts](
https://fonts.google.com/noto/specimen/Noto+Sans+Duployan). Noto Sans Duployan
Unjoined is not an official Noto font.

The “Testing” fonts add some private use characters to make testing more
Ilo Snas Duployan adds some private use characters to make testing more
convenient. They are only appropriate for testing the fonts during development.
Their PUA character assignments are unstable and may change at any time.

Each variant comes in both regular and bold, and both OTF and TTF.

## Future variants

More variants could exist in the future.

* Ilo Komtaks Duployan: The font with arbitrary user customizations, supported
by a CLI with more fine-grained control than [the `CHARSET` variable](
developer-documentation.md#advanced-build-options)
* Ilo Shabon Duployan: If you want to pay me for a custom feature that would
normally be out of scope
* Gol Musmus Duployan: A font with no bugs that works on all platforms; a
perfect simulacrum of handwriting; the ultimate goal
10 changes: 5 additions & 5 deletions docs/width-system.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ limitations under the License.

# The width system

This font encodes Duployan letters’ advance widths not with glyph advances
but with lots of invisible marker glyphs.
Rawnd Musmus Duployan encodes Duployan letters’ advance widths not with glyph
advances but with lots of invisible marker glyphs.
These markers encode each letter’s advance width.
They are added together to find the advance width of each stenogram.

Expand Down Expand Up @@ -73,15 +73,15 @@ That means that, for a normal left-to-right stenogram, the left bound width will
be a small negative number and the right bound width will be a large positive
number, getting larger the more letters there are.

At runtime, the font adds some invisible marker glyphs to the glyph stream
encoding all relevant width information.
At runtime, Rawnd Musmus Duployan adds some invisible marker glyphs to the glyph
stream encoding all relevant width information.
The widths of all the glyphs in a stenogram are added,
and the left and right sums become the left and right bound widths.
A 'dist' lookup adds space as indicated by these marker glyphs.

## Types of width

Four kinds of width are relevant to this font.
Four kinds of width are relevant to Rawnd Musmus Duployan.
Each has a code, which is used in glyph names.

A glyph’s right bound width (`rdx`) is measured from its cursive entry point to
Expand Down
File renamed without changes.

0 comments on commit 1a6006b

Please sign in to comment.