Man Linux: Main Page and Category List

NAME

       gbdfed - GTK-based BDF font editor

SYNOPSIS

       gbdfed [options] [fonts ...]

DESCRIPTION

       gbdfed  lets  you  interactively create new bitmap font files or modify
       existing ones.  It allows editing multiple fonts and  multiple  glyphs,
       it allows cut and paste operations between fonts and glyphs and editing
       font properties.  gbdfed can import Metafont PK/GF  fonts,  Han  Bitmap
       Font  Format  (HBF)  fonts,  Linux console fonts (PSF, CP, and EGA/VGA)
       fonts, Sun VF fonts, OpenType/TrueType (OTF/TTF) fonts, or grab a  font
       from  the  X  server  (when running under X11).  gbdfed can export PSF2
       Linux console fonts and HEX fonts (see online help).

       gbdfed works on X Window System Version 11 (X11), Release 5 or 6,  with
       GTK+  2.6  or  greater.  It may work on Windows, but hasn’t been tested
       yet.

OPTIONS

       gbdfed accepts the following command line arguments:

       -nc     do not preserve  comments  (by  default,  gbdfed  automatically
               collects comments that are saved with the font).

       -nu     do  not preserve unencoded glyphs (by default, gbdfed preserves
               the unencoded glyphs).

       -nm     do not make metrics corrections (by default, gbdfed attempts to
               make metrics corrections automatically).

       -np     do  not  pad  character-cell  bitmaps  (by default, gbdfed pads
               character-cell bitmaps with 0’s to the cell dimensions when the
               font is saved).

       -bp     allow blank pages (by default, gbdfed skips blank pages).

       -ed     do  not  present  the  "Really  Exit?" dialog (by default, this
               dialog always presented).

       -ps n   set default point size (if unspecified, gbdfed sets it to  12).

       -hres n set default horizontal resolution.

       -vres n set default vertical resolution.

       -res n  set  both default resolutions (if unspecified, gbdfed sets both
               horizontal and vertical resolution to that  of  display,  (e.g.
               90x90 dpi for Sun workstations).

       -sp s   set  the  default  font  spacing ("p" for Proportional, "m" for
               Monowidth, or "c" for Character Cell).

       -eol e  set the default end-of-line type ("u"  for  Unix  LF,  "d"  for
               DOS/Windows CRLF, or "m" for Macintosh CR).  CR)

       -g glyph-code
               specify  the initial glyph code at startup.  The glyph code can
               be specified in decimal, octal, or hex.  Octal numbers must  be
               prefixed  with  the  digit  0, and hex numbers must be prefixed
               with one of: 0x, 0X, U+, U-, \u.

       -cb code-base
               specify the code base used to display the glyphs encodings (can
               be "octal", "decimal", or "hexadecimal").

FONT GRID

       At  the  top  of  each editor window there are some fields and buttons.
       These are:

              The "Font" text field is where the font name is set so it can be
              edited.

              The  "Glyph"  field  is  a  label that provides some information
              about  glyph  name,  encoding,  and  metrics  when  a  glyph  is
              selected.   When  a  range  of  glyphs  are selected, this field
              displays the start and end codes of the range.

              The push buttons are used to navigate through the  glyph  pages.
              The  "Previous Page" and "Next Page" buttons normally skip glyph
              pages that  are  empty,  but  that  can  be  changed  using  the
              "Preferences" dialog.

              The  "Page"  field  indicates  the  current  glyph page and also
              allows a specific page number to be entered.  Once a page number
              is  entered, pressing the Return key will cause the Font Grid to
              shift to that page.  The page number entered is assumed to be  a
              decimal number.

              The  "Code"  field  is  provided  for  situations where the page
              number is not known, but the encoding is  known.   The  encoding
              entered in this field must be in the base (8, 10, or 16) that is
              currently being used to display glyph encodings (see the  "View"
              menu  below).  Once the encoding is entered, pressing the Return
              key will cause the Font Grid to shift to the page containing the
              encoding.

       The main window of each font editor is called the Font Grid.  Each Font
       Grid has a clipboard used for passing glyphs around.  This clipboard is
       called  FONTGRID_CLIPBOARD.   The  format  of  the  data stored to this
       clipboard is not documented yet.

       When a glyph has been modified either  by  the  user  or  by  automatic
       metrics  corrections  when the font is loaded, the glyph code above the
       glyph cell will be highlighted.

Font Grid Menus

       The File menu has the following entries:

       New <Ctrl+N>
           This creates a new font using the current defaults for point  size,
           horizontal and vertical resolution, and font spacing.

       Open <Ctrl+O>
           This opens a new font in the current Font Grid.  If the font in the
           grid has been modified, the option to save the font before  loading
           a new one will be given.

       Save <Ctrl+S>
           Save  the  current  font.  If the current font does not have a file
           name, a file selection dialog will pop up so a  file  name  can  be
           entered.
           When  the  font  is saved, it will automatically generate a list of
           _XFREE86_GLYPH_RANGE properties containing a list  of  glyph  codes
           available in the font.

       Save As <Ctrl+W>
           Save the current font with some other name.
           When  the  font  is saved, it will automatically generate a list of
           _XFREE86_GLYPH_RANGE properties containing a list  of  glyph  codes
           available in the font.

       The Import submenu of the File menu has the following entries:

           PK/GF Font <Ctrl+K>
               Import a Metafont PK or GF font.

           Console Font <Ctrl+L>
               Import a binary console font used by Linux and Sun (PSF1, PSF2,
               CP, vfont, and other font formats).

           HBF Font <Ctrl+H>
               Import an HBF font. Only available if HBF support  is  compiled
               into gbdfed.

           Windows Font <Ctrl+B>
               Import  a  Windows  FON/FNT  font.  This will also import fonts
               from .EXE and .DLL files as well.

           OpenType/TrueType Font <Ctrl+Y>
               Import an OpenType/TrueType font (.otf or .ttf extension) or  a
               TrueType collection (.ttc extension).

           Server Font <Ctrl+G>
               Import  a  font  from  the  X  server  if  running  under the X
               Windowing System.

       The Export submenu of the File menu has the following entries:

           PSF <Ctrl+F>
               This will export the current BDF font or the currently selected
               glyphs  to  a  PSF2  font.   Glyphs  in  PSF  fonts are usually
               arranged in a specific way to make them work properly with  the
               basic  display  driver.   Many of these fonts come with mapping
               tables attached that indicate which Unicode characters a  glyph
               can  be  used  for.   The  mapping  table allows the console to
               attempt to display Unicode text.

               During the export, an option menu will let you  select  whether
               to:

                 Export Font with Mapping Table
                 Export Font Only
                 Export Mapping Table Only

               Only the first 512 glyphs will be exported to the font.

           HEX
               This  will export the current BDF font into the HEX format (see
               http://czyborra.com/unifont/).

       Exit/Close <Ctrl+F4>
           Exit the program if this is the primary Font Grid  or  simply  hide
           (unmap) the current Font Grid window.

       The Edit menu has the following entries:

       Copy <Ctrl+C> or <Button3Down>
           This copies the current selection to the Font Grid clipboard.

       Cut <Ctrl+X> or <Key>Delete or <Key>BackSpace
           This  copies  the  current selection to the Font Grid clipboard and
           then deletes the selection.

       Paste <Ctrl+V> or <Button2Down>
           This  replaces  the  glyphs  starting  at  the  currently  selected
           position with the Font Grid clipboard.

       Overlay <Ctrl+Shift+V> or Ctrl<Button2Down>
           This  merges  the  glyphs on the Font Grid cliboard with the glyphs
           starting at the currently selected position.  This means  that  the
           bitmaps  are  actually combined together. The names of the modified
           glyphs are not changed.

       Insert <Ctrl+Meta+V> or Shift<Button2Down>
           This inserts the glyphs on the Font Grid clipboard in front of  the
           currently selected position.

       Properties <Ctrl+P>
           This invokes the font property editor.

       Comments <Ctrl+M>
           This invokes the font comments editor.

       Font Info <Ctrl+I>
           This  invokes  a  dialog  that  allows  changes to some of the font
           information so these values do not have to  be  changed  using  the
           property  editor.  These values include the default character, font
           device width (for monowidth and character cell fonts), font  ascent
           and  descent, font vertical and horizontal resolution, and the font
           spacing.

       The Font Name submenu of the Edit menu has the following four entries:

           Make XLFD Name
               If the font does not have an XLFD  name,  this  will  save  the
               current  font name in the _ORIGINAL_FONT_NAME font property and
               then generate an XLFD name for the font.

           Update Name From Properties
               This will update the  XLFD  font  name  fields  from  the  font
               property list.

           Update Properties From Name
               This will update the font properties from the XLFD font name.

           Update Average Width
               This  will update the average width field of the XLFD font name
               and will update the  AVERAGE_WIDTH  font  property  as  a  side
               effect.

       Name Glyphs

           Unicode Names
               This  will  rename all the glyphs using names taken from a file
               in the Unicode Character Database format.  This file can be set
               in the configuration file or set using the Setup dialog.

           Unicode Values
               This  will  rename  all  the  glyphs  with  a hexadecimal value
               prefixed by 0x, U+, or \u (example: 0x010D, U+010D, \u010D).

       Test Glyphs <Ctrl+Z>
               This will toggle the glyph  test  dialog  on  or  off  for  the
               editor.   When  this is active, selecting a glyph from any Font
               Grid will also add it to the glyph test dialog.   When  changes
               are  made  to  a glyph or the font bounding box, the glyph test
               dialog will be updated accordingly.

               The glyph test dialog provides a toggle to turn the baseline on
               or off and another toggle to draw from right to left instead of
               left to right.

       Setup <Ctrl+T>
               This will invoke the dialog to edit various  settings  used  by
               the  editor such as the default point size, resolution and font
               spacing.

       The View menu has the following entries:

       Unencoded <Ctrl+E>
           This will toggle between displaying the unencoded (glyphs  with  an
           ENCODING field of -1) and encoded glyphs.

       Code Base
           Selects  displaying of glyph encoding.  Options are Octal (base 8),
           Decimal (base 10) or Hexadecimal (base 16).

       Other Page <Ctrl+Shift+S>
           This will toggle between the current page and the  last  page  that
           was viewed.

       Vertical View <Ctrl+Q>
           This   will   toggle   the  FontGrid  between  showing  the  glyphs
           horizontally (default) and vertically.

       Messages <Ctrl+A>
           This will show messages generated  when  corrections  to  the  font
           metrics are done or errors are encountered.

       The Operations menu has the following entries:

       Translate <Ctrl+D>
           This  will  bring  up  the  dialog  for entering the X offset and Y
           offset used to translate the glyph to a new location.

           The option of translating the selected glyphs or all of the  glyphs
           is provided.

       Rotate <Ctrl+R>
           This will bring up the dialog for entering the rotation angle.  The
           rotation is limited to between plus or minus 1 and 359 degrees.

           The option of rotating the selected glyphs or all of the glyphs  is
           provided.

       Shear <Ctrl+J>
           This  will  bring up the dialog for entering theangle of the shear.
           The shear is limited to plus or minus 45 degrees.

           The option of rotating the selected glyphs or all of the glyphs  is
           provided.

       Embolden <Ctrl+Shift+B>
           This  will  bring up the dialog for emboldening either the selected
           or all glyphs.

           To embolden means to make bold.

       The Editors menu has the following entries:

       New <Ctrl+N>
           This will cause a new editor to be created using  the  point  size,
           resolution,  and  bits  per  pixel set in the config file, from the
           command line or from the Setup dialog.

       [editor list]
           The remaining menu items are all the Font  Grid’s  that  have  been
           created.   Choosing  one  will force that window to be made visible
           (mapped) and also put that window on top.

Font Grid Other Features

       Double clicking the mouse on one of  the  glyphs  will  start  a  Glyph
       Editor for that glyph.

       The  font name can be edited in the Font Grid and page switching can be
       done with the buttons on the Font Grid.

GLYPH EDITOR

       The Glyph Editor provides a simple bitmap editor designed to edit glyph
       bitmaps  and  other  glyph  information.   The  Glyph Editors all use a
       special clipboard used to pass bitmaps between the Glyph Editors.  This
       clipboard is called GLYPHEDIT_CLIPBOARD.

       The  only  limit on the number of Glyph Editors that can be open at one
       time is the amount of memory.

Glyph Editor Menus

       The File menu has the following entries:

       Update <Ctrl+S>
           This will update the Font Grid with the modified glyph.
           To the right of the Glyph Name field is a button that performs  the
           same function.

       Update and Next <Ctrl+U>
           This  will  update the FontGrid with the modified glyph and move to
           the next glyph.

       Update and Previous <Ctrl+B>
           This will update the FontGrid with the modified glyph and  move  to
           the previous glyph.

       Close <Ctrl+F4>
           This will close the Glyph Editor.

       The Edit menu has the following entries:

       Reload <Ctrl+L>
           This  will  reload  the  glyph  and discard any changes made in the
           GlyphEditor.

       Copy <Ctrl+C>
           This will copy the currently selected portion of the bitmap to  the
           Glyph Editor clipboard.

       Cut <Ctrl+X>
           This  will copy the currently selected portion of the bitmap to the
           Glyph Editor clipboard and then delete the selection.

       Paste <Ctrl+V>
           This will paste the contents of the Glyph Editor clipboard into the
           current  Glyph Editor with the top-left coordinate of the bitmap on
           the clipboard pasted at the location of the mouse.  If  the  bitmap
           is too big to fit if it is pasted at the mouse location, the bitmap
           will be shifted until it fits completely in the Glyph Editor.

       Select All <Ctrl+A>
           This will select the whole glyph bitmap.

       Next Glyph <Ctrl+N>
           This will move the Glyph Editor to the next glyph position  in  the
           Font  Grid.   If the current glyph has been modified, a save prompt
           will appear before moving to the next glyph.
           To the right of the Glyph Name field is a button that performs  the
           same function.

       Previous Glyph <Ctrl+P>
           This  will  move the Glyph Editor to the previous glyph position in
           the Font Grid.  If the current glyph  has  been  modified,  a  save
           prompt will appear before moving to the previous glyph.
           To  the right of the Glyph Name field is a button that performs the
           same function.

       The Operation menu has the following entries:

       Draw <Ctrl+D>
           Change the Glyph Editor into Draw mode.

       Move <Ctrl+M>
           Change the Glyph Editor into Move mode.  Move mode allows selecting
           a portion of the glyph bitmap and moving it to another location.

       Copy <Ctrl+Y>
           Change the Glyph Editor into Copy mode.  Copy mode allows copying a
           portion of the glyph bitmap and moving it to another location.

       Rotate <Ctrl+T>
           This will invoke the rotation dialog that  allows  the  degrees  of
           rotation  to  be  specified.   Rotation  can  be  between 1 and 359
           degrees.

       Shear <Ctrl+E>
           This will invoke the  shear  dialog  that  allows  the  degrees  of
           horizontal  shear  to  be  specified.  Other names for shearing are
           obliquing or slanting.   Shearing  is  allowed  between  1  and  45
           degrees.

       Embolden <Ctrl+H>
           This will embolden the glyph in a simple manner.

       Resize BBX <Ctrl+R>
           This  will  allow  changing  the  sizes  of  the glyph bounding box
           including the left/right bearings and the glyph ascent/descent.  If
           this  change  causes  the  glyph bounding box to be larger than the
           font bounding box, the font bounding box will be resized  when  the
           glyph is saved next.

       Edit PSF Unicode Mappings <Ctrl+F>
           This  allows  adding,  deleting and editing of Unicode mappings for
           fonts that will be exported as PSF fonts. The code  valued  entered
           are expected to be in hexadecimal.

Glyph Editor Other Features

       When  the  mouse  is used to shift the bitmap using one of the buttons,
       holding the mouse down will cause the activity to repeat.

PROPERTIES

SEE ALSO

       xmbdfed(1),   xfed(1),   bdftopcf(1),   bdftosnf(1),    psfaddtable(1),
       psfgettable(1), fontforge(1)
       Glyph  Bitmap Distribution Format (BDF) Specification, Application Note
       5005, Adobe System Inc, 1993
       X Logical Font Description, X Consortium

ACKNOWLEDGMENTS

       Ross Patterson for his HBF code.
       der Mouse for his "getbdf" code.
       K. Carothers and A. Korobka for their "fnt2bdf" code in Wine.

       Mike Stroyan <mike_stroyan@fc.hp.com> for patches.
       Primoz Peterlin <primoz.peterlin@biofiz.mf.uni-lj.si> for  this  manual
       page.
       Danny Backx <u27113@kb.be> for the LessTif Imakefile.
       Donald Page <donaldp@sco.com> for patches.
       Michal Szymanski <msz@sirius.astrouw.edu.pl> for problem reports.
       Werner Lemberg <a7971428@unet.univie.ac.at> for problem reports.
       William F. Maton <wmaton@enterprise.ic.gc.ca> for problem reports.
       Ivan Nejgebauer <ian@uns.ns.ac.yu> for problem reports.
       Solofo <solofo@mpi-sb.mpg.de> for problem reports.
       Dave Bodenstab <imdave@mcs.net> for patches.
       W.  Chao  <wchao@HRZ.Uni-Bielefeld.DE> for Makefile changes and problem
       report.
       Andreas Reuter <ar205@bonzo.geowiss.nat.tu-bs.de> for problem  reports.
       Leonard  Dickens  <leonard@saul.hipgraphics.com>  for IRIX 6.3 Makefile
       changes.
       Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk> for suggestions.
       Jim Knoble <jmknoble@pobox.com> for dialog geometry fixes.
       Darren Stuart Embry <dsembr01@ox.slug.louisville.edu> for  HP/UX  10.20
       X11R6 Makefile additions.
       Vladimir  Volovich <vvv@vvv.vsu.ru> for pointing out something I forgot
       to test.
       Ben Fry <fry@media.mit.edu> for IRIX 6.5.2 variables for the  Makefile.
       J.H.M. Dassen (Ray) <jdassen@debian.org> for bug fixes.
       Robert Brady <rwb197@ecs.soton.ac.uk> for pointing out a problem.
       Stefan Monnier <monnier@cs.yale.edu> for a bug report.
       Humphrey Clerx <humphrey.clerx@eurocontrol.be> for a bug report.
       Rudolf Cejka <cejkar@dcse.fee.vutbr.cz> for bug fixes and a suggestion.
       Baruch Even <baruch@ev-en.org> for a bug fix.
       Sergey Vlasov <vsu@mivlgu.murom.ru> for bug fixes.
       Daniel Neuburger <daniel.neuburger@lmco.com> for bug fixes.
       Pierre HANSER <Pierre.Hanser@sxb.bsf.alcatel.fr> for a bug fix.
       Patrick Hagglund <patrik.hagglund@bredband.net> for FreeType 2 support.
       James Cloos <cloos@jhcloos.com> for pointing out problems.
       Ming Hua <minghua@rice.edu> for pointing out problems.
       Viktor Urban <viktor@icc-atcsolutions.com> for pointing out problems.
       Jiri  "BlueBear"  Dluhos  <modry.medved@seznam.cz> for providing 64-bit
       fixes.
       Jan Engelhardt <jengelh@linux01.gwdg.de>  help  text  improvements  and
       missing prototype.
       Daniel  Richard G. <skunk@iSKUNK.ORG> for help on 64-bit architectures.
       Baruch Even <baruch@ev-en.org> for help on 64-bit architectures.
       Ming Hua <minghua.debian@gmail.com> for an unsuspected warning.
       Ryan Hill <dirtyepic@gentoo.org> for import dialog crash report.
       Don                                                               Knuth
       (https://bugs.launchpad.net/ubuntu/+source/gbdfed/+bug/172836)      for
       reporting spelling, gramatical and behavior problems.
       Tim Allen <screwtape@froup.com> for discovering glyph and font  spacing
       bugs.
       Daniel  Quarras  <dqarras@yahoo.com>  for discovering a PSF unicode map
       editing problem.
       Bertrand Janin <tamentis@neopulsar.org> for improving  the  GlyphEditor
       user interface.

AUTHOR

       Mark Leisher <mleisher@gmail.com>