1XMBDFED(1) General Commands Manual XMBDFED(1)
2
3
4
6 xmbdfed - Motif-based BDF font editor
7
8
10 xmbdfed [options] [fonts ...]
11
12
14 xmbdfed lets you interactively create new bitmap font files or modify
15 existing ones. It allows editing multiple fonts and multiple glyphs,
16 it allows cut and paste operations between fonts and glyphs and editing
17 font properties. xmbdfed can import Metafont PK/GF fonts, Han Bitmap
18 Font Format (HBF) fonts, Linux console fonts (PSF, CP, and EGA/VGA)
19 fonts, Sun VF fonts, TrueType (TTF) fonts, or grab a font from the X
20 server. xmbdfed can export PSF2 Linux console fonts and HEX fonts (see
21 online help). The editor support two and four bits per pixel gray
22 scale fonts.
23
24 xmbdfed works on X Window System Version 11 (X11), Release 5 or Release
25 6, with Motif 1.2.x or Motif 2.x.
26
27
29 xmbdfed accepts the following command line arguments:
30
31
32 -nc do not preserve comments (by default, xmbdfed automatically
33 collects comments that are saved with the font).
34
35 -nu do not preserve unencoded glyphs (by default, xmbdfed preserves
36 the unencoded glyphs).
37
38 -nm do not make metrics corrections (by default, xmbdfed attempts
39 to make metrics corrections automatically).
40
41 -np do not pad character-cell bitmaps (by default, xmbdfed pads
42 character-cell bitmaps with 0's to the cell dimensions when the
43 font is saved).
44
45 -bp allow blank pages (by default, xmbdfed skips blank pages).
46
47 -ed do not present the "Really Exit?" dialog (by default, this dia‐
48 log always presented).
49
50 -ps n set default point size (if unspecified, xmbdfed sets it to 12).
51
52 -hres n set default horizontal resolution.
53
54 -vres n set default vertical resolution.
55
56 -res n set both default resolutions (if unspecified, xmbdfed sets both
57 horizontal and vertical resolution to that of display, (e.g.
58 90x90 dpi for Sun workstations).
59
60 -sp s set the default font spacing ("p" for Proportional, "m" for
61 Monowidth, or "c" for Character Cell).
62
63 -bpp n set the default bits per pixel for new fonts (1, 2, or 4).
64
65 -eol e set the default end-of-line type ("u" for Unix LF, "d" for
66 DOS/Windows CRLF, or "m" for Macintosh CR). CR)
67
68 -g glyph-code
69 specify the initial glyph code at startup. The glyph code can
70 be specified in decimal, octal, or hex. Octal numbers must be
71 prefixed with the digit 0, and hex numbers must be prefixed
72 with one of: 0x, 0X, U+, U-, \u.
73
74 -pb do not use the progress bar. Use the watch cursor instead.
75
76 -cb code-base
77 specify the code base used to display the glyphs encodings (can
78 be "octal", "decimal", or "hexadecimal").
79
80
82 At the top of each editor window there are some fields and buttons.
83 These are:
84
85 The "Font" text field is where the font name is set so it can be
86 edited.
87
88 The "Glyph" field is a label that provides some information
89 about glyph name, encoding, and metrics when a glyph is
90 selected. When a range of glyphs are selected, this field dis‐
91 plays the start and end codes of the range.
92
93 The push buttons are used to navigate through the glyph pages.
94 The "Previous Page" and "Next Page" buttons normally skip glyph
95 pages that are empty, but that can be changed using the "Setup"
96 dialog.
97
98 If the Shift key is held down while the "Next" or "Previous"
99 page buttons is pressed, then the paging behavior will be oppo‐
100 site of the current paging behavior.
101
102 The "Page" field indicates the current glyph page and also
103 allows a specific page number to be entered. Once a page number
104 is entered, pressing the Return key will cause the Font Grid to
105 shift to that page. The page number entered is expected to be a
106 decimal number.
107
108 The "Code" field is provided for situations where the page num‐
109 ber is not known, but the encoding is known. The encoding
110 entered in this field must be in the base (8, 10, or 16) that is
111 currently being used to display glyph encodings (see the "View"
112 menu below). Once the encoding is entered, pressing the Return
113 key will cause the Font Grid to shift to the page containing the
114 encoding.
115
116 The main window of each font editor is called the Font Grid. Each Font
117 Grid has a clipboard used for passing glyphs around. This clipboard is
118 called FONTGRID_CLIPBOARD. The format of the data stored to this clip‐
119 board is not documented yet.
120
121 When a glyph has been modified either by the user or by automatic met‐
122 rics corrections when the font is loaded, the glyph code above the
123 glyph cell will be highlighted.
124
125
127 The File menu has the following entries:
128
129 New <Ctrl+N>
130 This creates a new font using the current defaults for point size,
131 horizontal and vertical resolution, and font spacing.
132
133 Open <Ctrl+O>
134 This opens a new font in the current Font Grid. If the font in the
135 grid has been modified, the option to save the font before loading
136 a new one will be given.
137
138 Save <Ctrl+S>
139 Save the current font. If the current font does not have a file
140 name, a file selection dialog will pop up so a file name can be
141 entered.
142 When the font is saved, it will automatically generate a list of
143 _XFREE86_GLYPH_RANGE properties containing a list of glyph codes
144 available in the font.
145
146 Save As <Ctrl+W>
147 Save the current font with some other name.
148 When the font is saved, it will automatically generate a list of
149 _XFREE86_GLYPH_RANGE properties containing a list of glyph codes
150 available in the font.
151
152 The Import submenu of the File menu has the following entries:
153
154 PK/GF Font <Ctrl+K>
155 Import a Metafont PK or GF font.
156
157 Console Font <Ctrl+L>
158 Import a binary console font used by Linux and Sun (PSF1, PSF2,
159 CP, vfont, and other font formats).
160
161 HBF Font <Ctrl+H>
162 Import an HBF font.
163
164 Windows Font <Ctrl+B>
165 Import a Windows FON/FNT font. This will also import fonts
166 from .EXE and .DLL files as well.
167
168 TrueType Font <Ctrl+Y>
169 Import a TrueType font (.ttf extension) or a TrueType collec‐
170 tion (.ttc extension).
171
172 Server Font <Ctrl+G>
173 Import a font from the X server.
174
175 The Export submenu of the File menu has the following entries:
176
177 PSF <Ctrl+F>
178 This will export the current BDF font or the currently selected
179 glyphs to a PSF2 font. Glyphs in PSF fonts are usually
180 arranged in a specific way to make them work properly with the
181 basic display driver. Many of these fonts come with mapping
182 tables attached that indicate which Unicode characters a glyph
183 can be used for. The mapping table allows the console to
184 attempt to display Unicode text.
185
186 During the export, an option menu will let you select whether
187 to:
188
189 Export Font with Mapping Table
190 Export Font Only
191 Export Mapping Table Only
192
193 Only the first 512 glyphs will be exported to the font.
194
195 HEX
196 This will export the current BDF font into the HEX format (see
197 http://czyborra.com/unifont/).
198
199 Exit/Close <Ctrl+F4>
200 Exit the program if this is the primary Font Grid or simply hide
201 (unmap) the current Font Grid window.
202
203 The Edit menu has the following entries:
204
205 Copy <Ctrl+C> or <Button3Down>
206 This copies the current selection to the Font Grid clipboard.
207
208 Cut <Ctrl+X> or <Key>Delete or <Key>BackSpace
209 This copies the current selection to the Font Grid clipboard and
210 then deletes the selection.
211
212 Paste <Ctrl+V> or <Button2Down>
213 This replaces the glyphs starting at the currently selected posi‐
214 tion with the Font Grid clipboard.
215
216 Overlay <Ctrl+Shift+V> or Ctrl<Button2Down>
217 This merges the Font Grid cliboard with the glyphs starting at the
218 currently selected position. The names of the modified glyphs are
219 not changed.
220
221 Insert <Ctrl+Meta+V> or Shift<Button2Down>
222 This inserts the Font Grid clipboard in front of the currently
223 selected position.
224
225 Properties <Ctrl+P>
226 This invokes the font property editor.
227
228 Comments <Ctrl+M>
229 This invokes the font comments editor.
230
231 Font Info <Ctrl+I>
232 This invokes a dialog that allows changes to some of the font
233 information so these values do not have to be changed using the
234 property editor. These values include the default character, font
235 device width (for monowidth and character cell fonts), font ascent
236 and descent, font vertical and horizontal resolution, and the font
237 spacing.
238
239 The Font Name submenu of the Edit menu has the following four entries:
240
241 Make XLFD Name
242 If the font does not have an XLFD name, this will save the cur‐
243 rent font name in the _ORIGINAL_FONT_NAME font property and
244 then generate an XLFD name for the font.
245
246 Update Name From Properties
247 This will update the XLFD font name fields from the font prop‐
248 erty list.
249
250 Update Properties From Name
251 This will update the font properties from the XLFD font name.
252
253 Update Average Width
254 This will update the average width field of the XLFD font name
255 and will update the AVERAGE_WIDTH font property as a side
256 effect.
257
258 Name Glyphs
259
260 Unicode Names
261 This will rename all the glyphs using names taken from a file
262 in the Unicode Character Database format. This file can be set
263 in the configuration file or set using the Setup dialog.
264
265 Unicode Values
266 This will rename all the glyphs with a hexadecimal value pre‐
267 fixed by 0x, U+, or \u (example: 0x010D, U+010D, \u010D).
268
269 Test Glyphs <Ctrl+Z>
270 This will toggle the glyph test dialog on or off for the edi‐
271 tor. When this is active, selecting a glyph from any Font Grid
272 will also add it to the glyph test dialog. When changes are
273 made to a glyph or the font bounding box, the glyph test dialog
274 will be updated accordingly.
275
276 The glyph test dialog provides a toggle to turn the baseline on
277 or off and another toggle to draw from right to left instead of
278 left to right.
279
280 Setup <Ctrl+T>
281 This will invoke the dialog to edit various settings used by
282 the editor such as the default point size, resolution and font
283 spacing.
284
285 The View menu has the following entries:
286
287 Unencoded <Ctrl+E>
288 This will toggle between displaying the unencoded (glyphs with an
289 ENCODING field of -1) and encoded glyphs.
290
291 Code Base
292 Selects displaying of glyph encoding. Options are Octal (base 8),
293 Decimal (base 10) or Hexadecimal (base 16).
294
295 Other Page <Ctrl+Shift+S>
296 This will toggle between the current page and the last page that
297 was viewed.
298
299 Vertical View <Ctrl+Q>
300 This will toggle the FontGrid between showing the glyphs horizon‐
301 tally (default) and vertically.
302
303 Messages <Ctrl+A>
304 This will show messages generated when corrections to the font met‐
305 rics are done or errors are encountered.
306
307 The Operations menu has the following entries:
308
309 Translate <Ctrl+D>
310 This will bring up the dialog for entering the X offset and Y off‐
311 set used to translate the glyph to a new location.
312
313 The option of translating the selected glyphs or all of the glyphs
314 is provided.
315
316 Rotate <Ctrl+R>
317 This will bring up the dialog for entering the rotation angle. The
318 rotation is limited to between plus or minus 1 and 359 degrees.
319
320 The option of rotating the selected glyphs or all of the glyphs is
321 provided.
322
323 Shear <Ctrl+J>
324 This will bring up the dialog for entering theangle of the shear.
325 The shear is limited to plus or minus 45 degrees.
326
327 The option of rotating the selected glyphs or all of the glyphs is
328 provided.
329
330 Embolden <Ctrl+Shift+B>
331 This will bring up the dialog for emboldening either the selected
332 or all glyphs.
333
334 To embolden means to make bold.
335
336 The Editors menu has the following entries:
337
338 New <Ctrl+N>
339 This will cause a new editor to be created using the point size,
340 resolution, and bits per pixel set in the config file, from the
341 command line or from the Setup dialog.
342
343 [editor list]
344 The remaining menu items are all the Font Grid's that have been
345 created. Choosing one will force that window to be made visible
346 (mapped) and also put that window on top.
347
348
350 Double clicking the mouse on one of the glyphs will start a Glyph Edi‐
351 tor for that glyph.
352
353 The font name can be edited in the Font Grid and page switching can be
354 done with the buttons on the Font Grid.
355
356
358 The Glyph Editor provides a simple bitmap editor designed to edit glyph
359 bitmaps and other glyph information. The Glyph Editors all use a spe‐
360 cial clipboard used to pass bitmaps between the Glyph Editors. This
361 clipboard is called GLYPHEDIT_CLIPBOARD.
362
363 The only limit on the number of Glyph Editors that can be open at one
364 time is the amount of memory.
365
366
368 The File menu has the following entries:
369
370 Update <Ctrl+S>
371 This will update the Font Grid with the modified glyph.
372
373 Update and Next <Ctrl+U>
374 This will update the FontGrid with the modified glyph and move to
375 the next glyph.
376
377 Update and Previous <Ctrl+B>
378 This will update the FontGrid with the modified glyph and move to
379 the previous glyph.
380
381 Import XBM <Ctrl+I>
382 This will pop up a file selection dialog so an X Bitmap file (.xbm
383 extension) can be selected to be imported into the glyph editor.
384
385 The imported bitmap is handled the same way as bitmaps pasted.
386 They are inserted as a selection with the move operation active and
387 do not destroy any bitmap that already exists in the editor.
388
389 Export XBM <Ctrl+O>
390 This will pop up a file selection dialog so that the glyph image
391 can be exported as an X Bitmap file (.xbm extension).
392
393 Close <Ctrl+F4>
394 This will close the Glyph Editor.
395
396 The Edit menu has the following entries:
397
398 Reload <Ctrl+L>
399 This will reload the glyph and discard any changes made in the
400 GlyphEditor.
401
402 Resize BBX <Ctrl+R>
403 This will allow changing the sizes of the glyph bounding box
404 including the left/right bearings and the glyph ascent/descent. If
405 this change causes the glyph bounding box to be larger than the
406 font bounding box, the font bounding box will be resized when the
407 glyph is saved next.
408
409 Copy <Ctrl+C>
410 This will copy the currently selected portion of the bitmap to the
411 Glyph Editor clipboard.
412
413 Cut <Ctrl+X>
414 This will copy the currently selected portion of the bitmap to the
415 Glyph Editor clipboard and then delete the selection.
416
417 Paste <Ctrl+V>
418 This will paste the contents of the Glyph Editor clipboard into the
419 current Glyph Editor with the top-left coordinate of the bitmap on
420 the clipboard pasted at the location of the mouse. If the bitmap
421 is too big to fit if it is pasted at the mouse location, the bitmap
422 will be shifted until it fits completely in the Glyph Editor.
423
424 Select All <Ctrl+A>
425 This will select the whole glyph bitmap.
426
427 Next Glyph <Ctrl+N>
428 This will move the Glyph Editor to the next glyph position in the
429 Font Grid. If the current glyph has been modified, a save prompt
430 will appear before moving to the next glyph.
431
432 Previous Glyph <Ctrl+P>
433 This will move the Glyph Editor to the previous glyph position in
434 the Font Grid. If the current glyph has been modified, a save
435 prompt will appear before moving to the previous glyph.
436
437 The Operation menu has the following entries:
438
439 Draw <Ctrl+D>
440 Change the Glyph Editor into Draw mode.
441
442 Move <Ctrl+M>
443 Change the Glyph Editor into Move mode. Move mode allows selecting
444 a portion of the glyph bitmap and moving it to another location.
445
446 Copy <Ctrl+Y>
447 Change the Glyph Editor into Copy mode. Copy mode allows copying a
448 portion of the glyph bitmap and moving it to another location.
449
450 Rotate <Ctrl+T>
451 This will invoke the rotation dialog that allows the degrees of
452 rotation to be specified. Rotation can be between 1 and 359
453 degrees.
454
455 Shear <Ctrl+E>
456 This will invoke the shear dialog that allows the degrees of hori‐
457 zontal shear to be specified. Other names for shearing are
458 obliquing or slanting. Shearing is allowed between 1 and 45
459 degrees.
460
461 Embolden <Ctrl+H>
462 This will embolden the glyph in a simple manner.
463
464
466 When the mouse is used to shift the bitmap by one of the buttons, hold‐
467 ing the mouse down will cause the activity to repeat.
468
469 When editing fonts with two or four bits per pixel, a strip of colors
470 is presented on the left side of the Glyph Editor toolbox. These can
471 be selected with the mouse or with certain keys (see online help text
472 for details).
473
474
476 The program understands all of the core X Toolkit resource names and
477 classes as well as:
478
479 noComments (Boolean)
480 Specify whether xmbdfed preserves comments or not (default
481 False).
482
483 noUnencodedGlyphs (Boolean)
484 Specify whether xmbdfed preserves unencoded glyphs (character
485 code -1) or not (default False).
486
487 noMetricsCorrections (Boolean)
488 Specify whether xmbdfed does metrics corrections or not
489 (default False).
490
491 padCharacterCells (Boolean)
492 Specify whether character-cell glyphs should be padded to cell
493 geometry (default False).
494
495 skipBlankGlyphPages (Boolean)
496 Specify whether xmbdfed skips blank pages or not (default
497 True).
498
499 fontPointSize (Cardinal)
500 Sets default point size.
501
502 fontHorizontalResolution (Cardinal)
503 Sets default horizontal resolution.
504
505 fontVerticalResolution (Cardinal)
506 Sets default vertical resolution.
507
508 fontResolution (Cardinal)
509 Sets both default horizontal and vertical resolutions.
510
511 fontSpacing (String)
512 Sets the default font spacing ("p", "m", or "c")
513
514
516 xfed(1), bdftopcf(1), bdftosnf(1), psfaddtable(1), psfgettable(1),
517 pfaedit(1)
518 Glyph Bitmap Distribution Format (BDF) Specification, Application Note
519 5005, Adobe System Inc, 1993
520 X Logical Font Description, X Consortium
521
522
524 Ross Patterson for his HBF code.
525 der Mouse for his "getbdf" code.
526 K. Carothers and A. Korobka for their "fnt2bdf" code in Wine.
527
528 Mike Stroyan <mike_stroyan@fc.hp.com> for patches.
529 Primoz Peterlin <primoz.peterlin@biofiz.mf.uni-lj.si> for this manual
530 page.
531 Danny Backx <u27113@kb.be> for the LessTif Imakefile.
532 Donald Page <donaldp@sco.com> for patches.
533 Michal Szymanski <msz@sirius.astrouw.edu.pl> for problem reports.
534 Werner Lemberg <a7971428@unet.univie.ac.at> for problem reports.
535 William F. Maton <wmaton@enterprise.ic.gc.ca> for problem reports.
536 Ivan Nejgebauer <ian@uns.ns.ac.yu> for problem reports.
537 Solofo <solofo@mpi-sb.mpg.de> for problem reports.
538 Dave Bodenstab <imdave@mcs.net> for patches.
539 W. Chao <wchao@HRZ.Uni-Bielefeld.DE> for Makefile changes and problem
540 report.
541 Andreas Reuter <ar205@bonzo.geowiss.nat.tu-bs.de> for problem reports.
542 Leonard Dickens <leonard@saul.hipgraphics.com> for IRIX 6.3 Makefile
543 changes.
544 Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk> for suggestions.
545 Jim Knoble <jmknoble@pobox.com> for dialog geometry fixes.
546 Darren Stuart Embry <dsembr01@ox.slug.louisville.edu> for HP/UX 10.20
547 X11R6 Makefile additions.
548 Vladimir Volovich <vvv@vvv.vsu.ru> for pointing out something I forgot
549 to test.
550 Ben Fry <fry@media.mit.edu> for IRIX 6.5.2 variables for the Makefile.
551 J.H.M. Dassen (Ray) <jdassen@debian.org> for bug fixes.
552 Robert Brady <rwb197@ecs.soton.ac.uk> for pointing out a problem.
553 Stefan Monnier <monnier@cs.yale.edu> for a bug report.
554 Humphrey Clerx <humphrey.clerx@eurocontrol.be> for a bug report.
555 Rudolf Cejka <cejkar@dcse.fee.vutbr.cz> for bug fixes and a suggestion.
556 Baruch Even <baruch@ev-en.org> for a bug fix.
557 Sergey Vlasov <vsu@mivlgu.murom.ru> for bug fixes.
558 Daniel Neuburger <daniel.neuburger@lmco.com> for bug fixes.
559 Pierre HANSER <Pierre.Hanser@sxb.bsf.alcatel.fr> for a bug fix.
560 Patrick Hagglund <patrik.hagglund@bredband.net> for FreeType 2 support.
561
562
564 Mark Leisher
565 Computing Research Lab
566 New Mexico State University
567 Email: mleisher@crl.nmsu.edu
568
569
570
571X Version 11 09 February 2004 XMBDFED(1)