BabelStone Blog

Sunday, 13 December 2009

BabelPad Version

A new and improved version of BabelPad that supports Unicode 5.2 has just been released, and can be downloaded directly by clicking here (simply unzip the file BabelPad.exe and run it from wherever you like). BabelPad will run on Windows 2000, XP, Vista and 7 systems, but I no longer provide a build that will run under Windows 95/98/Me (an unsupported build of Version 1.9.3 for Windows 95, 98 and Me is available at here for anyone who needs it).

This is the first official release of a new version of BabelPad since June 2008, and the first that to be announced here in over four years (BabelPad Version 1.9.3), because due to other commitments it has taken me nearly four years to get it into a fit state for release. As so many features have been added since the last official release, and as I have not yet got round to updating the help system, I think that it might be helpful to provide an overview of all the features and functions in the latest version of BabelPad.

Screenshot of BabelPad version 5.2.0 showing complex rendering with a virtual composite font

Click on the descriptions below to see different views of BabelPad

Complex rendering with a single font

Simple rendering with a virtual composite font

Complex rendering with a single font

Simple rendering with a single font

Complex rendering with a virtual composite font with colour highlighting of scripts

Browser view

Creative Commons License
All screenshots of BabelPad on this page are licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License (CC-BY-SA-3.0) by Andrew West.

In summary, BabelPad is a plain text Unicode editor for Windows with standard text editing functionality (such as drag-and-drop editing, find/replace, and unlimited undo/redo of changes), as well as many enhanced features for working with multilingual and multiscript documents. As a "plain text" editor, you can edit the raw text that a document comprises, but you cannot apply styles such as Font, Font Size, Bold/Underline/Italics and Colour to arbitrary sections of text in the document. As a Unicode editor you can read, edit and write documents encoded in Unicode, and manipulate Unicode text at the character level (this is different from editors such as Notepad that allow you to edit at the Grapheme Cluster level). The code point value and character name of the character at the current caret position is indicated on the status bar, and pressing Ctrl+= brings up a summary of most of the defined properties of the character.

To ensure optimum display of a document you can either apply a single font to the entire document, or use a virtual composite font that maps different actual fonts to different Unicode blocks as configured by the user (font mapping is at the block level rather than the script level for various reasons, not least of which is that there are technical constraints that mean that it is currently impossible for a single font to individually cover all 75,000+ characters that are defined as belonging to the Han script). Unlike Notepad and other Windows applications, BabelPad does not perform any secret font substitutions that are outside the control of the user, and the font that is selected or configured will always be the font that is used to render the text. You can enable a single font as selected from a dropdown box on the main toolbar by pressing Ctrl+1, and enable the currently configured composite font by pressing Ctrl+2. Multiple composite fonts can be configured, and loaded as required.

By default BabelPad uses Microsoft's Uniscribe rendering engine to ensure complex scripts are rendered correctly, with appropriate joining and shaping behaviour where required, or for non-complex scripts where requested by OpenType features in the font (e.g. for ligatures of Latin letters). However, in order to visualize the underlying characters that the text comprises it is possible to turn off complex rendering, and display all characters as individual, spacing characters in logical order (e.g. Arabic characters will be displayed in their isolated forms, laid out left-to-right in Left-to-Right Layout or right-to-left in Right-to-Left Layout; and decomposed, accented Latin text will be laid out with individual diacritic marks following their base character in their coding sequence). You can enable simple rendering mode by pressing Ctrl+0 (Ctrl plus zero), and re-enable complex rendering mode by pressing Ctrl+9.

Below is a detailed list of features, ordered by menu position (yes I know, menus are out and ribbons are in, but personally I find a well-ordered menu system way more usable than a ribbon full of random icons).

File Menu

Edit Menu

Convert Menu

Insert Menu

Input Menu

Tools Menu

Options Menu

Layout Menu

View Menu

Window Menu

Help Menu

Mouse Click Functions

Mouse Scroll Wheel Functions

The mouse scroll wheel has the following functions that can be used to manipulate the dropdown lists (Font, Font Size and Line Spacing) on the main toolbar, even when the main toolbar is hidden :

Keystroke Navigation

The following keystroke combinations may be used to move the current caret position within a document (holding the Shift key down at the same time will select the text between the start and end caret positions) :

BabelPad Version [2009-12-14]

This update fixes a bug in the menu display that affects US English users only.

BabelPad Version [2009-12-16]

This update has the following improvements and bug fixes:

BabelPad Version [2009-12-21]

This update fixes two bugs in the Uyghur "Latin (ULY) to Arabic" conversion function.

BabelPad Version [2009-12-23]

This update fixes a bug that causes BabelPad to get an incorrect glyph index for certain characters in certain fonts, which affects the "Copy CMAP Subtable" function.

BabelPad Version [2009-12-31]

This update fixes a bug that causes BabelPad to crash if the tab key is pressed multiple times when the Character Map utility is open.

BabelPad Version [2010-01-02]

This update improves character search in the Character Map utility, and displays the ISO/IEC 6429 names for control characters in the Character Map utility character description (these used to be displayed, but were inadvertently dropped somewhere along the line).

BabelPad Version [2010-01-09]

This update fixes a bug with the Join Lines function that caused it to fail to join lines under certain circumstances.

BabelPad Version [2010-06-06]

This update adds the following features :

BabelPad Version [2010-06-07]

This update fixes a bug that causes BabelPad to crash when displaying reserved character ranges under certain circumstances.

BabelPad Version [2010-06-09]

Refixes a bug whereby some of the radicals in the Han Radical Lookup Utility were displayed as the wrong character.

BabelPad Version [2010-06-18]

Fixes a bug with the block coverage statistics in the Composite Font Mappings dialog.

BabelPad Version BETA [2010-07-04]

Beta releases of BabelPad and BabelMap suporting Unicode 6.0 are now available for download:

Caveat: The Unicode properties in BabelMap/BabelPad are based on the latest versions of the Unicode 6.0 Beta data files, and although the data is unlikely to change substantially before the release of Unicode 6.0 in late September, some properties may be subject to change, and should not be relied on. However, character names and code points are fixed, and may be relied on.

As usual, please send any bug reports or feature requests to me (see my profile for my email address).



Index of BabelStone Blog Posts