A Font for the Tahano Hikamu Writing System Enabled with SIL Graphite
Last modified: Carsten Becker, 24 August 2012
christianus_blah_._all_this_obfuscation_tsk_tsk_pistorius_removethis_@_and_this_too_gmail_this_as_well_._removethis_com
CC-BY-NC-SA 3.0 License
This is a True Type font for my fictional writing system thno hikmu Tahano Hikamu, which was inspired by writing systems of the south-eastern part of the Asian continent, especially Brahmic scripts. I made the font in order to be able to typeset things in my script on the computer as well so that it would not be necessary to use pen, paper, and a scanner every time I want to produce something digital in it.
Tagāti Book G has been released under a Creative Commons license that grants you a lot of freedom because according to my own experience, people involved in the fictional language community on the internet are always very curious about how to make fonts for their own fictional languages and their respective writing systems. Since font-making is a very complex task, I hope to provide a useful insight into how I made this font by fully disclosing its sources. My own design and coding are certainly far from perfect, so if there is anything to improve or optimize, you're invited to help correcting those issues. The sources can be found on Github, http://www.github.com/carbeck/tagatibookg.
Tahano Hikamu is a very complex script even for a Brahmic-inspired abugida in that there is a lot of diacritic stacking and character reordering involved, occasionally also against the primary left-to-right writing direction. The decision to program those complex features into the TTF files with Graphite was made because earlier attempts with just OpenType – which is far more widespread – were unsatisfying, since it would be too restricted in its support of features, especially for a fictional script that is not just a mere rip-off of an existing one.
Note that in order to see all characters in this file correctly, you need to use a browser that supports @font-face and the Tagāti Book G TTF files need to be located in the same directory as this file; alternatively, you need to have the TTF files provided by this font package installed wherever your operating system normally keeps fonts. Furthermore, you need a browser that supports SIL Graphite (to date only Mozilla Firefox from version 11 on), which may need to be activated first – SIL International provides a description for how to do that in Mozilla Firefox.
Tagāti Book G (ab)uses much of the “Latin-1” area in Unicode to make input with a regular Western keyboard as easy as possible. How the script works is described in detail in the tahanohikamu.html file. The following charts give the characters in both hikamu ‘round’ (Regular) and hinyan ‘angular’ (Italic) style – if you have the fonts installed or can dynamically load them from your browser.
Character | Code | Name | Normal | Key | |
---|---|---|---|---|---|
* | * | u+002a | Dummy Consonant | * | * |
C | C | u+0043 | Ayeri Supplemental Letter Cha | C | C |
G | G | u+0047 | Ayeri Supplemental Letter Gha | G | G |
N | N | u+004e | Ayeri Letter Nga | N | N |
S | S | u+0053 | Ayeri Supplemental Letter Sha | S | S |
T | T | u+0054 | Ayeri Supplemental Letter Tsa | T | T |
X | X | u+0058 | Ayeri Supplemental Letter Kha | X | X |
Z | Z | u+005a | Ayeri Supplemental Letter Zha | Z | Z |
b | b | u+0062 | Ayeri Letter Ba | b | b |
d | d | u+0064 | Ayeri Letter Da | d | d |
f | f | u+0066 | Ayeri Supplemental Letter Fa | f | f |
g | g | u+0067 | Ayeri Letter Ga | g | g |
h | h | u+0068 | Ayeri Letter Ha | h | h |
k | k | u+006b | Ayeri Letter Ka | k | k |
l | l | u+006c | Ayeri Letter La | l | l |
m | m | u+006d | Ayeri Letter Ma | m | m |
n | n | u+006e | Ayeri Letter Na | n | n |
p | p | u+0070 | Ayeri Letter Pa | p | p |
q | q | u+0071 | Ayeri Supplemental Letter Kwa | q | q |
r | r | u+0072 | Ayeri Letter Ra | r | r |
s | s | u+0073 | Ayeri Letter Sa | s | s |
t | t | u+0074 | Ayeri Letter Ta | t | t |
v | v | u+0076 | Ayeri Letter Va | v | v |
w | w | u+0077 | Ayeri Supplemental Letter Wa | w | w |
x | x | u+0078 | Ayeri Supplemental Letter Ksa | x | x |
y | y | u+0079 | Ayeri Letter Ya | y | y |
z | z | u+007a | Ayeri Supplemental Letter Za | z | z |
Ñ | Ñ | u+00d1 | Ayeri Letter Short Na | Ñ | |
ñ | ñ | u+00f1 | Ayeri Letter Ligated Na | ñ | |
ʔ | ʔ | u+0294 | Ayeri Letter Glottal Stop and Vowel Carrier | ʔ |
Character | Code | Name | Normal | Key | |
---|---|---|---|---|---|
a | a | u+0061 | Ayeri Top Vowel A | a | a |
e | e | u+0065 | Ayeri Top Vowel E | e | e |
i | i | u+0069 | Ayeri Top Vowel I | i | i |
o | o | u+006f | Ayeri Top Vowel O | o | o |
u | u | u+0075 | Ayeri Top Vowel U | u | u |
ə | ə | u+0259 | Ayeri Vowel Top Schwa | ə | |
ꜷ | ꜷ | u+a737 | Ayeri Top Vowel Au | ꜷ | au |
Character | Code | Name | Normal | Key | |
---|---|---|---|---|---|
̀ | ̀ | u+0300 | Ayeri Bottom Vowel A | ̀ | _a |
́ | ́ | u+0301 | Ayeri Bottom Vowel E | ́ | _e |
̂ | ̂ | u+0302 | Ayeri Bottom Vowel I | ̂ | _i |
̃ | ̃ | u+0303 | Ayeri Bottom Vowel O | ̃ | _o |
̄ | ̄ | u+0304 | Ayeri Bottom Vowel U | ̄ | _u |
̅ | ̅ | u+0305 | Ayeri Bottom Vowel Schwa | ̅ | |
̆ | ̆ | u+0306 | Ayeri Bottom Vowel Au | ̆ | _au |
Character | Code | Name | Normal | Key | |
---|---|---|---|---|---|
A | A | u+0041 | Ayeri Initial Vowel A | A | A |
E | E | u+0045 | Ayeri Initial Vowel E | E | E |
I | I | u+0049 | Ayeri Initial Vowel I | I | I |
O | O | u+004f | Ayeri Initial Vowel O | O | O |
U | U | u+0055 | Ayeri Initial Vowel U | U | U |
Ə | Ə | u+018f | Ayeri Vowel Initial Schwa | Ə | |
Ꜷ | Ꜷ | u+a736 | Ayeri Initial Vowel Au | Ꜷ | AU |
Character | Code | Name | Normal | Key | |
---|---|---|---|---|---|
F | F | u+0046 | Ayeri Silent Vowel Mark Bottom | F | F |
H | H | u+0048 | Ayeri Aspiration Mark Bottom | H | H |
J | J | u+004a | Ayeri Palatalization Mark Bottom | J | J |
M | M | u+004d | Ayeri Nasalization Mark Bottom | M | M |
Y | Y | u+0059 | Ayeri Syllalbe-Final Ya Bottom | Y | Y |
¯ | ¯ | u+00af | Ayeri Long Vowel Mark Bottom | ¯ | VOWELVOWEL |
ˀ | ˀ | u+02c0 | Ayeri Glottal Stop Mark Bottom | ˀ | |
̓ | ̓ | u+0313 | Ayeri Gemination Sign Bottom | ̓ | CONSFCONS |
Character | Code | Name | Normal | Key | |
---|---|---|---|---|---|
Q | Q | u+0051 | Ayeri Glottal Stop Mark Top | Q | Q |
¨ | ¨ | u+00a8 | Ayeri Systematic Vowel Modification Mark | ¨ | _: |
̐ | ̐ | u+0310 | Ayeri Nasalization Mark Top | ̐ | _M |
̑ | ̑ | u+0311 | Ayeri Silent Vowel Mark Top | ̑ | _F |
̔ | ̔ | u+0314 | Ayeri Gemination Sign Top | ̔ |
Character | Code | Name | Normal | Key | |
---|---|---|---|---|---|
R | R | u+0052 | Ayeri Retroflex Mark | R | R |
j | j | u+006a | Ayeri Rising Diphthong Mark | j | j |
ʰ | ʰ | u+02b0 | Ayeri Aspiration Mark Pre | ʰ | |
ʲ | ʲ | u+02b2 | Ayeri Palatalization and Syllable-Final YA Mark Pre | ʲ | |
ː | ː | u+02d0 | Ayeri Long Vowel Mark Pre | ː |
Character | Code | Name | Normal | Key | |
---|---|---|---|---|---|
0 | 0 | u+0030 | Zero | 0 | 0 |
1 | 1 | u+0031 | One | 1 | 1 |
2 | 2 | u+0032 | Two | 2 | 2 |
3 | 3 | u+0033 | Three | 3 | 3 |
4 | 4 | u+0034 | Four | 4 | 4 |
5 | 5 | u+0035 | Five | 5 | 5 |
6 | 6 | u+0036 | Six | 6 | 6 |
7 | 7 | u+0037 | Seven | 7 | 7 |
8 | 8 | u+0038 | Eight | 8 | 8 |
9 | 9 | u+0039 | Nine | 9 | 9 |
¹ | ¹ | u+00b9 | Ten | ¹ | ¹ |
² | ² | u+00b2 | Eleven | ² | ² |
Character | Code | Name | Normal | Key | |
---|---|---|---|---|---|
u+0020 | Space | SPACE | |||
! | ! | u+0021 | Exclamation mark | ! | ! |
" | " | u+0022 | Quotation mark | " | " |
' | ' | u+0027 | Ayeri Divider Mark (Dash, Apostrophe) | ' | ' |
( | ( | u+0028 | Left Parenthesis | ( | ( |
) | ) | u+0029 | Right Parenthesis | ) | ) |
, | , | u+002c | Ayeri Wide Syntactic Space (Comma) | , | , |
- | - | u+002d | Simple Dash | - | - |
. | . | u+002e | Full Stop | . | . |
/ | / | u+002f | Ayeri Divider Mark | / | / |
: | : | u+003a | Simple Dash | : | : |
; | ; | u+003b | Simple Dash | ; | ; |
? | ? | u+003f | Question Mark | ? | ? |
[ | [ | u+005b | Ayeri Left Name Mark | [ | [ |
] | ] | u+005d | Ayeri Right Name Mark Bottom | ] | ] |
_ | _ | u+005f | Low Line | _ | _ |
¶ | ¶ | u+00b6 | Ayeri Line-End Mark | ¶ | |
· | · | u+00b7 | Ayeri Decimal Point | · | |
̒ | ̒ | u+0312 | Ayeri Silent Vowel Mark Post | ̒ | |
̕ | ̕ | u+0315 | Ayeri Right Name Mark Top | ̕ | |
| | u+200b | Zero Width Space | | |
| | u+200c | Zero Width Non-Joiner | | |
‐ | ‐ | u+2010 | Ayeri Simple Dash | ‐ | - |
‑ | ‑ | u+2011 | Ayeri Simple Dash (non-breaking) | ‑ | |
‒ | ‒ | u+2012 | Ayeri Simple Dash | ‒ | |
– | – | u+2013 | EN Dash | – | |
— | — | u+2014 | EM Dash | — | |
’ | ’ | u+2019 | Ayeri Divider Mark (Dash, Apostrophe) | ’ | |
“ | “ | u+201c | Ayeri Left Quotation Mark | “ | |
” | ” | u+201d | Ayeri Right Quotation Mark | ” | |
‼ | ‼ | u+203c | Ayeri Emphatic exclamation mark | ‼ |
The reason that some characters appear so often here is compatibility e.g. with word processors like LibreOffice. Plus, Tahano Hikamu uses e.g. simply a dash or a colon where the Latin alphabet would use a couple of different punctuation marks. Redundancy in those cases is for convenience.
Character | Code | Name | Normal | Key | |
---|---|---|---|---|---|
& | & | u+0026 | Ayeri abbreviation nay | & | & |
+ | + | u+002b | Ayeri Abbreviation Naynay | + | + |
A number of characters can be entered by means of a chain of keys, that is, Tagāti Book G has an input method engine already built in for convenience – or out of megalomania. It is important to note that Graphite is not supported by the majority of applications, except for the handful listed on the SIL Website. Most notably, those are derivatives of OpenOffice.org and Mozilla Firefox.
Key combination | Output | Description |
---|---|---|
au | *ꜷ | |
_a | *̀ | The underscore _ followed by a vowel character generates a bottom vowel. Unfortunately, this does not yet work for the schwa vowel. |
_e | *́ | |
_i | *̂ | |
_o | *̃ | |
_u | *̄ | |
_au | *̆ | |
AU | Ꜷ | Capital A followed by capital U generates the initial vowel ‹au›. |
aa | *¯ | Double vowels generate the vowel itself plus a length mark. Unfortunately, this does not yet work for the schwa vowel. |
ee | *e¯ | |
ii | *i¯ | |
oo | *o¯ | |
uu | *u¯ | |
aauu | *ꜷ¯ | |
AAUU | Ꜷ¯ | Capital AA followed by capital UU generates the initial long vowel ‹au› consequently. |
pFp | pFp | CONS 1FCONS 1 generates the CONS 1 with a gemination mark. |
tFt | tFt | |
etc. | ||
nn | nn | The ‹na-na› ligature forms automatically. |
_F | *_F | A top-attaching gemination mark in turn can be made by hand, should it be needed. |
_M | *_M | The same goes for a top-attaching nasalization mark. |
_: | *_: | The ‘systematic vowel alteration’ (or simply put, umlaut) diacritic can be entered manually as well. |
Fy | *Fy | This is the long way to get the ‘syllalbe-final ya bottom’ diacritic. |
For most purposes, diacritics order themselves automatically, so it should be possible to enter most of them in their logical order – rather than their graphical order, so even preposed diacritics or diacritics shifted in front of a consonant are to be entered after the syllalbe onset consonant. Here are some examples:
te → te ‹te›
te_a → te_a ‹tea›
tee_a → tee_a ‹tēa›
tYee_a → tYee_a ‹tyēa›
tHYee_a → tHYee_a ‹thyēa›
tRHYee_a → tRHYee_a ‹ṭhyēa›
tRHYeej → tRHYeej ‹ṭhyēy›
[tRHYeej] → [tRHYeej] ‹Ṭhyēy›
There are, however, still problems with the glottal stop diacritic:
ki → ki ‹ki›
kiQ → kiQ ‹kiʔ›
kiQM → kiQM ‹kĩʔ›
kQiiM → kQiiM ‹kĩĩʔ›
It is possible to include up to ten diacritics per syllable this way. Placing preposed diacritics manually may require you to use the Zero Width Non-Joiner (ZWNJ) to voluntarily cut the string analyzing Graphite does. A ZWNJ is automatically inserted in front of every syllable block already in order to provide flexibility while preventing Graphite from overapplying reordering rules so that diacritics end up in neighboring syllables.