1GBDFED(1)                   General Commands Manual                  GBDFED(1)
2
3
4

NAME

6       gbdfed - GTK-based BDF font editor
7
8

SYNOPSIS

10       gbdfed [options] [fonts ...]
11
12

DESCRIPTION

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

OPTIONS

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

FONT GRID

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

Font Grid Menus

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

Font Grid Other Features

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

GLYPH EDITOR

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

Glyph Editor Menus

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

Glyph Editor Other Features

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

PROPERTIES

SEE ALSO

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

ACKNOWLEDGMENTS

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

AUTHOR

536       Mark Leisher <mleisher@gmail.com>
537
538
539
540GTK2                           23 February 2010                      GBDFED(1)
Impressum