Animator doesn't have TTF font support; it can only draw using a simple bitmap font. In case you still need a vector font, the animator distribution contains a macro file that defines a number of simple vector fonts. By default, the macro file will be installed at: /usr/share/animator/vectorfont This file contains input directly parseable by animator. It defines a macro for each glyph, by the name "hf", where N is the number of the glyph. Glyphs are numbered from 1 to 4095 (but not all numbers are used). Each glyph macro draws at origin 0, 0. The drawn letter is aligned so its bottom left is at the origin. Normal letter height is 1. Each macro contains a shift instruction at the end that shifts the current coordinate system right by the width of the letter. This way, to draw some text it's enough to invoke the character macros in sequence. The macro file contains extra information in the form of comments (lines beginning with !). You'll need to parse this information to be able to draw text. There are 19 defined fonts at the beginning of the macro file. These are maps between ascii codes and glyph numbers. The defined fonts are these: cyrillic-complex gothic-english-triplex gothic-german-triplex gothic-italian-triplex greek-complex greek-complex-small greek-plain greek-simplex italic-complex italic-complex-small italic-triplex roman-complex roman-complex-small roman-duplex roman-plain roman-simplex roman-simplex-mono roman-triplex script-complex script-simplex There are separate macro files for just the roman-simplex fonts: /usr/share/animator/romansimplex /usr/share/animator/romansimplexmono Each font is defined in a line like this: !font roman-plain 199 214 217 233 219 1271 234 231 221 222 1219 225 211 224 210 220 200 201 202 203 204 205 206 207 208 209 212 213 1241 226 1242 215 1273 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 1223 809 1224 1262 997 230 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 1225 223 1226 1246 218 The name of the font is followed by the glyph number for each character from ascii 32 to 127. Furthermore, each macro definition is preceded by a comment like this: ! 203 0.357 The number of the glyph (203) followed by the width (0.357). You can use this information to calculate the width of a string. There are two relevant example scripts: "showfonts" will draw some text using all fonts; "showunused" shows all unassigned glyphs (that aren't referenced by any font) with their glyph number. Here is some example code written in AWK: ============================================================================= function initglyphs() { while((getline < "/usr/share/animator/vectorfont") == 1) { if($1=="!") glyphw[$2]=$3; else if($1 == "!font") for(i=32; i<=127; i++) font[$2 sprintf("%c",i)] = $(i-29); else print } } function textwidth(fnt, text, x,k) { x=0 for(k=1;k<=length(text);k+=1) x+=glyphw[font[fnt substr(text,k,1)]] return x } function show(fnt, text, k) { for(k=1;k<=length(text);k+=1) print "invoke hf" font[fnt substr(text,k,1)] } BEGIN { initglyphs() print "scale 0.1 0.1" print "shift", -textwidth("italic-complex", "Hello world!")/2, 0 show("italic-complex", "Hello world!") print "flush" } ============================================================================= The source of all data is the public domain set of vector fonts originally created by Dr. A. V. Hershey: http://local.wasp.uwa.edu.au/~pbourke/dataformats/hershey/