1.
Introduction
tuxscribe is an X/GTK+-3 application for creating and editing
Egyptian Hieroglyphic Documents. tuxscribe uses its own glyphs that
are in the form of LZO compressed archives of individual Scalable
Vector Graphics (SVG) images. Currently tuxscribe has three such
archives, one of Normal Outline glyphs, one of Bold Outline glyphs
and one of Colored glyphs. At this time these archives contain only
Hieroglyphs of the Gardiner Set and there are no Transliteration
signs or alphabetic characters. tuxscribe does not support the use
of font files, such as the Aegyptus TTF font file. Finished
Documents can be saved as a PNG image (.png) or an SVG (.svg)
image, while the internal data that define the Document can be
saved in tuxscribe's own native file format (.tuxscribe).
Color Hieroglyphs
tuxscribe has the capability of producing Hieroglyphic Documents
with colored glyphs of SVG image format, as well as with Normal or
Bold outline glyphs, also of SVG image format. Individual glyphs
can be scaled and moved within a cadrat and they can be entered or
deleted as needed. Glyphs are entered into the Document either by
keying the Mnemonic name, e.g. A or f or xpr, or the Gardiner
number itself, e.g. G1 or I9 or L1, followed by either the Space
bar or the hyphen '-' character, as per the MDC code. Although
tuxscribe cannot work with the MDC code, it will accept a few code
elements when entering glyphs, e.g. '-' enters the selected glyph
in a new cadrat, ':' enters another glyph under the previously
entered, and '*' next to the previously entered. The '!' character
can be used to signal a new line, as does the 'Enter' key.
Use of Scalable Vector
Graphics
tuxscribe uses Scalable Vector Graphics images to produce a
Document. These are stored in a native LZO-compressed archive, one
for Normal outline glyphs, one for Bold outline glyphs and one for
(nicely!) Colored glyphs. tuxscribe cannot use font files commonly
used by Hieroglyphic type setting applications or hieroglyphic
document editors. This limits its usefulness to producing documents
with Egyptian hieroglyphs only, although it may be possible in the
future to add transliteration characters as well. The finished
document can be saved as a PNG (raster) image or as a SVG (vector)
graphics image. The latter can easily be converted to some other
document formats, such as PostScript and Adobe PDF.
3.
Compilation
Please note that I use Void Linux
AMD64 which is a "bleeding edge" type distribution, so there
may be compilation and/or run time difficulties if you are using a
relatively old distro. This is mostly true of the basic
dependencies like GTK+-3 and Glade-3.
To compile the package, it may be preferable to first run the included "autogen.sh" script in the package's top directory, to produce a fresh build environment. Then the "configure" script can be run with optional parameters to override the default settings and compiler flags. Please note that the "--export-dynamic" flag for the linker is needed for the tuxscribe binary to work.
Running "make" in the package's top directory should produce the executable binary in src/. Running "make install" will install the binary into /usr/local/bin by default or under the specified prefix. Please manually copy the "tuxscribe/" directory in the package's top directory to your home directory, for tuxscribe to work.
tuxscribe [-hv] -h: Print this usage information and exit. -v: Print version number and exit.
5. Composing and Editing
Documents
tuxscribe has a fairly simple and clean Graphical user interface
with the following features: At the top left, there is a standard
GTK+-3 style menu bar followed to the right by: a text entry widget
that displays the line number, a text entry widget that displays
the cadrat number, a text entry widget that displays or accepts the
hieroglyph code and finally one that displays the Gardiner number.
The main window is a GTK+ drawing area where the hieroglyphic
Document is composed by entering hieroglyph images, either by
typing the code on the keyboard (followed by the Space bar or the
hyphen character '-') or entering it to the Code text entry widget.
A context sensitive popup menu is available with a right button
click on the document area which at this time can be used to delete
a glyph from a cadrat or delete a cadrat from the document.
Here are the functions available through the menu bar items:
The File->New item prepares tuxscribe for the creation of
a new Document. If a Document is already open in tuxscribe,
activating File->New will offer to save the existing Document
first, before preparing for a new one.
The File->Open item opens a filechooser dialog from which
a native (.tuxscribe) Document data file can be selected for
opening. Again, if a Document is already open in tuxscribe,
activating File->Open will offer to save the existing Document
first, before opening a new one.
The File->Save item opens a filechooser dialog through
which a Document can be saved in the native (.tuxscribe) file
format. This is the file format used by tuxscribe to store data
used to compose the Document and by opening this file it is
possible to continue editing and re-saving the Document.
The File->Save as .tuxscribe item also opens a
filechooser dialog through which a Document can be saved in the
native (.tuxscribe) file format.
The File->Save as .png item opens a filechooser dialog
through which a Document can be saved as a .png format image file.
This image format is not easily re-sizable but it can have its uses
as a raster image file.
The File->Save as .svg item opens a filechooser dialog
through which a Document can be saved as an .svg (Scalable Vector
Graphics) format image file. This vector image format can be scaled
without loss of image quality and can be easily converted to a PDF
or PostScript type document.
At this time the the items in the Edit menu have not been implemented yet, although the Delete function is available in the pop up Document menu. Given spare time and opportunity I will implement these menu item functions, at least if they appear to be useful.
The View->Set Glyph Archive item opens a filechooser
dialog through which a Glyph archive can be selected. At this time
there are three glyph archives, Gardiner+_bold.glyph,
Gardiner+_normal.glyph and Gardiner+_color.glyph: Bold outline,
Normal (regular) outline and Colored glyphs. The current glyph
archive can be changed at any time during Document editing.
The View->Set Document Sizes item opens a Dialog box were
the Width and Height of the Document and the Cadrat Size and
internal Margin (in pixels) can be set. The Best Fit of Values
to Cadrat Height button causes tuxscribe to recalculate the
Width and Height of the Document and the Cadrat Margin so that
cadrats and lines can fit in the Document with minimal wasted
areas.
The View->Lock Cursor in Line checkbox causes tuxscribe
to keep the cursor inside the upper and lower borders of the
current line.
The Tools->Archive Glyphs item opens a filechooser dialog through which glyphs (in .svg file format) can be selected to be archived into a .glyph type glyph archive. This can be used to either create a new glyph archive or to add glyphs to an existing one: Note that to add glyphs to an archive it must first be decompressed using the Extract Glyphs menu and then the new glyph files can be copied into the same directory. To re-create the glyph archive, all the needed glyph files must be selected in the filechooser as a multiple selection before the Open button is activated.
The Tools->Extract Glyphs item opens a filechooser dialog through which a glyph archive (.glyph type file) can be selected and decompressed into the individual .svg type glyph files stored within. This is useful if glyphs need to be added to the archive or edited as needed.The Help->About menu opens an application description About dialog box with a short description of tuxscribe and some info about the developer, the license etc.
Information Display:
To the right of the Menu bar there are four text entry widgets that
display the current Line number, Cadrat number, the Hieroglyph Code
and the Gardiner number. The Hieroglyph Code text entry can also
accept a hieroglyph code followed by Enter, to place a new glyph
into the Document. Glyph entries are usually made just by keying
either the hieroglyph code, e.g. A or f or xpr or the Gardiner
number itself, e.g. G1 or I9 or L1, followed by Space or Hyphen
('-'). Although tuxscribe cannot handle the MDC code, the following
characters act as in the MDC encoding: Hyphen '-' enters a new
glyph into the Document. Colon ':' enters a new glyph below the
current glyph (the last one entered or one selected by pointer left
button click). Asterisk '*' enters a new glyph to the right of the
current glyph. Exclamation '!' signals a new line, as does the
Enter key.
Creating Hieroglyphic Documents:
A Hieroglyphic Document can be created by keying in the Code or
Gardiner number of the required hieroglyph and then keying '-' or
Space to create a new cadrat or ':' or '*' to add a new glyph to
the cadrat. If an incorrect Code or Gardiner number is keyed, an
error glyph will be entered and an Error dialog will pop up. The
Error glyph can then be deleted and replaced with the right one.
New glyphs and cadrats are entered at the position of the Cursor
(the blue vertical line) and the Cursor can be positioned either by
a left-click of the pointer or by navigating with the Up-Down or
Left-Right arrow keys. Keying a space creates an empty cadrat
filled with Grey color, as a place holder. New glyphs can also be
entered in a cadrat by keying ':' or '*' as in the MDC code. This
will have an effect relative to the current glyph, which would be
either the last one entered or one selected by left-click of the
pointer on a glyph. A cadrat can be selected by left click of the
pointer just inside the cadrat border.
A cadrat or glyph can be deleted by right-clicking the pointer on the object of interest and activating the appropriate item in the pop up menu. A just-deleted glyph can be replaced by keying the code of a new glyph followed by one of the placement keys (':' or '*'). Individual glyphs can be re-sized by selecting with the pointer and keying the '+' or '-' keys in the numerical keypad of the keyboard. Alternatively, putting the pointer over a glyph and activating the scroll wheel will re-size the glyph as needed. Glyphs can also be moved in a cadrat by selecting with the pointer and using the Up-Down and Left-Right keys. When the document is saved as a .tuxscribe file, these manual changes applied to the document are retained.
6. Bugs and annoyances
I have fixed whatever bugs I came across testing tuxscribe but
there may be some hiding, waiting for the right conditions to
appear.
tuxscribe as this stage is a rather limited Hieroglyphic Document editor/creator, as it doesn't support the MDC code and glyph entry can only be made from the keyboard. A lot of development is still needed if tuxscribe will become really useful, rather than a limited teaching aid. This is because I wrote tuxscribe as a personal teaching aid, once I got interested in learning basic Egyptian hieroglyphic writing and reading.
Version 0.1: This is the first working version of tuxscribe that resulted from a long and tiring effort to create a color Hieroglyphic Document editor to be used as a personal teaching aid. Here is a brief history of tuxscribe:
It is time consuming and difficult to draw hieroglyphs on paper when studying so I thought I should use computer software to make things easier. The only good application I found for this purpose was JSesh but in the end I felt I should try to roll my own, so that I could use color hieroglyphs and be able to hack it as needed.
There weren't any color hieroglyphs readily available, not a full Gardiner set in any case, so I produced a complete Gardiner set of hieroglyphs, extracted with a software tool I wrote, from the Aegyptus TTF font file. The extracted glyphs were outline images in PNG format and I edited these in the Gimp image editor, to close the outlines and make them of more uniform thickness. I also made some changes to these glyphs to improve their appearance, at least to my personal liking. Once the outlines were ready, I edited the glyphs in the Gimp again, colorizing the images as best as I could to represent objects realistically. Some glyphs that depict objects I couldn't quite make out are likely to be incorrectly colored, but this can be fixed.
Once the PNG glyph images were ready, I looked for an application to trace them and convert them into color SVG image files, but couldn't find one available for the Linux operating system. So I decided to write my own tool, based on the potrace library, to convert the PNG raster glyph images into SVG vector image files with a clean and minimalist content. This was necessary to keep these SVG files small and with a consistent format. Once I completed the color vectorizer tool and converted the PNG images to SVG files, I then had to develop code to compress these into an archive to reduce size and the number of files (there are more than a thousand hieroglyphs in the Gardiner set, and I have three versions, Normal Outline, Bold Outline and Colored!). I incorporated code from the mini LZO fast compression/decompression library to compress and decompress the glyph archives "on the fly". Mini LZO has a lower compression ratio but it is small and compact and also very fast. So eventually and at last I ended up with the first limited but working version of tuxscribe which was able to compress and decompress SVG images into archives, it was able to display single glyphs in cadrats in lines and could save the resulting Document as a PNG image.
Version 0.2: I added text entry widgets at the top of the tuxscribe window to display Line number, Cadrat number, the Hieroglyph code and Gardiner number. The Hieroglyph code text entry can also accept Hieroglyph codes to be entered into the Document, e.g. A, f, xpr or G1 or I9 or L1.
Version 0.3: I added code to allow multiple glyph entries into a single cadrat so the glyphs can be stacked, a function similar to the effect of e.g. D:i*b in MDC. also added code to create a pop-up menu to allow the deletion of cadrats and/or glyphs from the Document.
Version 0.4: I added code to automatically manage as far a possible the placement of glyphs in cadrats. When more than one glyphs are entered into a cadrat, this code automatically scales and translates glyphs so that they fit in the cadrat and have the available space in it fairly shared.
Version 0.4-beta: I added code to allow the user to scale or move glyphs in a cadrat to create a composition of his liking. Also added code that allows the saving of a finished document in SVG image format, which far better represents the content of a document and allows loss-free re-sizing or scaling. Finally added code the allows Document data (all the data needed to place the glyphs into a Document) to be saved in a native (.tuxscribe) file, to make it possible to save and open tuxscribe Documents. This is the first public beta release, hopefully stable and useful enough for testing and evaluation!
Version 0.5-beta: I have fixed some bugs and modified a lot of the code, to allow changing the document and cadrat sizes and applying them to an open document. I also modified the code so that on typing Space, a blank glyph is entered in the new cadrat. This makes it possible to handle blank cadrats the same way hieroglyphs are handled.
Version 0.6-beta: I have added a "No" button to the message dialog to give the user the choice of not saving an edited document before opening a new one, if he wants to. Also edited slightly the appearance of tuxscribe so that the version number is shown in the Main window title and in the About dialog.
Version 0.7-beta: I carried out some source code cleanup, mainly declaring file functions as static and removing them from the common.h file. Also edited tuxscribe.glade to better obtain the necessary margins and spacing of widgets with more efficient settings.
Version 0.8: I migrated the internationalization system from "intltoolize" to GNU GetText, as the former is now considered obsolete. Also replaced the autogen.sh script with a newer version.
Version 0.8.1: I edited Makefile.am so that make install will now place relevant application files (documentation, pixmaps, desktop file, glade UI file etc) into the right places.
Version 0.8.2: Changed the installation commands in Makefile.am so that all the relevant files (desktop file, application pixmap, configuration file, executable binary etc) are installed under any location specified to the configure script by the --prefix= option. Also modified the program so that on first start up after installation, the application will create its working directory by copying files from the relevant directories under the installation prefix.
8. Copying This software package is released under the GNU Public License. Please see the COPYING file for more details.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.