1 .TH GBDFED 1 "23 February 2010" "GTK2"
3 gbdfed \- GTK-based BDF font editor
7 [\fIoptions\fP] [\fIfonts ...\fP]
11 lets you interactively create new bitmap font files or modify
12 existing ones. It allows editing multiple fonts and multiple
13 glyphs, it allows cut and paste operations between fonts and
14 glyphs and editing font properties.
16 can import Metafont PK/GF fonts, Han Bitmap Font Format (HBF) fonts, Linux
17 console fonts (PSF, CP, and EGA/VGA) fonts, Sun VF fonts, OpenType/TrueType
18 (OTF/TTF) fonts, or grab a font from the X server (when running under X11).
20 can export PSF2 Linux console fonts and HEX fonts (see online help).
23 works on X Window System Version 11 (X11), Release 5 or 6, with GTK+ 2.6 or
24 greater. It may work on Windows, but hasn't been tested yet.
28 accepts the following command line arguments:
33 do not preserve comments (by default,
35 automatically collects comments that are saved with the font).
39 do not preserve unencoded glyphs (by default,
41 preserves the unencoded glyphs).
45 do not make metrics corrections (by default,
47 attempts to make metrics corrections automatically).
51 do not pad character-cell bitmaps (by default,
53 pads character-cell bitmaps with 0's to the cell dimensions when the font is
58 allow blank pages (by default,
64 do not present the "Really Exit?" dialog (by default, this dialog always
69 set default point size (if unspecified,
75 set default horizontal resolution.
79 set default vertical resolution.
83 set both default resolutions (if unspecified,
85 sets both horizontal and vertical resolution to that of display,
86 (e.g. 90x90 dpi for Sun workstations).
90 set the default font spacing ("p" for Proportional, "m" for Monowidth, or "c"
95 set the default end-of-line type ("u" for Unix LF, "d" for DOS/Windows CRLF,
96 or "m" for Macintosh CR).
101 specify the initial glyph code at startup. The glyph code can be specified in
102 decimal, octal, or hex. Octal numbers must be prefixed with the digit 0, and
103 hex numbers must be prefixed with one of: \fI0x, 0X, U+, U-, \\u\fP.
107 specify the code base used to display the glyphs encodings (can be "octal",
108 "decimal", or "hexadecimal").
112 At the top of each editor window there are some
113 fields and buttons. These are:
115 The "Font" text field is where the font name
116 is set so it can be edited.
118 The "Glyph" field is a label that provides
119 some information about glyph name, encoding, and
120 metrics when a glyph is selected. When a range
121 of glyphs are selected, this field displays the
122 start and end codes of the range.
124 The push buttons are used to navigate through the
125 glyph pages. The "Previous Page" and "Next Page"
126 buttons normally skip glyph pages that are empty,
127 but that can be changed using the "Preferences" dialog.
129 The "Page" field indicates the current glyph page
130 and also allows a specific page number to be entered.
131 Once a page number is entered, pressing the Return
132 key will cause the Font Grid to shift to that page.
133 The page number entered is assumed to be a decimal
136 The "Code" field is provided for situations where
137 the page number is not known, but the encoding is
138 known. The encoding entered in this field must be
139 in the base (8, 10, or 16) that is currently being
140 used to display glyph encodings (see the "View"
141 menu below). Once the encoding is entered, pressing
142 the Return key will cause the Font Grid to shift to
143 the page containing the encoding.
145 The main window of each font editor is called the
147 Each Font Grid has a clipboard used for passing glyphs around.
148 This clipboard is called
149 .I FONTGRID_CLIPBOARD.
150 The format of the data stored to this clipboard is not documented yet.
152 When a glyph has been modified either by the user or
153 by automatic metrics corrections when the font is loaded,
154 the glyph code above the glyph cell will be highlighted.
159 menu has the following entries:
163 This creates a new font using the current defaults for point size, horizontal
164 and vertical resolution, and font spacing.
168 This opens a new font in the current Font Grid. If the font in the grid has
169 been modified, the option to save the font before loading a new one will be
174 Save the current font. If the current font does not have a file name, a file
175 selection dialog will pop up so a file name can be entered.
177 When the font is saved, it will automatically generate a list of
178 _XFREE86_GLYPH_RANGE properties containing a list of glyph codes available in
183 Save the current font with some other name.
185 When the font is saved, it will automatically generate a list of
186 _XFREE86_GLYPH_RANGE properties containing a list of glyph codes available in
193 menu has the following entries:
197 .I PK/GF Font <Ctrl+K>
198 Import a Metafont PK or GF font.
202 .I Console Font <Ctrl+L>
203 Import a binary console font used by Linux and Sun (PSF1, PSF2, CP, vfont, and
209 Import an HBF font. Only available if HBF support is compiled into gbdfed.
213 .I Windows Font <Ctrl+B>
214 Import a Windows FON/FNT font. This will also import fonts from .EXE
215 and .DLL files as well.
219 .I OpenType/TrueType Font <Ctrl+Y>
220 Import an OpenType/TrueType font (.otf or .ttf extension) or a TrueType
221 collection (.ttc extension).
225 .I Server Font <Ctrl+G>
226 Import a font from the X server if running under the X Windowing System.
228 The \fIExport\fR submenu of the \fIFile\fR menu has the following entries:
233 This will export the current BDF font or the currently selected glyphs to a
234 PSF2 font. Glyphs in PSF fonts are usually arranged in a specific way to make
235 them work properly with the basic display driver. Many of these fonts come
236 with mapping tables attached that indicate which Unicode characters a glyph
237 can be used for. The mapping table allows the console to attempt to display
240 During the export, an option menu will let you select whether to:
243 Export Font with Mapping Table
247 Export Mapping Table Only
250 Only the first 512 glyphs will be exported to the font.
256 This will export the current BDF font into the HEX format (see
257 http://czyborra.com/unifont/).
260 .I Exit/Close <Ctrl+F4>
261 Exit the program if this is the primary Font Grid or simply hide (unmap) the
262 current Font Grid window.
266 menu has the following entries:
269 .I Copy <Ctrl+C> or <Button3Down>
270 This copies the current selection to the Font Grid clipboard.
273 .I Cut <Ctrl+X> or <Key>Delete or <Key>BackSpace
274 This copies the current selection to the Font Grid clipboard and
275 then deletes the selection.
278 .I Paste <Ctrl+V> or <Button2Down>
279 This replaces the glyphs starting at the currently selected position with the
283 .I Overlay <Ctrl+Shift+V> or Ctrl<Button2Down>
284 This merges the glyphs on the Font Grid cliboard with the glyphs starting at
285 the currently selected position. This means that the bitmaps are actually
286 combined together. The names of the modified glyphs are not
290 .I Insert <Ctrl+Meta+V> or Shift<Button2Down>
291 This inserts the glyphs on the Font Grid clipboard in front of the currently
295 .I Properties <Ctrl+P>
296 This invokes the font property editor.
300 This invokes the font comments editor.
303 .I Font Info <Ctrl+I>
304 This invokes a dialog that allows changes to some of the font information so
305 these values do not have to be changed using the property editor. These
306 values include the default character, font device width (for monowidth and
307 character cell fonts), font ascent and descent, font vertical and horizontal
308 resolution, and the font spacing.
314 menu has the following four entries:
319 If the font does not have an XLFD name, this
320 will save the current font name in the
321 .I _ORIGINAL_FONT_NAME
322 font property and then generate an XLFD name
327 .I Update Name From Properties
328 This will update the XLFD font name fields from
329 the font property list.
333 .I Update Properties From Name
334 This will update the font properties from the
339 .I Update Average Width
340 This will update the average width field of the
341 XLFD font name and will update the
343 font property as a side effect.
351 This will rename all the glyphs using names taken from a file in the Unicode
352 Character Database format. This file can be set in the configuration file
353 or set using the \fISetup\fR dialog.
358 This will rename all the glyphs with a hexadecimal value prefixed by \fC0x\fR,
359 \fCU+\fR, or \fC\\u\fR (example: 0x010D, U+010D, \\u010D).
362 .I Test Glyphs <Ctrl+Z>
363 This will toggle the glyph test dialog on or off for the editor. When this is
364 active, selecting a glyph from any Font Grid will also add it to the glyph
365 test dialog. When changes are made to a glyph or the font bounding box, the
366 glyph test dialog will be updated accordingly.
368 The glyph test dialog provides a toggle to turn the baseline on or off and
369 another toggle to draw from right to left instead of left to right.
373 This will invoke the dialog to edit various settings
374 used by the editor such as the default point size, resolution and font
379 menu has the following entries:
382 .I Unencoded <Ctrl+E>
383 This will toggle between displaying the unencoded (glyphs with an
385 field of -1) and encoded glyphs.
389 Selects displaying of glyph encoding. Options are Octal
390 (base 8), Decimal (base 10) or Hexadecimal (base 16).
393 .I Other Page <Ctrl+Shift+S>
394 This will toggle between the current page and the last page
398 .I Vertical View <Ctrl+Q>
399 This will toggle the FontGrid between showing the glyphs
400 horizontally (default) and vertically.
404 This will show messages generated when corrections to the font metrics are
405 done or errors are encountered.
409 menu has the following entries:
412 .I Translate <Ctrl+D>
413 This will bring up the dialog for entering the X offset and Y offset used to
414 translate the glyph to a new location.
416 The option of translating the selected glyphs or all of the glyphs is
421 This will bring up the dialog for entering the rotation angle. The rotation
422 is limited to between plus or minus 1 and 359 degrees.
424 The option of rotating the selected glyphs or all of the glyphs is provided.
428 This will bring up the dialog for entering theangle of the shear. The shear
429 is limited to plus or minus 45 degrees.
431 The option of rotating the selected glyphs or all of the glyphs is provided.
434 .I Embolden <Ctrl+Shift+B>
435 This will bring up the dialog for emboldening either the selected or all
438 To \fIembolden\fP means to make bold.
442 menu has the following entries:
446 This will cause a new editor to be created using the point size, resolution,
447 and bits per pixel set in the config file, from the command line or from the
452 The remaining menu items are all the Font Grid's that have been
453 created. Choosing one will force that window to be made visible (mapped)
454 and also put that window on top.
456 .SH Font Grid Other Features
457 Double clicking the mouse on one of the glyphs will start a Glyph Editor for
460 The font name can be edited in the Font Grid and page switching can be done
461 with the buttons on the Font Grid.
466 provides a simple bitmap editor
467 designed to edit glyph bitmaps and other glyph
468 information. The Glyph Editors all use a special
469 clipboard used to pass bitmaps between the Glyph
470 Editors. This clipboard is called
471 .I GLYPHEDIT_CLIPBOARD.
473 The only limit on the number of Glyph Editors that
474 can be open at one time is the amount of memory.
476 .SH Glyph Editor Menus
479 menu has the following entries:
483 This will update the Font Grid with the modified glyph.
485 To the right of the Glyph Name field is a button that performs the same
489 .I Update and Next <Ctrl+U>
490 This will update the FontGrid with the modified glyph and move to the next
494 .I Update and Previous <Ctrl+B>
495 This will update the FontGrid with the modified glyph and move to the previous
500 This will close the Glyph Editor.
504 menu has the following entries:
508 This will reload the glyph and discard any changes made in the GlyphEditor.
512 This will copy the currently selected portion of the bitmap to the Glyph
517 This will copy the currently selected portion of the bitmap to the Glyph
518 Editor clipboard and then delete the selection.
522 This will paste the contents of the Glyph Editor clipboard into the current
523 Glyph Editor with the top-left coordinate of the bitmap on the clipboard
524 pasted at the location of the mouse. If the bitmap is too big to fit if it is
525 pasted at the mouse location, the bitmap will be shifted until it fits
526 completely in the Glyph Editor.
529 .I Select All <Ctrl+A>
530 This will select the whole glyph bitmap.
533 .I Next Glyph <Ctrl+N>
534 This will move the Glyph Editor to the next glyph position in the Font Grid.
535 If the current glyph has been modified, a save prompt will appear before
536 moving to the next glyph.
538 To the right of the Glyph Name field is a button that performs the same
542 .I Previous Glyph <Ctrl+P>
543 This will move the Glyph Editor to the previous glyph position in the Font
544 Grid. If the current glyph has been modified, a save prompt will appear
545 before moving to the previous glyph.
547 To the right of the Glyph Name field is a button that performs the same
552 menu has the following entries:
556 Change the Glyph Editor into Draw mode.
560 Change the Glyph Editor into Move mode. Move mode allows selecting a portion
561 of the glyph bitmap and moving it to another location.
565 Change the Glyph Editor into Copy mode. Copy mode allows copying a portion of
566 the glyph bitmap and moving it to another location.
570 This will invoke the rotation dialog that allows the degrees of rotation
571 to be specified. Rotation can be between 1 and 359 degrees.
575 This will invoke the shear dialog that allows the degrees of horizontal
576 shear to be specified. Other names for shearing are obliquing or slanting.
577 Shearing is allowed between 1 and 45 degrees.
581 This will embolden the glyph in a simple manner.
584 .I Resize BBX <Ctrl+R>
585 This will allow changing the sizes of the glyph bounding box including the
586 left/right bearings and the glyph ascent/descent. If this change causes the
587 glyph bounding box to be larger than the font bounding box, the font bounding
588 box will be resized when the glyph is saved next.
591 .I Edit PSF Unicode Mappings <Ctrl+F>
592 This allows adding, deleting and editing of Unicode mappings for fonts that
593 will be exported as PSF fonts. The code valued entered are expected to be
596 .SH Glyph Editor Other Features
597 When the mouse is used to shift the bitmap using one of the buttons, holding
598 the mouse down will cause the activity to repeat.
603 xmbdfed(1), xfed(1), bdftopcf(1), bdftosnf(1), psfaddtable(1), psfgettable(1), fontforge(1)
605 \fIGlyph Bitmap Distribution Format (BDF) Specification\fP, Application
606 Note 5005, Adobe System Inc, 1993
608 \fIX Logical Font Description\fP, X Consortium
612 Ross Patterson for his HBF code.
614 der Mouse for his "getbdf" code.
616 K. Carothers and A. Korobka for their "fnt2bdf" code in Wine.
618 Mike Stroyan <mike_stroyan@fc.hp.com> for patches.
620 Primoz Peterlin <primoz.peterlin@biofiz.mf.uni-lj.si> for this manual page.
622 Danny Backx <u27113@kb.be> for the LessTif Imakefile.
624 Donald Page <donaldp@sco.com> for patches.
626 Michal Szymanski <msz@sirius.astrouw.edu.pl> for problem reports.
628 Werner Lemberg <a7971428@unet.univie.ac.at> for problem reports.
630 William F. Maton <wmaton@enterprise.ic.gc.ca> for problem reports.
632 Ivan Nejgebauer <ian@uns.ns.ac.yu> for problem reports.
634 Solofo <solofo@mpi-sb.mpg.de> for problem reports.
636 Dave Bodenstab <imdave@mcs.net> for patches.
638 W. Chao <wchao@HRZ.Uni-Bielefeld.DE> for Makefile changes and problem report.
640 Andreas Reuter <ar205@bonzo.geowiss.nat.tu-bs.de> for problem reports.
642 Leonard Dickens <leonard@saul.hipgraphics.com> for IRIX 6.3 Makefile changes.
644 Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk> for suggestions.
646 Jim Knoble <jmknoble@pobox.com> for dialog geometry fixes.
648 Darren Stuart Embry <dsembr01@ox.slug.louisville.edu> for HP/UX 10.20 X11R6
651 Vladimir Volovich <vvv@vvv.vsu.ru> for pointing out something I forgot to
654 Ben Fry <fry@media.mit.edu> for IRIX 6.5.2 variables for the Makefile.
656 J.H.M. Dassen (Ray) <jdassen@debian.org> for bug fixes.
658 Robert Brady <rwb197@ecs.soton.ac.uk> for pointing out a problem.
660 Stefan Monnier <monnier@cs.yale.edu> for a bug report.
662 Humphrey Clerx <humphrey.clerx@eurocontrol.be> for a bug report.
664 Rudolf Cejka <cejkar@dcse.fee.vutbr.cz> for bug fixes and a suggestion.
666 Baruch Even <baruch@ev-en.org> for a bug fix.
668 Sergey Vlasov <vsu@mivlgu.murom.ru> for bug fixes.
670 Daniel Neuburger <daniel.neuburger@lmco.com> for bug fixes.
672 Pierre HANSER <Pierre.Hanser@sxb.bsf.alcatel.fr> for a bug fix.
674 Patrick Hagglund <patrik.hagglund@bredband.net> for FreeType 2 support.
676 James Cloos <cloos@jhcloos.com> for pointing out problems.
678 Ming Hua <minghua@rice.edu> for pointing out problems.
680 Viktor Urban <viktor@icc-atcsolutions.com> for pointing out problems.
682 Jiri "BlueBear" Dluhos <modry.medved@seznam.cz> for providing 64-bit fixes.
684 Jan Engelhardt <jengelh@linux01.gwdg.de> help text improvements and missing
687 Daniel Richard G. <skunk@iSKUNK.ORG> for help on 64-bit architectures.
689 Baruch Even <baruch@ev-en.org> for help on 64-bit architectures.
691 Ming Hua <minghua.debian@gmail.com> for an unsuspected warning.
693 Ryan Hill <dirtyepic@gentoo.org> for import dialog crash report.
695 Don Knuth (https://bugs.launchpad.net/ubuntu/+source/gbdfed/+bug/172836) for
696 reporting spelling, gramatical and behavior problems.
698 Tim Allen <screwtape@froup.com> for discovering glyph and font spacing bugs.
700 Daniel Quarras <dqarras@yahoo.com> for discovering a PSF unicode map editing
703 Bertrand Janin <tamentis@neopulsar.org> for improving the GlyphEditor user
706 Peter Volkov <pva@gentoo.org> for fixing a name collision.
708 Tom "spot" Callaway <tcallawa@redhat.com> for fixing a linking problem.
711 Mark Leisher <mleisher@gmail.com>