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) |
[ OpenDX Home at IBM | OpenDX.org ]