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