Table of Contents
xmbdfed - Motif-based BDF font editor
xmbdfed [options] [fonts
...]
xmbdfed 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. xmbdfed can import Metafont PK/GF fonts, Han Bitmap
Font Format (HBF) fonts, Linux console fonts (PSF, CP, and EGA/VGA) fonts,
Sun VF fonts, TrueType (TTF) fonts, or grab a font from the X server. xmbdfed
can export PSF2 Linux console fonts and HEX fonts (see online help). The
editor support two and four bits per pixel gray scale fonts.
xmbdfed works
on X Window System Version 11 (X11), Release 5 or Release 6, with Motif
1.2.x or Motif 2.x.
xmbdfed accepts the following command line arguments:
- -nc
- do not preserve comments (by default, xmbdfed automatically collects
comments that are saved with the font).
- -nu
- do not preserve unencoded glyphs
(by default, xmbdfed preserves the unencoded glyphs).
- -nm
- do not make metrics
corrections (by default, xmbdfed attempts to make metrics corrections automatically).
- -np
- do not pad character-cell bitmaps (by default, xmbdfed pads character-cell
bitmaps with 0’s to the cell dimensions when the font is saved).
- -bp
- allow
blank pages (by default, xmbdfed 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, xmbdfed sets it to 12).
- -hres n
- set
default horizontal resolution.
- -vres n
- set default vertical resolution.
- -res
n
- set both default resolutions (if unspecified, xmbdfed 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).
- -bpp n
- set the default bits per pixel for new
fonts (1, 2, or 4).
- -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.
- -pb
- do not use the
progress bar. Use the watch cursor instead.
- -cb code-base
- specify the code
base used to display the glyphs encodings (can be "octal", "decimal", or
"hexadecimal").
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 "Setup"
dialog.
If the Shift key is held down while the "Next" or "Previous" page
buttons is pressed, then the paging behavior will be opposite of the current
paging behavior.
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 expected 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.
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.
- Windows Font <Ctrl+B>
- Import a Windows
FON/FNT font. This will also import fonts from .EXE and .DLL files as well.
- TrueType Font <Ctrl+Y>
- Import a TrueType font (.ttf extension) or a TrueType
collection (.ttc extension).
- Server Font <Ctrl+G>
- Import a font from the X
server.
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 Font Grid cliboard with
the glyphs starting at the currently selected position. The names of the
modified glyphs are not changed.
- Insert <Ctrl+Meta+V> or Shift<Button2Down>
- This inserts 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.
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.
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.
The File menu has the following entries:
- Update <Ctrl+S>
- This will update the Font Grid with the modified glyph.
- 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.
- Import XBM <Ctrl+I>
- This will pop up a file selection dialog so an X Bitmap file (.xbm extension)
can be selected to be imported into the glyph editor.
The imported bitmap
is handled the same way as bitmaps pasted. They are inserted as a selection
with the move operation active and do not destroy any bitmap that already
exists in the editor.
- Export XBM <Ctrl+O>
- This will pop up a file selection
dialog so that the glyph image can be exported as an X Bitmap file (.xbm
extension).
- 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.
- 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.
- 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.
- 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.
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.
When the mouse
is used to shift the bitmap by one of the buttons, holding the mouse down
will cause the activity to repeat.
When editing fonts with two or four
bits per pixel, a strip of colors is presented on the left side of the
Glyph Editor toolbox. These can be selected with the mouse or with certain
keys (see online help text for details).
The program understands
all of the core X Toolkit resource names and classes as well as:
- noComments
(Boolean)
- Specify whether xmbdfed preserves comments or not (default False).
- noUnencodedGlyphs (Boolean)
- Specify whether xmbdfed preserves unencoded
glyphs (character code -1) or not (default False).
- noMetricsCorrections (Boolean)
- Specify whether xmbdfed does metrics corrections or not (default False).
- padCharacterCells (Boolean)
- Specify whether character-cell glyphs should
be padded to cell geometry (default False).
- skipBlankGlyphPages (Boolean)
- Specify whether xmbdfed skips blank pages or not (default True).
- fontPointSize
(Cardinal)
- Sets default point size.
- fontHorizontalResolution (Cardinal)
- Sets default horizontal resolution.
- fontVerticalResolution (Cardinal)
- Sets
default vertical resolution.
- fontResolution (Cardinal)
- Sets both default
horizontal and vertical resolutions.
- fontSpacing (String)
- Sets the default
font spacing ("p", "m", or "c")
xfed(1)
, bdftopcf(1)
, bdftosnf(1)
,
psfaddtable(1)
, psfgettable(1)
, pfaedit(1)
Glyph Bitmap Distribution Format (BDF) Specification, Application Note
5005, Adobe System Inc, 1993
X Logical Font Description, X Consortium
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.
Mark
Leisher
Computing Research Lab
New Mexico State University
Email: mleisher@crl.nmsu.edu
Table of Contents