OpenDX - Documentation
Full Contents QuickStart Guide User's Guide User's Reference
Previous Page Next Page Table of Contents Partial Table of Contents Index Search

Appendix E. Data Explorer Fonts

All fonts used by Data Explorer are stored as files in the /usr/local/dx/fonts directory. Users can add their own fonts by creating a file in the correct format and using the DXFONTS environment variable to list the directory or directories where the additional font files are stored.

Fonts are stored in the standard Data Explorer file format. A font file must contain the following information (for more information on the Data Explorer file format, see Appendix B. "Importing Data: File Formats").

The font is a group that contains 256 fields, one for each ASCII character value, and two attributes describing the height of the font. For example:

 object "myfont" class group
    member 0 value "empty"
    member 1 value "control-a"
   .
   ∶
    member 65 value "A"
    member 66 value "B"
   .
   ∶
    member 255 value "empty"
    attribute "font ascent" number 0.75
    attribute "font descent" number 0.25

The attributes describe the maximum height above and below the baseline for all characters in this font. The values should be positive floating point numbers and they should add to 1.0.

Each member of the group must be a field.

Each field must contain a 2-D or 3-D "positions" component, and a "connections" component with element type "lines" or "triangles".

 object "positions1" class array type float rank 1 shape 3  items 3
   data follows  0.1 0.5 0.0   0.3 0.6 0.0    0.5 0.5 0.0
 object "connections1" class array type int rank 1 shape 2 items 2
   data follows  0 1   1 2
   attribute "element type" string "lines"
   attribute "ref" string "positions"

The character positions are assumed to have their horizontal (X) origin at the left edge and their vertical (Y) origin at the baseline.

Each field must have a "char width" attribute describing the character width for spacing when combining characters into strings.

 object "circumflex" class field
   component "positions" value "positions1"
   component "connections1" value "connections1"
   attribute "char width" number 0.55

The fields can contain other components (such as "colors" or "normals" ), although the standard Data Explorer modules will not process this information.

Those ASCII codes for which there is no representation should be empty fields:

object "empty" class field

A space character can be generated by making an empty field with a positive width:

 object "wide" class field
   attribute "char width" number 0.3
 object "myfont" class group
  .
  ∶
   member 32 value "wide"
  .
  ∶
Overstrike characters can be generated by making a field with a zero or negative width:
 object "umlaut" class field
   component "connections" value "con1"
   component "positions"   value "pos1"
   component "char width"  number 0.0

The following fonts are supplied with Data Explorer, and may be found in this directory /usr/local/dx/fonts. Each one is a Data Explorer format file. If you would like to look at the structure of a font file, simply Import the data using the Import module, and Export it in text format.
default fonts area an area font (same as pitman)

fixed a fixed width font (same as roman_sfix)

variable a variable width font (same as roman_s)

cyrilic font cyril_d a cyrilic double-line font

Gothic fonts gothiceng_t an English gothic triple-line font

gothicger_t a German gothic triple-line font

gothicit_t an Italian gothic triple-line font

Greek fonts greek_s a Greek single-line font

greek_d a Greek double-line font

italic fonts italic_d an italic double-line font

italic_t an italic triple-line font

area (filled) font pitman an area typewriter style font that includes European National Language characters

Roman fonts roman_s a Roman single-line sans serif font

roman_d a Roman double-line sans serif font

roman_dser a Roman double-line serif font

roman_tser a Roman triple-line serif font

roman_ext an extended character set Roman single-line sans-serif font that includes European National Language characters

script fonts script_s a script single-line font

script_d a script double-line font

The default font directory is /usr/local/dx/fonts. For user-added fonts, the DXFONTS variable can contain a colon-separated list of directories to search for fonts before searching the default directory. A font file name must be the same as the font name. For example, the font "cursive" should be stored in the "cursive.dx" file, and the font parameter to the Caption module should be "cursive" to use this font. The names of user-supplied fonts should be all lowercase.

Since font files are in the standard Data Explorer file format, in addition to being used by Caption, Plot, AutoAxes, and ColorBar, they can be read into Data Explorer with Import and processed like any other group. Individual characters can be selected with Select, colored with Color, and displayed with ShowConnections. Newly constructed fonts can be exported with Export.

Table 8 and Table 9 illustrate those characters that are part of the roman_ext font. The appearance of a character may differ from that illustrated in the tables.

Table 8. roman_ext Font Characters (Part 1)
Octal Value 40 60 100 120 140 160 200
0 Blank 0 @ P ' p Ç
1 ! 1 A Q a q ü
2 " 2 B R b r é
3 # 3 C S c s â
4 $ 4 D T d t ä
5 % 5 E U e u à
6 & 6 F V f v å
7 ' 7 G W g w ç
10 ( 8 H X h x ê
11 ) 9 I Y i y ë
12 * : J Z j z è
13 + ; K [ k { ï
14 , < L \ l &splitvbar; î
15 - = M ] m } ì
16 . > N -^ n ~ Ä
17 / ? O _ o &ballot; &angstrom;

Table 9. roman_ext Font Characters (Part 2)
Octal Value 220 240 260 300 320 340 360
0 É á
α ρ ι
1 æ í
B σ κ
2 Æ ó
γ τ λ
3 ô ú
δ υ μ
4 ö ñ
ε φ ν
5 ò ñ
ζ χ ξ
6 û a
η ψ ο
7 ù o
θ ω π
8 ÿ &invq;
Ι α ρ
9 Ö

&Kappa β σ
10 Ü

&Lambda γ τ
11 ¢

Μ δ υ
12 £

Ν ε φ
13 ¥ ¡
Ξ ζ χ
14 &peseta; "
Ο η ψ
15 &florin; " &integral; Π θ ω

Table 10. Additional Symbols \001 - \035
1 apostrophe curly open '
2 apostrophe curly close '
3 backslash \
4 bullet *
5 cent ¢
6 copyright ©
7 cross product ×
10 degree °
11 emdash --
12 endash -
13 exclamation ¡
14 franc &florin;
15 guillemet open "
16 guillemet close "
17 guillemet single open
20 guillemet single close
21 infinity &infinity;
22 integral &integral;
23 interrogatory &invq;
24 minus -
25 notequal <>
26 plusminus ±
27 pound £
30 quote Open "
31 quote close "
32 registered ®
33 similar &similar;
34 trademark (TM)
35 yen ¥

The octal values for the English and Greek character sets in the pitman (or area) font are the same as those illustrated in Table 8 and Table 9. European National Languages characters are provided using single octal values or using a combination of values (see Table 11). For example, ä is produced using 252a, and î is produced using \221\237. Additional special symbols are provided with octal values 001 to 035 (see Table 10).

The following illustrates how you could produce a caption that contains the string "Jag är här på semester".

caption = Caption("Jag \252ar h\252ar p\213a semester"; font="pitman");
camera = AutoCamera (caption);
Display(caption,camera);

Table 11. European National Language Symbols and Characters \200 to \255
200 aBar

201 accentAcute ´ To type a acute, enter \201a. To type i acute, enter\201\237.
202 AccentAcute ´ (Uppercase except I)
203 IAccentAcute Í (Uppercase I Acute) To type A acute, enter \202A.
204 accentGrave ` (lowercase)
205 AccentGrave ` (Uppercase except I)
206 IAccentGrave Ì (Uppercase I)
207 accentHungarian
(Double quote accent over o and u)
210 AccentHungarian
(Double quote accent over O and U)
211 ae æ (Ligature)
212 AE Æ (Ligature)
213 angstrom
(Lowercase)
214 Angstrom
(Uppercase)
215 breve
(Lowercase)
216 Breve
(Uppercase)
217 c cedilla ç (Lowercase c cedilla)
220 C cedilla Ç (Uppercase C cedilla)
221 widecircumflex ^ (Looks better than ASCII Circumflex when used as a lowercase accent)
222 WideCircumflex ^ (Uppercase except for I and O)
223 WideCircumflex Î (Uppercase I)
224 WideCircumflex Ô (Uppercase O)
225 Clicka
(Used in Lithuanian over C, S, Z, c, s, and z; also called hacek or caron)
226 CommaRomanian
(Used in Romanian under S, T, s, and t)
227 enya
(Lowercase for Spanish n, and Portuguese a and o)
230 Enya
(Uppercase for Spanish N, and Portuguese A and O)
231 eth ð (Icelandic)
232 Eth Ð (Icelandic)
233 hookLithuanian
(Cedilla-like hook used under Lithuanian a, e, and u)
234 ihookLithuanian
(Cedilla-like hook used under Lithuanian i)
235 HookLithuanian
(Cedilla-like hook used under Lithuanian A, E, and U)
236 IHookLithuanian
(Cedilla-like hook used under Lithuanian I)
237 i dotless
(Dotless i to be accented with acute, grave, etc.)
240 l slash
(Slashed l used in Polish)
241 L slash
(Slashed L used in Polish)
242 macron
(Lowercase)
243 Macron
(Uppercase)
244 oBar

245 o slash ø (Danish slashed o)
246 O slash Ø (Danish slashed O)
247 Overdot . (Dot placed over Polish Z and z)
250 thorn þ (Icelandic)
251 Thorn Þ (Icelandic)
252 umlaut ¨aut; (Lowercase, also called diaresis)
253 Umlaut ¨aut; (Uppercase, except for I and O)
254 IUmlaut ¨aut; (I umlaut)
255 OUmlaut ¨aut; (O umlaut)


Full Contents QuickStart Guide User's Guide User's Reference

[ OpenDX Home at IBM | OpenDX.org ]