tuxscribe User Manual

  1. Introduction
  2. Features
  3. Compilation
  4. Command line options
  5. Composing and Editing Documents
  6. Bugs and Annoyances
  7. Version History
  8. Copying

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).

2. Features

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.

4. Command line options:

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.

7. Version History

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.