Version 2.0
July 28, 2011
GNU Lesser General Public License (LGPL)

----------

Contents

Introduction

A "Braille translator" is software that converts text into a format that provides instructions for producing braille, which is typically contained in a file with a .brf extension. Hard copy braille may be produced by a braille brinter or embosser; Refreshable braille may be produced by an electronic braille display. A "back translator" in this context does the reverse, such as converting a file from .brf to .txt format.

NFBTrans is a braille translator and back translator first developed in the 1990s by volunteers from the National Federation of the Blind. Its user interface is limited to operations at a command prompt. Through a separate development effort, WinTrans was released in 2003 as a friendly Windows dialog that runs NFBTrans behind the scenes.  WinBT 2.0 refers to a new compilation, configuration, and packaging of both programs, hopefully giving the software a second life in the current Windows environment.

Thus, WinBT 2.0 is an updated distribution of the NFBTrans braille translator (BT), and the associated WinTrans graphical user interface (GUI). The original NFBTrans programmers are no longer involved in the project, and the wintrans-bt.org web site has ceased. Continued maintenance of NFBTrans has been led by Steve Jacobson as Vice President of the NFB in Computer Science. He recruited additional programmers, and improved the default configuration settings of NFBTrans.

The original author of WinTrans chose not to reveal his or her identity, using the name "Anonymous John" instead. Since several years had elapsed since then, we tried to find the author in case he or she now wished to be publicly acknowledged. Ultimately, we found him via Tom Dimeo, who had introduced WinTrans to the world in a podcast of the Main Menu program by ACB Radio (an audio tutorial included in this distribution). The two of them communicated about this new effort, and George McCoy has now authorized us to disclose that he is the one who authored WinTrans. He has also contributed to the current project, and we have mutually agreed to release our combined work going forward under the GNU Lesser General Public License (LGPL).

Recent discussion about improving NFBTrans has occurred on the email list called "ProgrammingBlind," to which one can subscribe through the web site
http://FreeLists.org

The NFBTrans code was ported and recompiled by Tyler Littlefield, using Microsoft Visual C++ 2008, a free Express Edition of which is available at
http://www.microsoft.com/visualstudio/en-us/products/2008-editions/express

The new build resulted in a 32-bit rather than 16-bit executable, thus allowing it to run under 64-bit Windows, which, unlike prior Windows versions, does not run 16-bit programs. The Visual Studio solution file, NFBTrans.sln, contains compiler configuration information that allows a developer to easily recompile the C code. Anyone who finds ways of improving the code, configuration settings, or documentation is encouraged to contribute such improvements back to the community.

The WinTrans source code, WinTrans.bas, was recompiled by Jamal Mazrui using PowerBASIC 10.0, a commercial compiler available at
http://powerbasic.com

He also improved the WinTrans installer using Inno Setup 5, which is freely available at
http://InnoSetup.org

The script file, wbtsetup.iss, gives InnoSetup instructions for building the installer, wbtsetup.exe. It creates a desktop shortcut for launching the WinBT dialog, with an optional hotkey assignment, Alt+Control+B (for braille translator). The installer also creates a WinBT program group in the Windows Start/Programs menu with options for launching the program, reading the documentation, playing an audio tutorial, viewing the license, or uninstalling the program. By default, the documentation is opened at the end of the installation process, and the audio tutorial may optionally be played then as well. The program may also be launched by entering "WinBT" in the Windows Start/Run dialog (capitalization does not matter).

The original distribution files for NFBTrans and WinTrans, nfbtr774.zip and winbt.zip (renamed from winbt.exe), are included in the WinBT program directory. Also included there is the first public release of the WinTrans 1.0 source code in the PowerBASIC language, contained in WinTrans.zip. By default, the program directory is located at
C:\WinBT

To minimize risks of compatibility problems with this update, we recommend either accepting that directory name, or using another that includes no space in the path.

The WinBT installer, wbtsetup.exe, may be downloaded at
http://EmpowermentZone.com/wbtsetup.exe

A zip archive containing the same files is available at
http://EmpowermentZone.com/wbtsetup.zip

This documentation is also available online at
http://EmpowermentZone.com/WinBT.htm

The updated distribution can give a new life to WinTrans and NFBTrans.  The installer makes the braille translator friendly to install, use, and learn.  The documentation gives developers information about recompiling the source code, thus opening a possible path to improvements contributed by the open source community.  The original WinTrans and NFBTrans archives are also included, so that anyone can start from there instead if preferred.

WinBT 2.0 has resulted from constructive collaboration among various parties for the common good of blind people. Although imperfections undoubtedly remain, there is clear progress that is worth sharing. We hope these contributions extend the value of NFBTrans and related technologies to users of electronic braille!

The remaining sections of this guide are taken verbatim from the documentation files for WinTrans and NFBTrans. There is some redundancy of information in order to be complete.

WinTrans Braille Translator


By Anonymous John
Current version is dated February 13, 2003

This documentation and software is copyright (c) 2002 by Anonymous John. All rights except those expressly granted in the License section of this document
are reserved by the author.

Description:

WinTrans is a windows interface to the NfbTrans program. Its purpose is to allow windows users to translate text files to grade II braille and grade II
braille files to text without dealing with the dos environment in which NfbTrans runs.

License:

Wintrans is free for personal use. It may not be used in conjunction with or as a part of any commercial or nonprofit enterprise. You may distribute the
program freely provided the original self-extracter is not altered in any way and this notice is preserved.

Absolutely no fee can be charged in regard to distribution of Wintrans. You may not bundle it with any commercial program whatsoever. You may not charge
any fee for Wintrans including but not limited to shipping, handling, media fees or any distribution fee. Wintrans may not be distributed as part of a
demo CD or shareware collection for which any fee whatsoever is charged.

The author of Wintrans disclaims all warranties as to this software, whether expressed or implied, including without limitation any implied warranties of
merchantability, fitness for a particular purpose, functionality, data integrity or protection.

The winbt.exe package (winbt.zip) contains all the files that are required to use the WinTrans program. It is approximately 400 KB in size. Version 7.74 of NFB Trans (nfbtr774.zip) is being used for the translation. The audio review for WinTrans (WinBT.mp3) is approximately 22 minutes in length and 5 MB in size.

WinTrans version 1.0 Documentation

By Anonymous John

This documentation and software is copyright (c) 2002 by Anonymous John.
All rights except those expressly granted in the License section of this document are reserved by the author.

Description:

WinTrans is a windows interface to the NfbTrans program.
Its purpose is to allow windows users to translate text files to grade II braille and grade II braille files to text without dealing with the dos environment in which NfbTrans runs.

License:

Wintrans is free for personal use.
It may not be used in conjunction with or as a part of any commercial or nonprofit enterprise.
You may distribute the program freely provided the original self-extracter is not altered in any way and this notice is preserved.

Absolutely no fee can be charged in regard to distribution of Wintrans.
You may not bundle it with any commercial program or system whatsoever.
You may not charge any fee for Wintrans including but not limited to shipping, handling, media fees
or any distribution fee.
Wintrans may not be distributed as part of a demo CD or shareware collection for which any fee whatsoever is charged.

The author of Wintrans disclaims all warranties as to this software, whether
expressed or implied, including without limitation any implied
warranties of merchantability, fitness for a particular purpose,
functionality, data integrity or protection.

Contact Us:

You can contact us via the web at http://www.wintrans-bt.org or by
email at info@wintrans-bt.org.

Installation:

Installation is simple.
Just place the wintrans.exe and wintrans.ini files in the same folder as NfbTrans.exe.
For purposes of these examples, we will assume you got Wintrans as part of the winbt.exe archive and that you installed the whole thing to the default c:\winbt\ folder.

To start the program press Windows+R to bring up the run dialog.
Enter: c:\winbt\wintrans.exe.
You can also set up a desktop shortcut and click that instead of using the run dialog.
Consult your windows documentation to learn how to set up a shortcut.

Overview:

The main dialog contains a series of buttons and a set of radio buttons.
Each one has a corresponding hot key so you can quickly and easily move to the item you want.
They are:
Input ALT+I
Output ALT+O
braille to text ALT+B
Text to braille ALT+T
Translate ALT+R
Emboss ALT+E
Volumes ALT+V
Preferences ALT+P
Stats ALT+S
Exit ALT+X

You can use the hot keys to quickly and easily move to any desired item.

Translating Files:

Tab to the input button and press enter or press ALT+I.
The input file dialog appears.
Type or browse to the name of your input file and press enter.
If the file is not in the \winbt folder, you will have to include the path.
If the file does not exist, you are so informed and you are given another chance to enter a file name.

Tab to the output button and press enter or press ALT+O.
The output file dialog appears.
Type an output file name and press enter.You will be prompted if you are about to overwrite an existing file.
If this happens, press y to overwrite the file or n for another chance to enter a new file name.

The output file is optional.
If you leave it blank, WinTrans will use the name and path of the input file with the appropriate extension.
If the input file is myfile.brf and you leave the output file blank, the translation will be written to myfile.txt.
Similarly, if the input file is myfile.txt and you leave the output file blank, the translation will be written to myfile.brf.

Tab to the translation mode radio buttons.
Use the arrow keys to check the box you want.
The choices are braille to text and text to braille.
You can also check braille to text by pressing ALT+B or text to braille by pressing ALT+T.

Tab to the translate button and press enter or press ALT+R.
The word 'Translating' appears on the status line.
When translation is complete, a message box appears reporting success or failure.

The translate button also notifies you of various entry errors such as entering an input file with a .txt extension and checking the braille to text check box.

Embossing Files:

If you have an embosser, WinTrans allows you to take advantage of NfbTrans's embossing capabilities.
Tab to the input button and press enter or press ALT+I.
The input file dialog appears.
Type or browse to the name of your input file and press enter.
If the file is not in the \winbt folder, you will have to include the path.
If the file does not exist, you are so informed and you are given another chance to enter a file name.

You must give your file a .brf extension.
If you happen to have a braille file with another extension, rename it before embossing.
If you enter a file with a .txt extension, the file is translated and then embossed.

Tab to the emboss button and press enter or press ALT+E.
Be sure your embosser is online, powered up and loaded with paper before clicking this button.

Multiple Volumes:

To handle multiple braille volumes, tab to the volumes button and press enter or press ALT+V.
You are prompted for an input volume spec.
Enter the path to the files and enough of the name to get them all without excluding any.
Let's say we want to translate a 4-volume book.
It's in a folder called c:\good books.
The files are good book v01.brl, good book v02.brl and so on.
Our volume spec might be:
c:\good books\good book.

You can also enter a path without file name.
If you do, all files in the folder are available for translation.

A message box appears.
Press y to combine output into one file or n to produce a separate text file for each file translated.

You are now prompted for an output volume spec.
You can enter a path if you want separate files for each selected volume or you can enter a path and filespec if you are combining volumes.
If you do not specify an output path, Wintrans uses the last one specified.

If you answered yes to the combine volumes question but did not specify an output file, output is written to a file with the root of the first file that matches the input volume spec.
The output file has a .brf or .txt extension depending on the type of translation being done.

A list box now appears.
Arrow to the files you want to translate and press the space bar to select or unselect.

You can translate or emboss multiple volumes by clicking the translate or emboss buttons at the bottom of the list box.
Click cancel to exit multiple volume translation.

If the braille to text radio button on the main screen is checked, braille volumes are translated to text.
If the text to braille radio button is checked, text is translated into braille.

Preferences:

You can customize WinTrans to take advantage of NfbTrans's powerful formatting and translation capabilities by clicking the preferences button.
Tab to it and press enter or press ALT+P.

This dialog contains edit boxes, check boxes, radio buttons and regular buttons.
Each one has a corresponding hot key so you can quickly and easily go to the item you want to change.
They are:
Left margin ALT+M
Copies ALT+C
Page width ALT+W
Page len ALT+L
Start page ALT+S
End page ALT+E
Formfeed ALT+F
V-Tab ALT+V
Blanks ALT+B
Interpoint ALT+I
Sound ALT+U
Config file ALT+N
Format file ALT+R
Table files ALT+T
Commands ALT+D
Apply ALT+A
Ok ALT+O
Exit ALT+X

The left margin edit box (ALT+M) sets the left margin for the files you are translating.
Change this setting if the text you are translating is not left justified.
The default is 1.
See the lm= option in the NfbTrans manual for details.

The copies edit box (ALT+C) sets the number of copies to emboss.
The default is 1.
See the co= option in the NfbTrans manual for details.

The page width edit box (ALT+W) sets the maximum number of braille cells per line.
The default is 40.
See the pw= option in the NfbTrans manual for details.

The page len edit box (ALT+L) sets the number of lines per braille page.
The default is 25.
See the pl= option in the NfbTrans manual for details.

The start page edit box (ALT+S) sets the first braille page to be embossed.
The default is 1.
This option accepts any valid page specification.
You can enter an ending page and set roman and arabic numerals paging as well.
See the ps= option in the NfbTrans manual for details.

The end page edit box (ALT+E) sets the last braille page to be embossed.
The default is 9999 (end of document).
See the pe= option in the NfbTrans manual for details.

The pageBreaks radio buttons tell the embosser what to do at the end of each braille page.
The default is formfeed, which separates pages with a formfeed character.
The hotkey is ALT+F.
The V-tab option separates pages with the vertical tab character.
The hotkey is ALT+V.
The blanks option separates pages with the appropriate number of blank lines.
The hotkey is ALT+B.
See the ls= option in the NfbTrans manual for details.

The interpoint checkbox (ALT+I) turns interpoint embossing on and off.
Check this box if you are going to emboss both sides of each page.
The hotkey toggles the check box.
The default is off.
See the ip= option in the NfbTrans manual for details.

The sound check box (ALT+U) toggles sound for NfbTrans.
When checked, all sounds are enabled.
When unchecked, all sounds are disabled except for error notifications.
See the so= option in the NfbTrans manual for details.

The config file edit box (ALT+N) sets the configuration file for NfbTrans.
The default is nfbtrans.cnf.
Be sure the file exists before you define it here.
If it doesn't, you are alerted and Wintrans uses the default.
See part 4 of the NfbTrans manual for details on building custom configuration files.

The format file edit box (ALT+R) allows you to set an external format language file for NfbTrans.
Be sure the file exists before you define it here.
If it doesn't, you are alerted and no EFL file is used.
See the le= option in part 4 of the NfbTrans manual and part 6 of the manual for more information on the external format language.

The table files edit box (ALT+T) allows you to define translation tables for NfbTrans.The form is BrlTable.tabsemi-colon;BakTable.tab where
BrlTable.tab is the text to braille translation table and BakTable.tab is the braille to text translation table.
The default is braille.tabsemi-colon;back.tab and does not appear in the edit box.

You can change the braille table and leave the back table alone by entering the name of the braille table alone without the semi-colon.
You can change the back table and leave the braille table alone by preceding the name of the back table file with a semi-colon;.
Make sure the table files exist before defining them here.
If they don't, you are alerted and Wintrans uses the appropriate defaults.
If your braille table does not exist, braille.tab is used.
If your back table does not exist, back.tab is used.
See the tf= option in the NfbTrans manual and part 9 of the manual for details on changing translation tables.

The port edit box allows you to change the port to which your embosser is connected.
The default is LPT1:
There is no hotkey.
Valid ports are: LPT1:, LPT2: ... or COM1:, COM2: etc.

The commands edit box (ALT+D) allows you to enter any valid command line arguments for NfbTrans.
See part 4 of the NfbTrans manual for details on command line options.

The apply button (ALT+A) changes the settings for the current session only.
The defaults stored in wintrans.ini will be restored the next time you run Wintrans.

The ok button (ALT+O) changes the settings and saves those changes to disk.
They will be in effect for the current and all future sessions.

The exit button (ALT+X) exits the preferences dialog and returns you to the main screen.

Stats:

Tab to the stats button and press enter or press ALT+S.
An edit box appears with the statistics from the last file or files translated.
Click the close button or press ALT+C to return to the main screen.

Exit:

Click the exit button, press ALT+F4 or ALT+X to exit.
You need not leave the program after the first translation.
You can translate or embossas many files as you like before exiting.

Welcome to nfbtrans 7.74


November 4, 2002.

Introduction.
NFBTRANS is a Grade Two braille translator.
It is freeware
and comes with complete C sourse and documentation.
The program converts ascii
text into braille and sends the result to a file or an embossor.
Special
formatting commands may be placed in the text to customize the output. No
knowledge of braille is required to use this program,
however you must be able
to edit ascii files and be familiar with MSDOS commands.
This archive contains
the DOS executable version of NFBTRANS.
The program has been successfully
compiled to run in unix.
NFBTRANS is suitable for brailling menus, letters, and
manuals.
Many users have found that NFBTRANS serves their translation needs
without having to purchase expensivbe commercial translators.

Features: NFBTRANS is a very accurate Grade Two braille translator.
It can also back translate a Grade Two file into normal text.
The program
has many options which allow the user to customize its operation.
Formatting
commands can be used to generate Tables of Contents, ink print page numbers,
running headers and much more. Translation rules are in a text file and
can easily be modified by the user.
The program can be configured to
hyphenate words to save space.

Limitations: NFBTRANS can only translate from ascii text. It cannot
convert binary files such as those produced by Microsoft Word unless they
are first converted to ascii text.
The text may have lines of unlimited
length and they may contain extended graphics characters.
Nfbtrans only
has a partial implementation of Grade 3 braille.

files included:
back.tab: Table to translate a Grade 2 file back to text.
vcomp.c: C source for braille compare utility.
bcomp.exe DOS executable for braille compare utility.
braille.tab: English braille translation table.
english.dic: hyphenation dictionary.
install.bat: Install batch file for nfbtrans.
makedoc: script file for unix users to convert nfbtrans.fmt to nfbtrans.txt

which can be printed.
makedoc.bat: batch file to convert nfbtrans.fmt to a print manual.
Makefile: make file for unix.
menu.cnf: sample menu file.
nfbasm.asm: sound routines for MicroSoft C.
nfbtrans: make file for MicroSoft C.
nfbtrans.c: source for nfbtrans.
nfbtrans.cnf: sample configuration file.
nfbtrans.exe: executable DOS version of nfbtrans.
nfbtrans.fmt: documentation for nfbtrans formatted for brailling with nfbtrans.
nfbpatch.c: routines required to run nfbtrans in unix.
readme.txt: this file.
spanish.zip spanish tables
spell.dat: spelling dictionary file.
tables.zip: foreign language tables for nfbtrans.
tvfreqs.fmt example of a braille table.

My purpose in releasing this version of nfbtrans is to make a high quality
braille translation program available to anyone who has a use for it.
It is very usable for most situations and will at least give you a
feel for braille translation.

Installing nfbtrans for MSDOS:
1.
Unzip this archive into a scratch directory.
2.
Change to that directory.
3.
Run the install program using the command

INSTALL drive:\nfbtrans_directory.
4.
Examine the entries in nfbtrans.cnf and

make changes if you wish.
See nfbtrans.txt for a complete

description of options.
Include this directory in your path if you want to

run nfbtrans from anywhere on your disk.

Installing nfbtrans for Unix:

Unzip nfbtrans into an empty directory.
From the unix shell type
mv MAKEFILE Makefile
Then enter
make lowercase

This is necessary because the program files were zipped in MSDOS and the
file names are in upper case when unzipped in unix.
Files specifically for
the MSDOS version are also removed at this time.

Compile nfbtrans by entering make target where target is ultrix, linux,
sunos, djgpp, or aix.
You will have to add the target for your machine to
makefile if it is not one of these. The termcap entry in
the LIB= statement may need to be removed in linux.
When the compile is
successful, copy nfbtrans to usually /usr/local/bin and set permissions
usually chmod 755 nfbtrans.
Copy nfbtrans.cnf, back.tab, english.dic, spell.dat
and braille.tab to /usr/local/lib.
Edit nfbtrans.cnf and change options if
necessary.

Quick Start:
Always use the parallel port to connect with your embossor if possible.
Otherwise use the mode command to redirect lpt1 to whatever com port
you are using.
Examine nfbtrans.cnf paying special attention to the entries pw=, pl= and sp=.
Make sure your printer is configured to output computer braille, skip perfs,
and that it supports the page width and length given in nfbtrans.cnf.
Make sure the DOS print command is resident if you set sp=1.

Nfbtrans can be run in several ways.
The syntax is:
NFBTRANS [option1] [option2] [...] [file1] [file2] [...].
Options are of the form xx=string.
They are fully described in nfbtrans.txt.
There are over 100 options many of which you will never need to use.
They
may be given on the command line, in nfbtrans.cnf, in the translation table,
or in the document to be embossed. The program can also be run with no command
line arguments. The user will be prompted for required information depending
on the options in nfbtrans.cnf.

1.
To emboss a file, enter nfbtrans with no arguments and answer the questions.
2.
Enter nfbtrans pw=42 pl=27 myfile.txt to emboss myfile.txt page width of
42 and page length of 27.
3.
Enter nfbtrans file1.txt file2.txt to emboss file1.txt and file2.txt.
4.
Enter nfbtrans file1.txt file2.txt >outfile to translate file1.txt and

file2.txt to outfile.
5.
Enter nfbtrans <file.txt to emboss file.txt.
Output goes to stdout in unix.
6.
Enter nfbtrans <file.txt >outfile.txt to translate file.txt to outfile.txt.
7.
Enter type infile.txt | nfbtrans to emboss infile.txt.
8.
Enter nfbtrans d:\progs\*.c c:\pascal\*.pas to emboss the .c and .pas

files in the given directories.
9. Enter nfbtrans @listfile c:\temp\*.h to emboss the files contained in
listfile and then the .h files in c:\temp.

The file to be translated is assumed to be an ascii text file. Lines may
be of any length.
Characters from decimal 128-255 are
processed according to the gm= option. gm=0 causes the high bit to be removed,
gm=1 causes the character to be ignored, and gm=2 leaves the character
unmodified.
This character will be translated according to the rules in
braille.tab.
Graphics characters are used primarily with other languages.

For properly formatted braille you must use the nfbtrans formatting commands.
Formatting commands are indicated by a tilde preceeding the actual formatting
command.
For example (tilde)cChapter One
willl center the line Chapter One.
If you don't care if headings are centered or if columns of tables are
aligned properly then don't worry about formatting commands.
Nfbtrans
can determine the start of a paragraph.
If paragraphs are preceeded by a
blank line use block paragraph mode (tilde)5.
If paragraphs are indented use
(tilde)t. Use (tilde)6 if you want nfbtrans to scan the file before
translating to determine how paragraphs are formatted. Nfbtrans can be set
up to rejoin hyphenated words in the file.
You may also use the optional
hyphenation dictionary english.dic to automatically hyphenate words.

Nfbtrans translates files differently depending on their extension.
This is
determined by the ex= and i0= through i9= options in nfbtrans.cnf.
Note that if input is redirected as in nfbtrans <infile.c, the program never
sees the name infile.c.
The input file is set to stdin if input is
redirected which means that infile.c will not be treated as a .c file.
Use the si= option if you want to name it something else.
By default nfbtrans translates files into grade two braille with the
nfbtrans formatting commands enabled.
Files with .arc, .arj, .com, .exe, .obj, .qwk, .zip and .zoo are considered
binary files and are not translated.
Files with .asm, .bas, .bat, .c, .cpp, .h, .mac, and .pas are considered
program files and are output in non-standard computer braille.
.brl files are output in grade two with formatting enabled.
.prt files are
output in 80 column format standard computer braille.
.man files
are considered unix man pages and are output in non-standard computer braille and
block paragraphs.
.fmt files are output in Grade Two with formatting enabled and no file and
date printed at the top of page one. Blank lines within two lines of the
bottom cause nfbtrans to go to the next page.
All other extensions are translated to Grade two with formatting enabled.

Nfbtrans can easily be run in Windows even if you don't have a DOS
screenreader.
If you plan to use nfbtrans primarily for backtranslating .brf
files, do the following:
Associate the .brf extension with nfbtrans.
This is done using windows
Explorer, view, options, then file types. If .brf is not a registered file type
then click new, Braille Format File as description, content type Application,
check the show extension and confirm download boxes. For action the command line
should be something like this:
c:\command.com /c c:\tools\nfbtrans.exe tm=13 on=2 od=c:\mybooks
and the action can just be Open. Then click close until you get out of explorer
so your changes are saved.
Now when you click on a .brf file in explorer or run
from the run dialog box, nfbtrans automatically backtranslates your .brf file
and returns to windows.
Use the od= option in nfbtrans.cnf to specify where
to store the output. The output file has the same name as the input file
but with a .txt extension. Review the od= and on= options in nfbtrans.fmt.
This also allows you to download .brf files from web braille.

Note that nfbtrans does not support long file names. If a long name is given
as an argument or in a prompt you will get a file not found error. If you click
a long name from windows explorer the program uses the equivilent 8 by 3
MSDOS file name.

History:
7.74:
Added ns= option.

7.73:
Minor back translation improvements, additions to braille.tab from NLS problem

words in literary proofreading course. Fixed error embossing an already

translated file.

7.72:
Corrected backtranslation error regarding braille numbers broken in 7.71.
Turn off computer braille for line if no _& or _:
Can specify bits to set in options i.e. sm=0,2,3,4,13

7.71:
More backtranslation improvements including correct translation of the

computer indicator symbols.
Wildcard input files will produce separate output files if the on= option is used.

7.70:
More work on back translation. Added to braille.tab and back.tab.

7.69:
Added on= option.
More improvements in back translation.

7.68:
Corrected error in unix makefile.
More improvements to back translation.

7.67:
Added em= option.
Fixed error in kf= option.
Additions to braille.tab and back.tab.
More improvements in back translation.

7.66:
Added more entries to back.tab and improved back translation of numbers.

7.65:
Added type 13 to back translation table.
Improved handling of italics and $ in back translation.
Added two more bits to the sm= option.

7.64:
Fixed ts= option.
Added type 30 to braille.tab.
Added ve= option.
Added several entries to braille.tab.

7.63:
Improvements in back translation.

7.62:
Improvements in back translation.

7.61:
kf= option modified so won't cause errors with headings and footings.

7.60:
Changed kf= option for only back translation.

7.59:
Improved sc= option.
Added sd= and sn= option.

7.58:
Fixed problem with ob= and ls= option.

7.57:
Improved ~w footer command.
Improved handlihng of inner quotes.
Added bp= option for pagebreaks with n lines for textbook pages.
Added sc= spellcheck option.

7.56:
Modified hc= option so calls not translated can be in any case.
Fixed improper handling of files named bat c pas ... ...
Remove letter sign translating numbers ending in 0th
Improved back translation especially concerning dashes.

7.55:
fixed ~d command.
Added indent option to ~s command.

7.54:
Fixed problem with dv= option.
Improved back translation table, does letter signs properly.
Should backtranslate lowercase output from Blazie notetakers.

7.53:
Fixed Y2K problem with hyphenation dictionary.
Improvements to english.dic and braille.tab.
Added ~\k index command.
Fixed ~' and ~} commands.
Added lowercase target in unix make file to convert files to lower case.
Added support for roman page numbers in automatic TOC and index.
Improved ~n and ~r formatting commands.
Corrected unwanted output with ~h command.
Improved lt= option and statistics file.
Added word to EFL commands.
Output roman page numbers with header properly.
Corrected problem where two TOC entries were put on a single line.
Improved statistics file.
Updated back.tab to accomidate Blazie notetakers.

7.52:
Fix problem with pd= and statistics file from Y2K.
Removed debugging message from braille.tab and back.tab.

7.51:
Fixed problem with ~h and line paragraph mode.
Added uk= option for proper dash formatting with British braille.
Added ~# comment in source command.
Added nmatch command and fixed other problems with EFL code.
Added bl=, od= and pm= option.
Added index feature with the ~\i and ~\j formatting commands.
Fixed problem of cut off words when using textbook pages.
Added ~! formatting command.
Allow graphics characters in option strings.

7.50:
Fixed bug evaluating options with two integer arguments broken in 7.49.
Improved operation of rp= and rw= options.
Improved back translation.
Added l3= option for spanish Grade two braille.

7.49:
Added ac=, lb=, of=, m3=, mf= and sl= option.
Added type 17 two-word match and type 18 3-word match for french language.
Added ~7 line paragraph mode.
Added more foreign language tablees.
Added top margin to ~m command.
Corrected problem translating numbers such as 21st 22nd 23rd and 24th.
Improved Grade 3 output.
Allow up to five line headers.

7.48:
Removed hv= option and made improvements in operation of hyphenation

dictionary, especially for unix.
Allow for mixed case file names in unix.
Added dv= and rf= option.
Fixed problem with ~h command during interpoint embossing and verify headings

fit on one line.
Improved operation of ht= option.
Added entries to braille.tab and statistics file.
Added ~] and ~{ command.

7.47:
Fixed rare stack overflow problem when using a small page width.
Fixed tables.zip.
Allow up to 2000 entries in translation table and no limit on match and replace
strings.
Added lt= option.

7.46:
Fixed several ~f+ problems.
Fixed problem where #. was placed at the end of a word ending with a period.
Fixed conditional page break command which didn't always work.
Fixed problem redirecting input when command line options were given.

7.45:
Fixed various unix problems including incorrect display of error messages.
Fixed rejoining of hyphenated words in computer braille.
Allow user to specify only Roman pages in the page range to emboss.

7.44:
Added new feature to TOC ~f command.
Added te= and to= options.
Corrected error in back.tab.
Added linux target for unix.

7.43:
Corrected problems translating mixed numbers and letters.
More improvements in back.tab.
Modified the tf= option so the back translation table can also be specified.
Corrected problem left justifying columns with the td= option.
Added kf= option for formatting back translation output.

7.42:
Added rc=, lp= rp= and tp= option.
Simplified operation of the hm= and rw= options.
removed he= option.
Improved back translation.

7.41:
Fixed problem of not joining words with, of, and for broken in 7.35.
Fixed problem where hyphenated words ending in punctuation were split and the

punctuation was dropped.
Output the file name as well as line number when a character isn't in the

table.
Do validity check on options such as page width must be less than 255.
Added hp= and ob= option.
Fixed bm=15 option which occasionally crashed.
Added ts= option to output table stats.
Allow any character including space to be in replace string of table.
Added back.tab and modified code to back translate a Grade 2 file.

7.40:
Added hb= hl= hn= and hx= options.
Added bit six to the hm= option to automate adding words to dictionary.
Removed debugging statement accidentally left in the ~h command.

7.39:
Fixed bug in the ~i\ italics command deleting first character of word if

first word of file.

Fixed problems with reps* and repw* EFL commands.
Modified operation of oc= to control case of computer braille.
Changed operation of le= option to allow a global .efl file.
Fixed problems caused when input line length changed when using EFL.
Added option, line and graphics keywords to .efl language.
Added type 16 for German language.

7.38:
Added vc= option defining vowels and consonants for table types 13-15.
Fixed problem with trailing punctuation and the hm= option.
Allow the | no translate symbol in the hyphenation dictionary.
Fixed problem where a space was left after to or by before a split word.
Fixed program crash when there is only one entry in table for each letter.
Fixed output case to correspond with oc= option when the | no translate

symbol is used.
Program automatically does consistency check whenever dictionary files are

updated.
Changed the order in which nfbtrans looks for nfbtrans.cnf in DOX and UNIX

to NFBTRANS environment variable, current directory, and location of

program in DOS or /usr/local/lib in Unix.
Fixed errors in unix version preventing hyphenation dictionary from working.
Allow type 7 contractions like ation at end of hyphenated words.
Prevent type 2 contractions from being used in beginning of hyphenated words.

7.37:
Fixed problem where program could not find file with the hd= and ht= option.
Added ability to store hyphenated words in a file with the hm= option.

7.36:
Fixed problem of incorrect line numbers reported with the ht= option.
Report line numbers with the ht= option making it easier to add words.
Added another bit to the hm= option to output words which were not found.

7.35:
Fixed problems with grate 2 graphics character translation.
Allow graphics characters to be specified within brackets in braille.tab.
Fixed problem where vertical bar and grade two graphics caused the table to be

modified.
Added bm=book_mode option.
Added tc= option for customized TOC header.
Added hyphenation dictionary options hd= and ht=.
Added hm= option to specify type of words to hyphenate.
Fixed ~p command broken in 7.34.

7.34:
Fixed problem with hyphen file while doing automatic TOC.
Remove space after dash if a hyphenated word is not rejoined. half-an- hour

becomes half-an-hour.
Output vertical bar if math table is active.
Allow graphics characters to have types 1-11 in braille.tab.
Added type 12 and l2= option for Dutch braille.
Added dm=message to display a message.
Added oc= option to change case of the output.

7.33:
Added math options ma= ms= and mt=.
Added be= option to output a beep.
Added fc= option to change fill character in Table of Contents.
Added if= option to ignore certain format characters.

7.32:
Improved italics support.

7.31:
Added l0 and l1 options.
Improved italics support.
Added li= option to indicate end of input lines.

7.30:
Fixed bug where table entries for extended graphics characters gave an error.
Added tf= option to load another set of translation rules.
braille.tab can contain command line options.
Type 29 was added indicating upper case graphics characters.
eb= option was replaced with ca= for user definable capitalization marks.
Added it= option for user definable italics marks.
Added gm=3 to abort program if a graphics character is used but not in table.
Added tn= option for default translation mode.
Added le= option to load an External Format Language file.
Fixed problem of input lines not being counted properly during automatic

paragraph formatting.
Modified rw= option so graphics characters can be considered letters.
Added (tilde)_ for hard carriage return.
Added reps* and repw* to replace multiple occurrences of strings or words.
Added several foreign language tables in tables.zip.

7.29:
Added eb= option for English braille, no capitalization marks.
Added options ia through ie so up to 15 extension types can be defined.
Require that nfbtrans be compiled in the large memory model.

7.28:
Abort if the last word of a (tilde)f is too long.
Added gd= option specifying the minimum number of guide dots that will be
output.
Added td= option to define a multi column table.

7.27:
Removed rg= option and added gm= option to support extended graphics
characters.
Added more rules to braille.tab.
Modified operation of (tilde)p:n to disable a prior (tilde)pn until next page.
Modified operation of (tilde)f so user can mark the last word.

7.26:
Read nfbtrans.cnf before each file is processed.
Added replace options to external format language.
Added another page break option (tilde)p:n to cause page breaks if within n lines
from the bottom of the page.
Do not translate the word us if uppercase.

7.25:
Fixed incorrect line length reported in statistics file if margin greater

than one.
Added pd=2 to print date but not time on first line. Allow more than 20
characters for filename if pd=0.
Fixed problem of options being mistaken for filenames on command line.
Creates different files when sp=1 and two files translated within one second.
Added ability to change where line breaks occur with old type of TOC entry.

7.24:
Modified the (tilde)p command for conditional page breaks.
(tilde)p can also skip
to the next right facing page for interpoint embossors.
Added lf= option so a group of files can be embossed as one file.
Changed nfbtrans.doc to nfbtrans.fmt with nfbtrans formatting
commands to produce a respectable braille manual.
Fixed several problems including incorrect page numbers in Table of Contents,
unnecessary reloading of table switching from grade zero to
two, and certain
words being joined together when switching from grade two to computer braille.
Added more error trapping with format commands.

7.23:
Modified rw= option to produce a hyphen file so users can select words
not to rejoin.
Improved handling of (tilde)f table of contents command.
Nfbtrans can automatically
determine braille page numbers for a Table of Contents.
nfbtrans.exe has been compiled for 80286 Processors.

7.22:
Don't rejoin words if the first word has more than one dash or if the second
word has one or more dashes.
Report the correct line number with rw=2.

7.21:
Fixed problem of embossing an extra page where a page range is specified.
If the interpoint option is set and a page range is specified, the ending page
is set to an even page so the back side of the last page will be printed.
Look for a .efl file only if the input file is an ordinary file.
Added qm quiet mode option.
Added rw=2 to list rejoined words during translation.

7.20:
Command line arguments other than xx= options are considered to be files to
be translated or embossed.
They must come after the xx= options if any.
File names starting with the @ character indicate a file containing a list
of files to be translated.
nfbtrans.cnf is now a required file.
Fixed problem of occasionally outputting a blank page with a page number at
the end of a file.
Improved operation of wildcards in DOS.
Modified the pf= option so that pf=2 means print filename rather than entire
path.
Removed fx option.
Added ef=n option.
See External Format Language in nfbtrans.doc.
Improved coding for external format language.
Added (tilde)6 automatic paragraph format command.
Added sp=2 telling program to pause between files so print queue
won't overflow.
Added si= option.
Added et= option.

7.19:
Allow ex= to specify a base file name. If a file has no extension, a search
is done on the base name of a file.
Eliminated output of blank lines in text mode.
Fixed problem where long words were split and characters were lost because
of page numbers.
Added pn= print device option.
Fixed problem where progress messages appeared in the output file when output
was redirected.
Improved operation of the (tilde)3 command.
Add kc keep control characters option.
Toggle sound on/off by pressing space during translation.

7.18:
Added new type 11 meaning beginning but not all.
Changed numeric
type to 19.
Fixed problem causing printing of only the first file if sp=1 and wildcards
were used.
Fixed the (tilde)- option so it could be followed by other tilde commands.
Fixed problem of program outputting occasional blank lines.
Fixed error where words > page width lost characters when split to next line.

7.17:
Improved coding for joining hyphenated words.
Added option rg= so characters >127 are ignored.
Improved handling of words greater than the page width.
This could happen
when translating a mathematical formula or an 80 column line of dashes.
Words consisting of repeated characters are truncated to the current line
length.
Alternating characters like -=-=-= are also considered repeating
characters.
Words of non-repeating characters are put on subsequent lines. Words more than
132 characters are truncated.
Previous versions always used 6 characters for the page number in the upper
right corner.
This has been changed to 4 if page is less than 10 and 5
if page is less than 100.
Backspace ctrl-h characters are handled properly.
This is useful for
printing unix man pages where ^h is used to underline words.

7.16:
Added an alternative to 8-dot braille. Output is computer braille with the

addition of braille capitalization marks and dots 56 to indicate

lowercase.
Eliminated the obsolete options fi= fo= po= tilde tilde =.
Added options fs=format_string.
Added option cs= so embossing time can be estimated if sp=1.
Improved error checking while loading braille.tab.
Match strings must
now be in lexical order.

7.15:
Added support for IO redirection.
Rejoins hyphenated words before translation.
Change lines of underscores to dashes for nicer looking braille.
Added support for interpoint printers.
Supports the DOS print command for embossing in backround.
Will optionally number first page.
Automatic centering of multiple lines.
Can emboss multiple files in DOS with wildcards.
User can configure nfbtrans to translate files depending on their extension.

for example .c files in computer braille and .brl in Grade 2.
User can translate to Grade 3 using only dot 4, 5, 45 and 456 contractions.

See (tilde)31 and (tilde)32 in nfbtrans.doc.
User can select to put filename and/or date at top of first page.
Added format options (tilde)4 block, (tilde)5 block paragraph and (tilde)-option to call a
command line option in a format command.
Ending page can also be entered at the starting page prompt.

Send bug reports to n8kl@mindspring.com.

Braille Translator User Documentation


Release 7.74 November 4, 2002
I

TABLE of CONTENTS
PART 1: Introduction ......................................................... 1
PART 2: Requirements ......................................................... 1
PART 3: Getting Started ...................................................... 1
PART 4: Command Line Options ................................................. 3
PART 5: Formatting Commands ................................................. 13
PART 6: External Format Language ............................................ 19
PART 7: Braille Considerations .............................................. 21
PART 8: Changing the Translation Table ...................................... 22
PART 9: Other Considerations ................................................ 23

PART 1: Introduction
1

The NFB braille translator is a computer program designed to easily and
quickly produce Grade 2 braille from text entered using a word processing
program. The program has been designed to be as easy to use as we can make it.
Most operators can start producing grade 2 braille with half-an-hour practice.
There are a number of commands that enable you to format the braille output for
almost any purpose.

Braille, by its very nature, does not have the same format as print text. A
typical braille page consists of twenty-five lines, each of which is forty
characters long. Unlike the standard printed page, most braille documents do not
utilize either a top or bottom printed margin. In other words, on a typical
braille page, all twenty-five lines are used for text. In some cases, the first
line is used for a running header. In braille produced by this program, with the
exception of braille page 1, the upper right corner of the page will contain a
braille page number. See Interpoint printing described later. Also see the fp=
option if you want to number page one.

Blank lines in braille text are kept to a minimum. In contrast to many
printed formats, braille paragraphs are not separated by a blank line. A braille
paragraph is denoted by an indented line which starts in cell three. A blank
line in braille might well be used to offset large portions of quoted text or to
precede a centered heading.

By using advanced formatting it is possible to create special format
documents with the NFB braille translator. There are frequently requirements to
produce documents that present information in outline format, for example, a
restaurant menu or a schedule.

PART 2: Requirements

In general, you will need a computer, an embossor, and word processing
software to use this program. You will need to be familiar with your operating
system and your word processing system. Please be familiar with the various
copying and setup procedures appropriate to your system.

You must also have a brailling device. This can be any embossor or
paperless braille device that uses the Triformation LED-120 coding scheme. These
include the Triformation series, the Thiel, the TED, the Cranmer Modified
Perkins, the Romeo, Juliet, and the Braillo.

You or your hardware supplier should be sure that the embossor is properly
connected to the computer and is working. The braille translator expects the
embossor to be connected to the default list device. Because the computer could
have more than one print device, the operating system provides ways to change
the default device path. You can redirect the standard list output using the
MODE command, for example, MODE LPT1:=COM1: .

You can use any word processor to create the file to be translated. It is
important to save the file in ascii however. Lines may be of any length and can
be terminated by CR/LF or LF.

PART 3: Getting Started

1. Connect embossor.

2. Include the location of nfbtrans in the path in your autoexec.bat file.
This allows nfbtrans to be run from any directory. Nfbtrans looks for
nfbtrans.cnf in three places. First, you can define an environment variable
NFBTRANS to point to the directory containing nfbtrans.cnf. In DOS use set
NFBTRANS=c:\NFBTRANS. Second the program searches in the current directory.
Third, the program location is used in MSDOS or /usr/local/lib in Unix. If
nfbtrans.cnf is found that directory is used to search for all table files as
well as the hyphenation dictionary. In other words, nfbtrans.cnf and braille.tab
must be in the same directory.

3. After the prompt, type NFBTRANS, for example:
2

(prompt) NFBTRANS Nfbtrans then displays version and copyright messages
depending on the contents of your nfbtrans.cnf file.

4. The program will then ask a series of questions depending on
nfbtrans.cnf. Many questions can be eliminated by placing options in
nfbtrans.cnf. Each question except the name of the file to be translated will be
followed by a standard default response. To select the default, simply press the
RETURN. The questions and defaults are as follows:

Please select

1 to Translate a Text File, 2 to emboss a File that has been Translated 3
Backtranslate a Grade 2 file Choice? 1

You may either translate a file that you have entered with a word
processing program, emboss a file that has already been translated or translate
a Grade 2 file back to text. Select

Source file name?

Enter the name of the file you want to translate, such as B:LETTER.txt or
A:REPORT. Wildcard characters may be used to specify several files. If multiple
files are specified, they are sorted and processed in alphabetical order. If the
output is sent to a file and the on= option is used, a separate output file is
created for each input file. Otherwise the output for files specified by the
wildcards will be stored in one large file. Files beginning with the @ "at" sign
are assumed to contain lists of files to be translated. You should put only one
file name per line and wildcard characters are allowed in the list. Blank lines
are ignored.

Enter number of spaces before left margin of source file (usually 1) 1

Use another number if the document you want to translate does not fully
left justify. Enter the column of the beginning of the left margin.

Enter number of braille cells to emboss on a Line (usually 40) 40

You can specify an alternate line length, such as 42 cells. Just press
return to use default.

Display Source Text (Y/N): N

If you do not want to see the source text as it translates or embosses,
enter N.

Display Translated Text (Y/N): Y

If you do not want to see the translated text as it translates or embosses,
enter N. Most sighted people like to see it.

Number of lines per page? 25

Enter the number of lines per braille page, usually 25. Press return to use
default.

Number of Line Skips between Pages (99-FF, 999-VT)? 99

Enter the blank lines between pages to get to the top of the next page. If
you want to use the form feed command (FF), enter 99. The Thiel embossor works
well with the FF command. If you want to use the vertical tab (VT), enter 999.
The old Triformation LED-120 may require the VT depending on the version of the
embossor you have. 0 tells nfbtrans to output blank lines to go to the top of
the next page. Most embossors use the Form Feed--99. Press return to use
default.

Please select 1 to translate and store in a file or 2 translate and emboss
immediately. Choice? 2

Select the first option if you want to store a translated file for future
embossing. While the translator is fast, it is even faster to simply emboss a
file that has already been translated. If you only need one copy, select option
2 and emboss the file immediately. See sp= for backround embossing.

Enter starting page: 1

Normally, enter a 1 to start at the beginning. If you want to start further
into the document, enter the BRAILLE PAGE NUMBER at which you want to start. You

may enter the ending page at this time by separating it from the starting
3 page with a dash, comma, or space, for example 1 20. If ip=1 is in effect, the
starting page must be odd. If not, nfbtrans subtracts 1. You can specify Roman
Numeral pages by placing a lowercase r after the page number. Entering 3r-5r
causes the program to output Roman pages 3-5. Entering 3r-15 outputs Roman page
3 and later and arabic pages 1-15. Place a lowercase a after a page number to
indicate an arabic page range.

Enter last page to emboss:9999

Normally, enter a 9999 to emboss the entire document. If you want to emboss
fewer pages, enter the BRAILLE PAGE NUMBER at which you want to stop.

Number of Copies: 1

Enter the number of copies you want.

PART 4: Command Line Options

Syntax: nfbtrans [option 1] [option 2] [...] file1 file2 ... Options are of
the form xx=value for example pw=43 will set the page width to 43. Options may
be specified in several ways: 1. On the command line, 2. In nfbtrans.cnf, 3. In
any table file, 4. In the file being translated, 5. In an external format
language file, and 6. In initialization strings. Most options may be used in all
six places but several cannot. For example the initialization options i0= can
only be used in nfbtrans.cnf. The program reports an error if you use an option
where it is not allowed.

Note that the case of the two-letter option does not matter but the case of
the option string itself may be significant, especially in unix.

NFBTRANS processes all options in nfbtrans.cnf, then any options on the
command line. Next it processes any options in the table file. The configuration
file is read again for each subsequent file if more than one file was specified.
The table file may or may not be re-read depending on the file being translated.

Note that several options have integer arguments which require an
understanding of how to set or clear bits in the integer. The behavior of these
options is determined by which bits are set. An integer has sixteen bits, bit
zero through fifteen. B0 corresponds to 1, B1 to 2, B2 to 4, B3 to 8, B4 to 16,
B5 to 32, B6 to 64 and so on. For example if you need to set bits 1 and 3 for an
option the number you would use is 2 plus 8 equals 10. Bits may also be set bya
list of bit numbers separated by commas. For example if you want to set bits 0,
2, 4, 5, and 8 you could use the syntax sm=0,2,4,5,8 rather than figuring out
the corresponding integer.

Some options require a string of characters as argument. These characters
may be enclosed in double or single quotes. Quotes are not necessary unless you
want the option string to contain spaces.

The last type of option requires one character as an argument. Extra
characters are ignored. A space character is assumed if nothing follows the
equal sign.

list of options:

ac=auto_center = 0/1 causes nfbtrans to examine each input line to see if
it is centered. If it is, the corresponding output will be centered. This option
can be followed by formatting commands, default is ~2s ~c which causes a blank
line to be placed before the centered line. Note that it is possible that some
lines may be automatically centered when they shouldn't be. Also use the rp=
option to remove page numbers from the input lines.

be=freq,duration outputs a beep. This can be used for debugging, for
example, when a particular table gets loaded. be=440,500 beeps the speaker at
440HZ for half a second.

bl=string outputs string instead of a space for blank lines.

bm=book_mode tells nfbtrans how to handle textbook page breaks using the ~b
formatting command. If bit zero is set the program will put a line of dashes

before the ink-print page number. If bit one is set nfbtrans will put the
4 print page in the upper right and the braille page in the lower right corner of
the page. If bit two is set and your document has a Table of Contents where
nfbtrans generates page numbers, both the print and braille page numbers are
output. If bit three is set a TOC header will be put before the beginning of the
TOC and at the beginning of each subsequent TOC page. The TOC header has two
lines each with three columns:
Title Print Braille
blank Page Page
and then a blank line. Many braille magazines have this type of TOC. Bit three
implies bit two. (See the tc= option described later).

bp=n puts the beginning of a textbook page on the next braille page if
within n lines of the bottom.

ca=capital_marks defines how upper case words or letters are brailled.
Default is ca=,|,,|; meaning a single uppercase letter is preceded by a dot 6,
while multiple uppercase letters by two dot 6's and that the letter sign is dots
56. Note that a vertical bar separates the strings.

cf=filename specifies another name for nfbtrans.cnf.

cl=nn Specify the maximum length of lines during centering. Maximum value
is page width minus 6. Default is 32.

co=nn number of copies example co=3 Use co=0 to always be prompted for
number of copies.

cs=nn specifies number of characters your printer can print per second. It
is used to estimate embossing time before file is sent to the DOS print command.
Estimates are given only if 2 minutes or more. Default is cs=40.

cu=char specifies the currency character used with the manual tilde f
command.

db=0 or 1 display braille 0 no 1 yes -1 to be prompted.

de=delay specifies delay in MS between lines of embossed output. If
handshaking is working properly use de=0.

dm=message outputs message to standard error. For example the line
dm="reading configuration file" could be placed in nfbtrans.cnf to indicate that
it is being read.

ds=display source 0 for no 1 for yes -1 to be prompted.

dv=x,y puts lines of dots 2-5 on lines x and y. These lines can then be
used to fold the page into a letter. Use dv=0,0 to terminate this option.

ef=n default is ef=1 If bit 0 is set, NFBTRANS will process the
corresponding .efl file if it exists. If the file exists and there is a syntax
error, an error message is displayed and the program aborts. If bit 0 is clear,
the program will not look for a .efl file. If bit 1 is set, the program will
abort if the .efl file is not found. If bit 2 is set, the user is notified when
a .efl is processed.

EM=expected_mode tells the program which translation mode is used with a
given table. This prevents users from using back.tab when translating to a Grade
Two file and braille.tab when back translating.

et=0/1 default is 1 tells nfbtrans to expand tab characters to the next tab
stop. Some editors can be set to replace whitespace characters with tabs to
reduce the size of a file. If kc=1 is in effect, tabs are are not expanded.

ex= extension_definition. You can tell nfbtrans to take certain actions
depending on the extension of the input file. The extensions are followed by
"equal" and then by a number. For example ex==0c=1h=1pas=1brl=2 says that files
with no extension use strings from the i0= option and .c .h and .pas files are
associated with i1 and brl i2. You can tell nfbtrans to skip files with certain
extensions using '-' as in ex=exe=- The extensions can be in any order and you
may have several ex= options in nfbtrans.cnf. The program can store up to 45
extension definitions. The ex= option can also be used to specify the basename

of a file. If a file has no extension, its name is compared to the ex=
5 options. For example ex=makefile=1 associates a file named makefile with i1. See
nfbtrans.cnf for examples. Note that this option is case sensitive in unix but
not in dos.

fc=fill_char specifies the character to use as a fill character in a Table
of Contents ~F entry. Default is a quote character.

fp=1 Number first page. Otherwise do not number first page.

fs=format_char specifies the format character, usually tilde. Use fs= if
your document has embedded tilde or carat symbols that are not nfbtrans format
commands.

gd=n sets the minimum number of guide dots that will be output with a ~f
command. The default is two meaning that if the translated line has less than
two guide dots, they will be converted to blanks.

gm=0/1/2 Sets graphics mode default is gm=0. Normally nfbtrans ignores
extended graphics characters, characters whose ascii value is greater than 127.
If gm=1 the high bit is removed. If gm=2 the character is left intact. Place the
appropriate entries in braille.tab if you want to expand these characters.
Nfbtrans will report an error and abort if a graphics character is used but not
defined in the table.

hb=rejected_word_file specifies the name of the file to store rejected
words you don't want added to the dictionary. Default is hb=bad.dic.

hc=0/1/2 tells the program not to translate ham calls. if set to one, calls
can be in any case, if set to two only calls in upper case will not be
translated.

hd=hyphenation_dictionary specifies the name of a hyphenation dictionary
file. This file should contain a lexically sorted list of uppercase words with
dashes where the word could be hyphenated. When a word is too long to fit on the
current line, the dictionary is searched to see if part of the word will fit.
Use the vertical bar no translation character if you don't want certain split
words contracted. For example num-|ber prevents the program from using the BE
sign. There is no limit on the size of the hyphenation dictionary. Large
dictionaries will slow the operation of nfbtrans but not as much as you might
think. The program stores the start of words beginning with B, C, D ... For
example if nfbtrans searches the dictionary for the word youngster, it starts
from the beginning of the file if it is the first search. While searching, it
stores the position of the B, C ... through Y words. The search is unsuccessful
if a word is found that is greater lexically than youngster. On a second search
for the word helper the program already knows where the H words start. If you do
a third search for a word beginning with Z, the program starts at the Y words
adding the start of the Z words. The dictionary may contain words starting with
uppercase letters as well as extended graphics characters. Nfbtrans operates at
about two-thirds normal speed with a nine-thousand word hyphenation dictionary.
You can put the dictionary on a ram drive for a slight improvement. If the first
character is a slash or the second character of the dictionary file is a colon,
the program does not use the location of nfbtrans to find the file. There is no
default hyphenation dictionary, you must use the hd= option to make it active.
Use two double or single quotes to disable the hyphenation dictionary. The
dictionary is not searched for computer braille words i.e. Grade zero. (See the
hm= ht= and rw= options described later.)

There are three ways to add words to the hyphenation dictionary: 1. Use a
text editor to insert the new word in the proper place. 2. Use the hm= option to
automatically insert new words read from the file being translated, and 3. Use
the ht= option to automatically insert words entered from the keyboard.

The program does a consistency check every time you update the dictionary.
It compares the file's date with the date stored in the first line of the file.
If the dates do not agree, the program verifies all words are in uppercase and

that they are sorted properly. The program inserts the current date in the
6 first line of the file.

Note for Unix users. Nfbtrans will automatically remove carriage returns
and re-write the dictionary file.

hk=1 enables hot keys meaning you don't need to press RETURN when entering
a single digit or answering Y/N.

hl=min_length specifies the minimum length of words considered for
hyphenation; default is four.

hm=hyphen_mode specifies several options concerning word hyphenation. Bit
zero activates the hyphenation dictionary. The hd= option automatically sets bit
zero leaving the other bits unchanged. In other words, you can temporarily
disable hyphen dictionary searches after the hd= option by clearing bit zero and
enable dictionary searching later by resetting bit zero. Note that if only bit
zero is set, words with leading or trailing punctuation will not be hyphenated.
Bit one attempts to split words containing dashes. This is true regardless of
whether the hyphenation dictionary is active. Bit two will attempt to split
words containing leading punctuation. (See the lp= option described later). Bit
three attempts to split words with trailing punctuation marks. For example the
word number followed by a comma and a quote is searched by removing the comma
and quote and if split, they are appended to the split word. (See the tp= option
described later). Bit four outputs words that are split to standard error. Bit
five outputs words that were not found which can later be added to your
dictionary. If you follow the number with a character string, the output from
this option will be sent to that file rather than standard error. For example
hm=31h:file.txt stores the output in a file called file.txt. If the file already
exists, the output is appended. Setting bit six tells the program to add new
words to the dictionary. This is done as follows: When a word is encountered
that is not in the dictionary you are asked whether you want to add it. If no,
the rejected word is placed in a file named bad.dic. If yes, you will be
prompted for the new word as it should appear in the dictionary. Press escape to
end this mode. The program inserts the new word in the proper place. You must
have enough disk space for a temporary copy of the dictionary. If bit fifteen is
set consistency checks on the hyphenation dictionary are not done automatically
when the dictionary is updated.

hn=n specifies how often a consistency check is done on the dictionary when
bit six is set with the hm= option. Default is hn=5.

hp=n specifies the number of hyphenated words allowed per page, default is
99.

ht=hyphenation dictionary is used to test consistency of your hyphenation
dictionary file. The file is examined to make sure all words are in uppercase
and that they are sorted properly. If no errors are found, you are prompted to
enter a word or press enter to exit. If the word is found the line number of the
word in the dictionary is shown. If the word is not found the line number where
the word should be placed is shown. The program then asks if you want to insert
the word. If yes, you are prompted for the word as it would appear in the
dictionary and it is inserted. The program automatically tests a dictionary file
when the hd= option loads a file whose date has changed since it was last loaded
with an hd= option.

hx=max_consec_hyphens specifies the maximum number of consecutive
hyphenated words, default is three.

i0= through i9= I: I; I< I= i> I@ and, ia= through ie= specifies a set of
three strings that can be associated with a given extension defined with the ex=
option. The strings are pre_init, post_init, and format_char. Pre_init is
processed before the file is embossed or stored and post_init after. These
strings may contain format commands to invoke grade two, change page length and
so forth. Escape sequences can also be sent. For example, if you want to use the

ca= option with i0= option, use i0=~-ca=,\124,,\124;|| The backslash124 is a
7 way of using the vertical bar for an option within an option. The strings are
separated by a vertical bar. The format_string specifies characters considered
format characters, usually tilde or carat. .c files have tilde and carat
characters as part of the program text so format_string should be empty. For
example i0=pre_init|post_init|format_chars. See sample nfbtrans.cnf for a real
example. The first init string is processed as soon as the input file is entered
which means you can customize the prompts you get for a given extension. The
string is processed before the output file is opened so any attempt to write to
the unspecified file will cause an error.

if=string. This option tells nfbtrans to ignore the format commands given
in string. For example if=0123 will ignore all (tilde) 0 1 2 and 3 formatting
commands. These are the only commands that will be ignored.

ip=n specifies interpoint mode printing on both sides of the page. Even
page numbers are not printed. Printer advances to beginning of next odd page
after file is printed. Use ip=2 to tell printer to advance an entire blank page
so you can reach a perforation below the bottom page. Note that if sp=1 is in
effect the embossor only advances to the next page rather than skipping an
entire blank page. Otherwise there would be a blank page between each file.

it=char specifies the character used for italics, the default is underscore
which translates to dots 46 in braille.tab.

kc=0/1 if 1 do not convert control characters to spaces.

kf=0/1 if used during back translation keeps the format of the Grade 2
file. Each line of the ascii output corresponds to one line of Grade 2 input.
Braille page numbers are not removed. This option should normally be used in the
back.tab table before other options.

l0=string. This option removes the space after any character in "string."
For example l0=,; removes spaces after words ending in a comma or semicolon. If
there isn't enough room for the joined word, the second word is placed on the
next line. This option is used in some of the foreign language tables.

l1=- joins a word containing a single dash to the preceding word. This
option is normally used only in certain foreign language tables.

l2=word_list joins a type 12 word to the next word if that word is in the
list. Words in the list are separated by the vertical bar. Default is
l2=de|een|het. the list may contain up to nine words. This option was requested
for Dutch braille.

l3=0/1 Modifies the operation of type 9 words in the translation table such
that leading or trailing punctuation and the first letter being uppercase causes
the word to be translated. Normally, leading or trailing punctuation causes the
word not to be translated. This is used in the Grade 2 spanish table.

lb=n is used in conjunction with the ~y list format command. If set to one
the program advances to the next page so the input line will not be on two
pages.

le=file loads an external format language file. The program looks in the
current directory and then in the same directory as nfbtrans.cnf. Errors are
reported according to the ef= option. The contents of any previously loaded .efl
file are lost. This allows you to have a global .efl file that will always be
loaded for a given extension.

lf=loadfile Use the lf=loadfile option to emboss a large document
consisting of several files. The lf= option cannot be used on the command line
or in nfbtrans.cnf. The lf= option can only be invoked with a format command so
formatting must not be disabled. For example if you have your document broken in
to files ch1.fmt and ch2.fmt, place tilde-lf=ch2.fmt as the last word of
ch1.fmt. This causes nfbtrans to continue translation by reading ch2.fmt. Page
numbering and so forth continues as if only one file were being translated.

li=string will append "string" to the last word of each input line. The

string is appended after translation.
8

lm=left_margin use lm=0 to be prompted for left margin.

lp=leading_punctuation specifies up to seven characters to consider as
leading punctuation if B2 is set in the hm= option. By default only the left
parenthesis is considered leading punctuation.

lr=0/1 default is 1 tells NFBTRANS to automatically generate a letter sign
in words such as e-mail and u-turn i.e. for any word with a letter followed by a
dash.

ls=n lines to skip between pages. use ls=-1 to always be prompted for this.
ls=0 is allowed now. I like printing 27 lines per page. My Juliet automatically
advances over the paper fold after the 27th line. No formfeeds are output if
ls=0. Use ls=99 for formfeeds.

lt=0/1/2/3 specifies how the output lines are terminated. lt=0 terminates
lines with cr/lf which is normally used with DOS. lt=1 outputs a single carriage
return after each line. This is useful when transferring files to a Braille
Lite. lt=2 outputs a single linefeed after each line and is the default for
unix. lt=3 outputs a space character which means the output will be a single
line.

m3=x can be used to set the default grade 3 modifier when a simple ~3
command is used. For example m3=1 would cause a ~3 command to output the dot 4,
5 , 45 and 456 Grade 3 contractions.

ma=0/1/2/+/- The math options are an attempt to ease the brailling of
mathematical equations. See the ms= and mt= options described later. ma=+ loads
the math table. The math table remains in effect until a ma=- or tf= is
encountered. The math table can contain any rules you want. If you would like to
write a correct Nemeth Code table, I would be happy to include it with nfbtrans.

ma=1 loads the math table if the program thinks a word is an equation. The
default table will be reloaded if a word is deemed not to be an equation. ma=2
also outputs "equations" to standard error. The ma=+ option does an ma=0. See
the ms= option described later.

mf=menu_file allows you to customize the nfbtrans menus. (See the file
menu.cnf for an example. This option may be used on the command line or in
nfbtrans.cnf.

ms=math_symbols is used to determine if a word causes the math table to be
automatically loaded if ma=1 or ma=2 is in effect. The default is ms==<> A word
with any of these symbols that also contains a digit is considered an equation.
I'm still thinking of how to do this more reliably.

mt=math_table default is mt=math.tab. This option allows you to change the
name of the math table.

nc=1 skip copyright message.

ns=string specifies the characters nfbtrans uses for the number sign and
decimal point. The default is ns=#. for American braille.

ob=option_mask resets permission mask for the given option. Each option has
an associated integer which specifies when it may be used. B0 allows the option
on the command line, B1 in nfbtrans.cnf, B2 in table files, B3 in a format
command, B4 in an an .efl file, B5 in an initialization string, B6 the option
has integer arguments rather than string arguments, B7 unused, B8 indicates
option is to be ignored, B9 indicates the option has a single character as
argument. For example, the integer associated with the i0 option is two, which
means it may only be used in nfbtrans.cnf. The option ob=i0=6 would also allow
this option in a table file. If b8 is set as in ob=fp=256 all future fp= options
will be ignored until b8 is cleared. Examine the source code if you have any
further questions.

oc=0/1/2/3 selects output case default is uppercase. If bit zero is set
output will be uppercase. If bit one is set output from Grade zero or computer
braille will be uppercase if bit zero is set. Default is oc=3 meaning all output

in uppercase.
9

od=output_directory specifies the directory where output files are stored.
If the output file includes a path, the output directory is not used. Don't put
a slash or backslash at the end of the directory name.

of=file specifies a file where all options and formatting commands will be
stored.

on=n can be used to automatically generate an output file name. Setting bit
zero generates an output name during forward translation. Bit one for back
translation. bSetting bit two stores the output in the same directory as the
input file rather than the current directory. The output file name is
constructed from the input name by removing any extension and appending .brf for
forward or .txt for back translation. This option eliminates the prompt for an
output file name which is helpful if program is run from windows. See the
explanation in readme.txt. It's not always obvious what the current directory is
in windows. Use the od= option to specify an output directory. The od= option
won't work if bit two is set and the output file name contains a colon or
backslash.

ow=1 If an output file is created, you will not be warned if the file
already exists.

pa=n where n is an integer. Use this option if your brailler and
synthesizer are connected to the same port. pa=10 causes the program to pause
and beep once a second for 10 seconds giving you time to switch between your
synthesizer and brailler. This only happens when you emboss, not when you just
write to disk. Nothing will be written through the bios to the screen while you
are embossing. Pressing any key during the pause will cause the program to wait
until another key is pressed before continuing with the pause sequence. If
escape was pressed the program aborts and returns to DOS. When embossing is
complete the program beeps and waits for a keypress before continuing. This
prevents the DOS prompt or other program output from being brailled. The pa= and
sp= options cannot both be used. The last one given is used.

pd=1/2 and pf=1 causes date and filename to be printed on the first line of
the first page of your document. file.txt 05/30/93 14:56 is the format. Use pf=2
to print just the file name rather than the whole path. For example with pf=2
nfbtrans c:\dir1/dir2/myfile.txt will be embossed as myfile.txt on the first
line of output. Use pd=2 to print the date without the time.

pe=ending_page -1 to always be prompted.

pl=nn page length default pl=25

pm=n where n is between 1 and 5 specifies the minimum number of spaces
between a page number and the text to the left. The default is 2.

pn=prn print device for your brailler if sp=0. By default, pn=prn.

ps=page_start ps=-1 to be prompted.

pw=page_width default pw=40.

qm=0/1 sets quiet mode. If qm=1, page number progress messages are not
output.

rc=command is used to execute a formatting command in any table or in
nfbtrans.cnf. For example the option rc=~u will turn page numbering off.

rf=run_file can be used to run another program at a specified point during
translation. Percent i will be replaced by the input file and percent o by the
output file. For example, rf="myprog %i %o" will run myprog with the input and
output files as parameters.

rp=n instructs NFBTRANS to remove braille page numbers from the input file
before translation. Setting B0 causes the program to remove only arabic page
numbers. The input text is scanned to determine the page width. If the line has
a word conforming to a plain or grade 2 page number all the way to the right and
it is preceded by at least two spaces, the word is removed. Setting B1 will
check all lines for page numbers regardless of their length. B2 also removes

print page numbers i.e. Grade two page numbers preceded by a letter. B3
10
removes page numbers indicating the beginning of a print page i.e. numbers
preceded by dashes. B4 removes roman numeral page numbers. rp=29 removes page
numbers from all input lines of the maximum length which is normally what you
would want.

rw=n tells nfbtrans how to treat hyphenated words that appear in the input
file. A word is considered to be hyphenated if the following is true: 1. The
last word on a line ends in a dash and the preceding character is a letter and
the word does not contain other dashes and the word does not contain math
symbols. 2. The following word starts with at least two letters. 3. The rejoined
word is found in the hyphenation dictionary. During back translation the
criteria for considering a word as hyphenated is relaxed so that the word may
contain math symbols which of course have different meanings in Grade 2. If the
word is not in the dictionary, it is rejoined leaving the dash in between. If
the dictionary is not open or bit zero is clear, the words are not rejoined and
will be output as two separate words. If bit one is set, the word does not have
to be the last word on the line. If bit two is set, any word containing a dash
is examined to see if it is in the dictionary. If it is, the dash is removed. If
bit three is set, the rejoined words are output to standard error. If bit four
is set, the words not rejoined are output to standard error. The output of this
option will be stored in a file if the integer is followed by a file name, for
example rw=15h:temp.

s0=pre-init string sent to printer if in spool mode. Use to tell printer to
ignore formfeeds. the dos print command appends a ff at the end of each file.

sc=spell_file invokes the spell checker. You must use the file spell.dat
from this archive. The dictionary contains over 116000 words. The program
searches for the dictionary in the same directory containing nfbtrans.cnf. Words
not found in the dictionary are stored in the file spell.dic in that same
directory (SEE the sn= option described later.) The program appends questionable
words to spell.dic each time it is run. Each line of spell.dic contains the
misspelled word along with the input line number. Only the first occurrence of
the word is stored. You must manually edit your input file to correct any
spelling errors. You can add or delete words in the dictionary with the program
dicutil.exe in the file dicutil.zip from
ftp://ftp.mindspring.com/users/n8kl/dicutil.zip For further information on this
dictionary, goto www.simtel.net and go to the msdos/educate directory and
download wordfun1.zip. Note to Unix users: I have tested this option on a linux
system using an Intel processor. The spellcheck option will not work if the
system stores the MSB of integers first without some changes to the code. Also
note that the format of the nfbtrans dictionary is slightly different than the
format of the dictionary distributed with wordfun1.zip.

sd=n tells nfbtrans the minimum length a word must be to be processed by
the spellchecker. Default is four.

si=file specifies the file name nfbtrans uses if input is redirected.

For example if you have si=stdin.c in nfbtrans.cnf and issue the command
nfbtrans <myfile, the file myfile will be treated as if it were a .c file
because nfbtrans will see the name stdin.c. Default is si=stdin.

sl=scan_lines default is 10000 specifies the number of lines that will be
scanned to determine the type of paragraphs used with the ~6 command.

sm=stat_mode specifies which statistics are output if the st= option is
active. All statistics are output by default. Bit 0 through 12 can be set
depending on which sections you want. B0 = date, B1 = file name, B2 =
translation time, B3 = line length and page length, B4 = words pages words per
page and characters per second, B5 = pass 2, B6 = estimated embossing time, B7 =
rejoin information, B8 = hyphenation information, B9 = number of automatic
lettersigns, B10 = cell and dot information, B11 = length of input/output, and

B12 = table information. If B13 is set a new statistics file is created for
11
each session, old data is erased. If B14 is set the version of Nfbtrans is
written to the file.

sn=file specifies where the misspelled words are stored, default is
spell.dic.

so=n turns sound off or on. Turn sound off if you are annoyed by the beeps
and clicks. Setting B0 turns on the clicks between pages. Setting B1 beeps the
speaker when using the pa= option. Setting B2beeps the speaker whenever a write
to disk fails. Setting B3 turns on the sound nfbtrans makes when started. Use
so=15 to enable all sound. Pressing space during translation toggles the clicks
between pages.

sp=0/1/2 sets spool mode. Output to be embossed is sent to a temporary file
and then that file is printed with the dos print command. If your printer
supports it, tell it to ignore formfeeds with s0=. Your printer will continue
ignoring formfeeds until it is powered down or reset because nfbtrans has no way
of resetting it. It is important that the print command is resident before
nfbtrans is run. Otherwise memory may not be released properly. The temporary
file is usually placed on your ram disk. Use the environment variable TMP or
TEMP to tell nfbtrans where to put it, otherwise it goes in your current
directory. You must have sufficient memory to execute the print command while
nfbtrans is running. Otherwise nfbtrans reports the error and exits. These
temporary files aren't deleted when printing is complete so its best if they are
on a ram drive. The files are created from the hour, minute and second 183742
for example. There is a limit, approximately 9, on the number of files in the
print queue. So if you run nfbtrans *.* all the files will be stored as the
temporary files but only the first 9 may be printed. Use the syntax nfbtrans
*.*;n to start embossing at the nth file. Use sp=2 to pause for the estimated
embossing time. Press any key to translate the next file immediately. In theory
this should prevent program from overflowing the print queue. pa= and sp= cannot
be used at the same time. The last one specified will be the one used.

st=filename specifies the name of a file containing statistics about the
file you just translated. Here is an example of a statistics file translating
this file with comments explaining certain entries:

mon 01/27/97 22:23

Input File: NFBTRANS.FMT prog_init: 8 ;Uses the i8 option.

Translation time: 0 minutes 43 seconds

LinesPerPage: 27

LineLength: 43

Words: 13745

Pages: 67

Words per Page: 205

Words per Second: 319

Characters per Second: 1521

PageBreaks: 3 ;blank lines occurred within 3 lines of bottom of page.

Passes: 2 ;required because there was a table of contents.

Estimated Embossing Time: 31 Minutes ;assuming 35 characters per second.

Hyphen Searches: 521 ;number of lines containing words 4 or more characters
long.

Dash Searches: 6 ;words joined with dashes at end of line.

Hyphen Matches: 224 ;words found in dictionary.

Hyphens Used: 144 ;hyphenated words that actually fit on line.

Dashes Used: 3 ;number of dashed words used.

Hyphens Skipped: 0 ;too many consecutive hyphens.

Auto Letter Count: 2 ;words like e-mail

Total Cells: 65421

Total Dots: 147171
12

Dot1: 29369 = 19%

Dot2: 27392 = 18%

Dot3: 26963 = 18%

Dot4: 26826 = 18%

Dot5: 21767 = 14%

Dot6: 14854 = 10%

Dot 7: 1743

Input file length: 85446

Output file length: 69201

Output is 80% of input

Entries in table: 900

Bytes in table: 10272

If the statistics file already exists, the new output is appended to the
file.

tc=string specifies the two lines of the Table of Contents header (See bm=
option). String is a list of six words separated by vertical bars. The first
three words are for line one and the last three are for line two. The default is
tc=,TITLE|,PR9T|,BRL||,PAGE|,PAGE.

td=table_definition defines the format for a table with multiple columns.
The table definition string follows the same format as the sprintf function
familiar to C programmers. The table definition string is made from one or more
field specifiers. A field specifier begins with a percent sign, the field width,
and a lowercase s. There may be spaces or other characters between field
specifiers. A negative field width as in %-8s defines a field of eight
characters that is left justified. A positive field width is right justified. If
the table definition contains spaces use double or single quotes.

The table definition is applied to each input line and the columnized line
is output. You must use some common sense in the table definition. The sum of
all the field widths plus any characters must be less than or equal to the page
width. You can have up to eight fields defined in a table definition. It is
important that output fields not be larger than the corresponding field
definition. If you are translating to grade 2 the length of the output field
could be larger for example when the dollar sign is expanded. Lines with page
numbers can contain a table entry if there is room, otherwise the table will
continue on the next line.

If a column translates to an accent mark, the column is output as spaces.
If the table is in Grade 2, precede the accent with a vertical bar. One use for
this would be if you want to right justify a five column field on a line width
of 40 characters. The table definition would be ~-td="%15s%15s%10s" so if you
want to right justify hello you would immediately follow the table definition
line with two vertical bar, accent pairs and then hello.

Example: Define a table of four columns all right justified with column 1
being 5 characters, columns 2 3 and 4 8 characters. The table definition would
be ~-td=%5s%8s%8s%8s Since 5 plus 8 plus 8 plus 8 equals 29, the width of the
table output is 29 characters. Each input line is translated and then output
according to the field specifiers in the table definition. Suppose the input
line is 23 5.7 6.2 7.8. This line has four fields; the first will be output
according to the first field specifier which is %5s which means right justified
in a field of five characters.

Table output is terminated by a blank line or another table definition.
(See the file tvfreqs.fmt for an example of how to define a table).

te=table_entry allows you to change the replace string for the specified
entry in the table of translation rules. This option is only allowed during
translation. The match and replace strings must be separated by a space
character, otherwise the replace string will be null. For example to change the

table entry for the left bracket to the Grade 2 parenthesis, use the option
13
te="[ 7" Remember to use quotes since the string contains a space. An error is
generated if the new replace string is longer than the space allocated for the
original replace string. Additional space can be allocated for the replace
string by modifying the table by adding another vertical bar after the replace
string followed by an integer. For example 21|[|,7|6 allocates six characters
for the replace string rather than two.

tf=table_file;backtrans_table_file immediately loads the given table

file containing translation rules. The back translation table may also be
specified with a semicolon and the file name. The translation mode in effect
determines which table will be loaded. The default value for this option is
tf=braille.tab;back.tab. This option can be used to load different rules for
different languages. This new table remains in effect until another table is
loaded. If you plan to translate more than one file using wildcards, the
original braille.tab file should be reloaded at the end of the file. For example
you could set up nfbtrans.cnf to load russian.tab every time a .rus file was
translated. To do this, add rus=9 to an ex= option assuming i9 is not in use.
Then add the line i9=~-tf=russian.tab|~!~-tf=braille.tab| You could also reload
a default table in nfbtrans.cnf. The table file is assumed to be in the same
directory as nfbtrans.cnf unless the second character is a colon.

tm=translation_mode. tm=1 chooses 1 for the first choice requesting a
number. tm=21 chooses 1 for the first and 2 for the second input.

tn=xy specifies the default number displayed when asked for numeric input.

to=toc_format specifies the format string for a TOC title default is
~s2~!~c which skips a line and centers the title.

tp=trailing_punctuation specifies characters considered to be trailing
punctuation when B3 is set in the hm= option. By default comma, colon,
semicolon, period, exclamation, and question are considered trailing
punctuation.

ts=file specifies a file for storing information about how words are
translated using the rules supplied in the translation table. This file can get
very large so this option should only be used when you want to examine how a
word is translated.

TT=start_table_line specifies the line of the input file to start storing
table information.

tv=number sets timing value. Only used with nfbasm and Microsoft C. On
faster machines the delay may not be long enough. Turbo C automatically takes
your machine's clock speed into account.

uk=0/1 is used in british braille to remove spaces between dashes and
hyphens between words. The decimal point dots 46 is changed to dot 1.

vc=vowels|consonants specifies which characters are vowels and which are
consonants. This is used only for types 13 through 15. The strings must be
separated by the vertical bar character. The default vowels include A, E, I, O,
U plus some extended graphics characters used in the French language.

ve=version gives user a warning if the specified version is less than the
program version. This could be used to indicate the user is using a previous
version of a table.

PART 5: Formatting Commands

The braille translator recognizes several commands that will change its
actions. The computer differentiates a command from some other character string
because the command starts with a special character, usually the tilde. The
command itself is not translated into braille, but instead only modifies the
action in the program. Formatting may be disabled for a given extension using
the i0 -i9= option. Nfbtrans will terminate if an unknown format command is
encountered. Disabling format commands also disables special treatment of ||.

For example, you can switch from grade 2 braille output to grade 1
14
braille output within a document by using the ~1 to indicate grade 1 and then
the ~2 to indicate grade 2. The translator will go from grade 2 (the default) to
grade 1 and then back to grade 2. Note that the case of the command doesn't
matter ~A is equivalent to ~a. See the fs= option to change the format
character.

Here is a list of the commands and a brief description of their actions:

~A PUT THIS WORD ONLY IN GRADE ONE: (Acronym for National Education
Association will look like this: NEA; otherwise, it would look like N, or N
comma.) Read Braille Symbols and Contractions section of documentation to
determine whether there might be a conflict when brailling acronyms.

~B TEXTBOOK PAGE BREAK IN INKPRINT DOCUMENT: Follow the ~B immediately with
a number to indicate the textbook page. The Braille translator will flush any
translation in progress, insert a line of dots 3 6, and terminate the line with
the text page number indicated. The indicated print page number prefixed by a
letter to indicate the relative Braille page will be embossed at the top of each
Braille page. The actual Braille page number will be embossed in the lower
right-hand corner of the page. (See the bm=book_mode option described earlier.)

~C CENTERING LINES: Put centering command in front of word.

Centering is in effect until a new paragraph is encountered. This could be
a blank line or one beginning with blanks. Nfbtrans automatically breaks lines
up in to the proper length for centering. You can specify this using the cl=
option.

~D DOUBLE SPACES BRAILLE DOCUMENT: PUT ON A LINE BY ITSELF. This command
will cause a blank line to appear after each full Braille line. Use ~D to
terminate this feature.

~E POETRY FORMAT: The poetry command can be helpful in translating poems.
This can be considered the opposite of text format ~t as far as the generated
Braille output is concerned. Indented lines of text in the print image file will
cause the Braille output to be written flush against the left margin with
subsequent Braille lines indented two spaces--in other words, a Braille hanging
paragraph. Lines not indented in the print image file will cause the Braille
output to be indented two spaces from the left margin. Terminate poetry
formatting by using ~t.

~F TABLE OF CONTENTS LINE: (Dot 5 fill): This command has several modes of
operation.

If ~f is followed by a letter or punctuation other than plus or minus:

Set up your table of contents page at the head of the document using zeroes
for page numbers, and the ~F. For example:
~FWHAT IS THE NATIONAL FEDERATION OF THE BLIND 00
The ~F will cause the text to be left justified, the page numbers to be right
justified, and dot 5 fill between them. Braille out the document noting the page
numbers of the actual sections. Reedit the document, replacing the zeroes with
the actual page numbers. Finally, Braille out the finished version. The
translator will handle multiple lines if you continue the table of contents line
in cell one of the following line. For example: ~FAll Publications and Brochures
Distributed by the National Federation of the Blind, Job Opportunities for the
Blind, and the American Brotherhood for the Blind 00 By default, Table of
Contents lines are broken at the pagewidth minus seven column. This may be
changed by placing a colon immediately after the ~f and then the number. For
example ~f:12 Chapter Five will cause TOC lines to be broken at column 31 width
pagewidth of 43.

You can tell nfbtrans the last word of a table of contents line. Doing this
prevents lines with only guide dots and the last word from being output. Words
starting with a dollar sign or accent at the end of an input line are considered
to be the last table of contents word. If the word starts with an accent, the

accent character is removed. If you are making a table with items and
15
prices using the ~f command, lines will always be output with both item and
price on a single braille line since the last word on the input line contains a
dollar sign as the first character.

If ~f is followed by digits: You can tell nfbtrans to automatically put the
correct braille page in your Table of Contents. You can use this new method for
creating a Table of Contents and still use the old method for other types of
tables. Carefully follow these steps:

1. Place a ~f0 at the beginning of your document. If you want to use the
pf= or pd= options, the ~f0 must come first. ~f0 tells nfbtrans that two passes
are required and that your document will be embossed or written to disk on the
second pass. If the ~f0 is not first, nfbtrans may output lines before it
determines a second pass is required. This would certainly mess up the format of
your document when the second pass begins.

2. Set up the Table of Contents entries with the ~f followed by a number.
Later on in your document use the ~f followed by that same number to indicate
that that first entry corresponds to this title. Do not put a page number as the
last word on the first Table of Contents line, nfbtrans will do that.

Starting with version 7.44 the matching ~fnn is no longer required if the
title matches the TOC entry. The program stores all TOC entries in a file named
tocfile.$$$. Each input line is compared to the first TOC entry. If a
case-insensitive match is found a ~s ~c and ~f followed by the TOC number is
inserted in the input line. The next line is read from the TOC file and the
process is repeated. This method assumes the following: 1. All TOC entries are
in order and none are skipped for example ~f1 ~f2 ... 2. There is a subsequent
input line that matches the TOC line without the ~fnn. 3. you want the TOC title
centered. 4. You want a blank line before the TOC title. (See the to= option
described earlier).

Following the ~f by a plus sign puts NFBTRANS in TOC mode. All subsequent
lines are considered to be TOC entries until a ~f- is encountered. The program
removes any numbers and guide marks from the end of the input line. The
appropriate ~f is inserted before each input line while this mode is in effect.
So if you are brailling a document containing a print Table of Contents, simply
put a ~f+ before and a ~f- after to completely automate the process. Here is an
example to illustrate:

~f1Chapter 1 Getting Started

~f2Introduction

~f3Installation

~f4Chapter 2

~f5 chapter 3

Then any time later in your document you could have the line

Chapter 1

Then later on after any number of pages you could have the line

Introduction

The program reports an error if there is a ~f1 with no previous ~f0. You
currently can have up to 250 toc entry/title pairs. If you have a ~f75 entry,
you must have a matching ~f75 title entry. The program verifies this after pass
1 is complete. Also you cannot have more than two entries with the same number.
The entries can be in any order as long as there are exactly two entries with
the same number.

The program assumes the first occurrence of ~f14 for example is a TOC entry
and the second ~f14 is on the page corresponding to that entry. Note that if you
emboss a range of pages for example page 5 to 16, the program does a complete
pass one to do error checking and then outputs the desired pages on pass two.

Note that ~f0 with no other TOC entries can be used to verify that your
document has no errors before embossing begins.

~G SET RIGHT MARGIN: PUT ON LINE BY ITSELF. Follow this command with a
16
number.

~H HEADERS: Use this command to cause a header at the top of each Braille
page. The header may be up to five lines long. If the next input line begins
with a ~h, it becomes the second header line and so on. An input line without a
~h terminates the header definition. The next ~h begins a new header. Terminate
the headers with a ~J or change the header with another ~H. The header line must
translate to at most a line two characters less than the page width, otherwise
an error is generated and the program aborts. An error will also occur if the
header and the page number cannot fit on the first header line.

~I ITALIC SIGN: In Braille, italics replace underlining. If there are three
words or less underlined, put an italics sign in front of each word. If there
are four or more words, put two italics before the first word and one italic
before the last word. Use ~i followed by a backslash to turn on italics mode.
The program outputs two italics before the current word. Another ~i backslash
turns off italics mode and outputs a single italics mark.

~J TERMINATE HEADER: Turns off the header feature.

~K TERMINATE FOOTER: Turns off footer feature.

~L LETTER SIGN: In Braille, letters that stand alone are often preceded by
a letter sign, (dots 5-6). The ~l command is used to generate this symbol. For
example, a capital B standing alone represents the word, but; C, can, and so on,
emphasizing the need for a letter sign. Put the letter sign before or in a word,
Apartment 3-C.

~M CHANGE MARGIN: PUT ON LINE BY ITSELF. Follow this immediately with a
number indicating the column in which the Braille left margin should
begin--normally, column one. It is best to put the margin command on a line by
itself. The next line will be indented to the declared new margin. For example,
to change left margin, do ~M03 and to change back, do ~M01 (line return). You
see margin changes commonly in print to se toff large chunks of quoted material.
In Braille, however, handle such a chunk of information with the same print
margins as the rest of the text. But separate the chunk from the rest of the
text by placing a blank line ~s before the material and a ~s blank line after
the material.

A top margin can be specified by following the left margin by a semicolon
and then an integer. For example ~m1;5 sets the left margin to the default 1 and
the top margin to 5 meaning braille output will start on line five.

~Nn SET PAGE NUMBER: You may set or reset the page number by including a ~N
followed immediately by the page number of the next page. Default is page 1.

~O INDENTS HANGING PARAGRAPH: PUT ON LINE BY ITSELF. If there are reasons
that you would prefer to have a hanging paragraph indented more than two spaces,
use this command followed by a number such as 5.

~P Page command. This command has several modes. If you place ~p as the
only characters in the word the command will cause the Braille embossor to skip
to the top of the next page. If followed by a letter, ~pa for example, the
program skips to the top of the next odd numbered page if you are using
interpoint mode. Use this to begin embossing at the top of the next right facing
page.

If followed by a dash ~P- page numbers including roman numerals will not be
translated to a braille number with a leading number sign. Use a plus sign to go
back to normal braille page numbering.

If followed by a number for example ~p4, the program skips to the next page
if there is a blank line within 4 lines from the bottom of the page. This can be
used to prevent centered titles and so forth from being printed on the bottom of
a page. The command is normally given in the beginning of the document and
remains in effect until another ~p number command is issued. Any characters
placed after the digits will be placed on the first blank line of the page break

along with the page number. Use this method to determine where conditional
17
page breaks occur.

If followed by a colon and a number for example ~p:5 causes a page break if
the output is within four lines of the bottom of the page. This could be used if
you have a paragraph you didn't want split on two pages. Note that the ~p colon
command does a ~p0 and then restores the original value at the beginning of the
next page.

~Q CLEAR ALL TABS: This clears all tabs inserted in the formatted document
by using the ~V.

~Rn:mode MAKE ROMAN NUMERALS: This command makes Roman numerals on each
Braille page. Default is page I. Follow immediately with an integer for a
starting page other than I. Use a colon to specify the type of roman numeral, 0
indicates preceded by a letter sign and 1 by capitalization marks. for example
~r5:1 starts at roman page 5 with capital marks. Use ~N to switch to Arabic.

~S INSERT A BLANK LINE. If followed by a digit for example ~s3 a blank line
will be inserted only if the program is on at least the third line of the
braille page. Otherwise, the translator will eliminate all blank lines. Placing
an i after the ~s command causes the next line to be indented rather than at the
left margin.

~T TEXT FORMAT: PUT ON LINE BY ITSELF. The text format is the default
format--that is, the format that the translator uses unless it is told to do
otherwise. When the translator normally formats text, it forces all indentation
to the third cell, wraps all overflow to the first cell of the next line, and
appends following left-justified lines. The program will now treat a blank line
like a paragraph indent even if the following line is left justified. Follow the
T with an integer to change the indentation.

~U TURN OFF ALL PAGE NUMBERING: Use this command to disable all page
numbering.

~V SET TAB: A ~V followed by a column number will set a tab to this
location. Now you may use the ~X to skip to this column.

~W FOOTER LINE: The footer command will cause a line to emboss at the
bottom of every page. An error occurs if the translated footer is longer than
the page width.

~X TAB: This command causes a skip to the next tab. If no tabs have been
specified, the output will skip to a space. If the command is followed by a
number, the output will skip the number of spaces specified.

~Y LIST FORMAT: PUT ON LINE BY ITSELF. This feature keeps information at
the left margin with runovers of any line followed in the print text by a line
return being indented two spaces (cell 3). If list items exceed one print line
in length, the first word of the second line must be preceded by five spaces in
order to be formatted properly. Follow the Y with an integer to change
indentation level.

~Z TERMINATION COMMAND: The termination command inserts a termination sign
(dot 6 followed by dot 3) into the text wherever it is placed. The termination
sign in Braille is used to indicate the emphasis in a word that is only partly
underlined or italicized. For example, if you wanted to emphasize the dis in
dismount: _dis `mount.

~_: causes a hard carriage return beginning a new braille line.

~0 DISABLE ALL TRANSLATION: This command causes the program to do no
translation at all. The output will be what is sometimes called "Computer
Braille." The output file will have the same case as the input file. Note that
letters A through Z will be lower case, that is, without capital marks. ~01
produces a modified grade 0 output. I have experimented with 8-dot braille and
found it takes some getting used to. ~01 is grade 0 with braille capital marks.
It is more compact than 8 dot braille. This does not conform to any braille code
I know of but is an alternative to 8 dot braille. It can be used to braille .c,

.cpp or .h files. It also is useful for brailling unix man pages where the
18
case of the options is very important. note that an error is reported if you put
two grade commands on a word. This is because all format commands are processed
before the word is translated. For example if you had ~0this~!~2 the ~2 would be
in effect for the whole word.

~1 TRANSLATE TO GRADE ONE BRAILLE: This command causes grade 1 Braille
output.

~2 TRANSLATE TO GRADE TWO BRAILLE: This command causes grade two output.

~3 TRANSLATE TO GRADE THREE BRAILLE: This command causes grade three
output. You can translate to Grade Three in stages. An integer grade modifier
can follow the 3. Setting B0 turns on d4, d5, d45 and d456 letter contractions.
Setting B1 enables the d4, d5, d45 and d456 digit contractions. Setting B2 turns
on these contractions for other signs. B3 turns on the single d4, d45 and d5
suffixes. B4 turns on single cell words. B5 turns on all other contractions. B6
removes the vowel A from the contracted word. B7 translates the Grade 3 numbers
between 10 and 50. A ~3 by itself sets all these bits and therefore outputs all
Grade 3 contractions.

~4 BLOCK MODE.

~5 BLOCK PARAGRAPH, blank line of input causes new braille paragraph.

~6 Automatic formatting. The program examines up to the first 1000 lines of
a file before translation. If the number of blank lines is greater than the
number of lines starting with four spaces then block paragraphs are assumed.

~7 initiates line paragraph mode. A new paragraph occurs at the end of
every line. Use this mode if your word processor outputs one continuous line for
each paragraph.

~[ left square bracket [ sends an escape character to the

printer. Any text after the bracket will also be sent up to the next tilde
character in the word.

~] right square bracket outputs a centered line of twelve dots 2-5 on the
next line. Braille magazines sometimes use this between articles.

~{ left brace terminates the ~w footer command.

~ right curly brace '}' Force inner quotes at any time.

~-xx=string where xx=string is a valid command line or nfbtrans.cnf option.
For example ~-pl=25 sets page length to 25.

~.extension applies the formatting and options associated with a given
extension. For example if you are translating a file to Grade 2 braille and you
want to translate a .c program segment, use ~.c and when finished with the C
segment do a ~~0.fmt. The post_init string is ignored and the format string is
not changed.

~' FORCED APOSTROPHE: The forced apostrophe eliminates ambiguity where the
single quote mark is used. For example, if you had to force an apostrophe in
vernacular, "|'ave a |'eart, me love."

~# pound sign is used to indicate a comment in the source file to be
embossed, any remaining characters in the line are ignored.

~! causes the program to ignore any formatting commands occurring later in
the word.

~backslash I or J followed by an integer are used to store and retrieve
current page numbers. Up to 400 page numbers can be stored. Use a negative
integer to specify a range of pages. For example if you have ~\i4 in your input
file and then later ~\i-5 and they end up on different braille pages, the
formatting command ~\j4 would produce a range as in 23-26. This scheme can be
used to produce an index with the appropriate page numbers. Use ~\k followed by
an integer to retrieve the print print page number if there is one. The ~\i
command stores both the print and braille page numbers and whether the page
number is roman numerals or arabic.

~> followed by a character outputs a line of that character, default is

dash.
19

You can insert any character without translation by preceding it with the
(bar symbol) character. For example, |,| b|en will prevent the BE sign from
appearing since that is not correct Braille usage.

TO INTERRUPT NFBTRANS AT A PROMPT: Control SCROLL LOCK or BREAK key on your
keyboard will exit NFBtrans and take you to the C prompt. Pressing <ESC> during
output causes program to abort.

PART 6: EXTERNAL FORMAT LANGUAGE

The NFB Braille Translation Program includes an external format language.
The external format file is created with a word processor. This file is used by
the translation program to format the file in addition or instead of embedded
tilde commands. NOTE-ALL THE TILDE COMMANDS WORK AS THEY ALWAYS HAVE. The
external format language was developed to ease the brailling of standard
columnar computer reports, but it can be used for many other standard formatting
tasks. External Format Language files must have a .efl extension. If the option
ef=1 is specified the program searches for the .efl file with the same name as
the file you are translating. If you are translating myfile.txt, myfile.efl is
processed if it exists. ef=2 tells nfbtrans to abort if myfile.efl is not found.
Add four to the number if you want nfbtrans to output the name of the .efl file
and the message saying processing is complete. The external format language
tells the translator how to process a given input file. The file may or may not
have embedded tilde commands.

The external format file is made up of command sets. Each command set
starts with the word LINE followed by one or two numbers. The first number
refers to the starting, or only, line, and the second number if present refers
to the ending line for this command set. The commands in the command set
following the LINE command are in effect only for the lines specified. As each
line is read from the input file, the program checks each LINE command to
determine if it applies to the line read. Of course, the beginning and ending
line can be such that all the lines in the text input file can be affected. For
example,

LINE 1
9999

would cause the program to apply this command set to lines 1 through 9999.
You can also specify that an EFL command applies to all lines by skipping the
"line" along with the range. For example the single word graphics on an EFL line
applies the command to all lines.

The LINE command must be followed by subcommands that affect braille
translation as follows:

LIST -- change formatting to list format with hanging indent.

TEXT -- change to normal text formatting.

CENTER -- center the line when it is brailled.

DELETE -- delete this line entirely.

SKIP -- skip a line.

INDENT -- indent unmatched lines.

PAGE # -- set page length of input text.

MATCH # # 'ccccc' -- search for match with columns.

NMATCH # # 'ccccc' -- search for no match with columns.

FIELD # # -- define a field.

OMIT -- delete defined field.

STATE -- expand two character state codes.

APPEND 'ccccc' -- append character(s) to field.

The last three commands, OMIT, STATE, and APPEND always follow a FIELD
command.

For instance, to center line two, you might enter a command line in the

external format language file as follows:
20

LINE 2 CENTER

You may stack multiple commands. For instance, you could enter

LINE 3 LIST DELETE SKIP

which will change the format at line three to list from whatever it may
have been, delete the line from the braille output, and insert a blank line.

The PAGE command has no counterpart in the embedded commands. It is used to
specify the page length of the source document. If the PAGE is specified as
zero, the input text file will be treated as a single page no matter how long it
is. The default page size is 66. The page line counter will be reset every 66
lines or at the top of page character, whichever comes first.

The MATCH command is also unique to the external format language. This
command makes all the commands that follow it in the command set dependent on a
matching condition. The program scans the lines specified in the LINE command
within the columns specified on the MATCH command for the character string
following the column specifiers. You may use spaces if the character string is
enclosed in quotes. The two numbers immediately following the MATCH command
specify the beginning and ending columns. If there is no match, the program will
proceed to the next LINE command. If there is a match, the program will apply
the following commands in the command set.

The INDENT command is also unique to the external format language. It tells
the translation program to indent any lines which are not MATCHED, and for which
a FIELD command is active. This facilitates the creation of subtotal groups in
financial reports. An example is provided.

The FIELD command must be followed by two numbers defining the starting and
ending columns of a field. This field can be deleted by adding the OMIT
subcommand. If the field is a two character state code, you can cause the
translator to expand it to the full state name by using the STATE subcommand.
Finally, you can append data to the field by using the APPEND subcommand. Most
often, you will append a delimiter such as a semi-colon or a comma to a field.
However, you can also use the append command to add any text, even including
spaces if you use quotes.

For example, let us assume a columnar report showing states ranked by
number of bagpipe-playing tugboat captains. There are three columns: rank, state
code, and count. We can format the columnar part of the report with a command
set as follows:

LINE 10 60 FIELD 20 21 STATE APPEND ; FIELD 1 19 APPEND ;

We assume the columns occur from lines 10 through 60, as specified
following the LINE command. We ignore the count field since we do not need to
append a delimiter--the count field is at the end of the line. We tell the
program to select the field starting at column 20 and ending at column 21,
translate it to a full state name from a state code, and append a semi-colon.
Then, we tell the program to select a field from column 1 through column 19 and
append a semi-colon. These field commands are applied from lines 10 through 60.
NOTE THAT WE START WITH THE RIGHTMOST FI/ELD. The reason for this is that the
program processes the commands in order. The field command changes the location
of the columns to the right. Hence, the column alignment is lost. By starting
with the rightmost field first, columns to the left are still properly aligned.
ALWAYS START WITH THE RIGHTMOST FIELD. The program verifies that the fields are
in the proper order and that they don't overlap. The program aborts if it finds
an error.

option option_string can be used to execute a command line option in the
EFL.

line line_string can be used to place the input line number in the embossed
output. The line string will be placed before the line number.

graphics graphics_string is used to display the decimal equivalent of

graphics characters. The graphics string is placed before the number.
21

There are three REPLACE commands in the EFL. These commands are followed by
two strings; the first is the search and the second is the replace string which
may be empty. The search strings are case insensitive.

1. repl search replace. This command searches the specified lines. If the
line contains the search string, the entire line is replaced with the
replacement string. The line will be deleted if the replacement string is empty.
For example the .EFL line line 1 9999 repl "copyright 1994" "" would delete all
input lines containing the string "copyright 1994". Note that quotes are used
because the string to be replaced contains a space.

2. reps search replacement replaces the search string with the replacement
string. The string is replaced without regard to word boundaries. For example
the command line 1 9999 reps "is not" isn't replaces every occurrence of "is
not" with isn't. Place an asterisk after reps to replace all occurrences of the
string.

3. repw search replace. This searches a line for the search string. The
entire word containing the search string is deleted and the replace string is
substituted. For example in the RFB DOS 6.0 manual headings are indicated by
heading1, heading2 ... with tildes before the h and after the number. These
titles could be centered with the command line 1 9999 ~heading ~c. Each heading
specifier will be replaced by ~c which is the nfbtrans centering format command.
Place an asterisk after repsw to act on all words in the line.

The word EFL command is a special type of word replace command. Syntax is

word search_string begin_string end_string The search string must match

the beginning of a word. If it does, the begin string is inserted at the

beginning of the word and the end string is appended to the end. An

example will make this clear. The word command can be used to

automatically output URLs in computer braille. If we assume a URL

starts with http: then we could use the

following EFL command to automatically switch to computer braille.

word http: " _+" "_: " This would also surround the URL with the start and
stop signs used in braille magazines.

The External Format Language feature is quite powerful, and can save you a
great deal of editing effort, particularly for columnar reports or frequently
produced reports in specific formats. For most documents, you will probably find
it just as easy to continue to use the embedded commands. For computer reports,
and financial reports, you should consider setting up a EFL command file to save
yourself time and effort.

PART 7: Braille Considerations

You cannot underline in braille - use italics for emphasis.

Never use the letter L for the number 1.

When typing fractions, type 8-1/2 instead of 8 1/2 (There must be a hyphen
between the whole number and fraction)

Type the word "times" in mathematical formats. Type the word "equal" or
"equals." Type the word "divide" for the division sign. Type the word "percent"
when the percent sign stands alone. Never use the number sign. Type the word
"dollar."

The translation program ignores empty lines -- use the ~S to skip a line in
the braille output.

A simple way to check that the embossor is working properly is to turn it
on, start up the computer, and, while you are still at the operating system
level enter a CONTROL-P at the keyboard.

This will cause anything you type or the computer displays to be echoed to
the default list device. Since your default list device should be the brailler,
the characters you type should be echoed to the braille embossor. If they are,

then everything should be ready for the translator to work. Type a
22
CONTROL-P to turn off this echo feature. This technique allows you to determine
that the path from the operating system to the embossor is working properly.

PART 8: CHANGING THE Translation

TABLE

The table of braille contractions exists in braille.tab and back.tab. It is
read just prior to file translation. The table gets read again only when
necessary for example when going from Grade Two to Three or Grade Three to Two
or when a new table file is specified with the tf= option.

A portion of the table appears below:

1(bar)AFTERNOON(bar)AFN

1(bar)AFTERWARD(bar)AFW

1(bar)AFTER(bar)AF

2(bar)AGAINST(bar)AG/

2(bar)AGAIN(bar)AG

1(bar)AGREEA(bar)AGREEA

Each table entry consists of three parts separated by the vertical bar.

Note that type 17 and 18 entries have four and five parts respectively. The
first part of an entry is a type indicator, the second part is the match string,
and the third part is the replacement string. The simplest types are as follows:
1-replace anytime, 2-replace only if whole word match, and 3-replace if whole
word or at beginning of word. See the comments in braille.tab and back.tab for a
complete list of types. Note that types 17-18 are defined differently for back
and normal translation. Types 5, 6, 8, 9, 11, 12, 15 and 16 are not defined
during back translation.

The table is stored in alphabetic order with the more specific string ahead
of the more general string. Study the table carefully before you change it. Be
sure you keep the original. Improper table entries will produce incorrect
braille. If errors are found, the program reports the type and line number of
the error, and then aborts. Entries are converted to upper case but must be in
the proper order. Note that an error occurs if there is a null replace string
i.e. nothing after the last vertical bar. If you really want a null replace
string, use zero in brackets.

Every character in the input file must have an entry in the table. For
example if the pound symbol |# is in the file, it must also be defined in the
table.

Graphics and control characters may also be defined in the table. Type 28
indicates a graphics or control character and type 29 indicates an upper case
graphics character. extended graphics characters may be entered within brackets
for example
1|[134][140]b|$ is a valid table entry. Graphics characters may also be entered
directly in the table. Graphics characters 128-255 may also have types 1-18.
Characters with type 1-18 are only used in Grade 2 or Grade 3 braille. If you
want a graphics character translated in Grade 1, it must be type 28 or 29. If
Grade 2 or 3 is in effect, the program will skip passed a type 28 or 29 entry if
there is another entry for that character. This allows a different translation
for grade 2. Remember that control characters are ignored unless you set kc=1
and graphics characters are modified unless you set gm=2. Graphics characters
are normally used only in foreign language tables.

Type 30 is used to place letter signs before uppercase abbreviations if the
abbreviation is a Grade II word.

The output or replace string may also have brackeTed entries. For example
the back.tab table contains the line 3|6|TO[32] so the word ! is changed to to
followed by a space and then the word the. Note that the only way to include a
space in the replace string is to use 32 in brackets.

Grade 3 is only partially implemented. Type entries greater than 32
23
are for grade 3 and entries less than 0 indicate the entry is not to be used if
in Grade 3.

Match strings and replace strings can be any length but the line for a
table entry cannot exceed eighty characters. There can be up to 2000 entries in
the table. Braille.tab currently has 1015 entries and back.tab 729.

PART 9: Other considerations

Translate your files from scratch for brailling rather than embossing an
already existing file. Nfbtrans outputs over 1500 characters per second in Grade
2 mode on a 20MHZ 386 machine so translation time shouldn't be a problem. One
possible problem is that this version may format documents slightly differently
than earlier versions. This means that page 25 may be different between this and
earlier versions.

When embossing an existing file with lineskips = 0, make sure the correct
lines per page value is in effect. If it isn't, there is no way the program can
tell what page you are printing.

This version of NFBTRANS has the ability to translate a Grade 2 file back
into text. The formatting of the text will most likely not be the same as the
original text. The program automatically removes braille page numbers. (See the
rp= option). Several options have been placed in back.tab to customize NFBTRANS
for back translation. Back.tab has been designed to work with the latest
braille.tab although it should work reasonably well with any Grate 2 file.
Formatting should be disabled or set to tilde, otherwise unexpected errors may
occur. NFBTRANS will not output a tilde character with the current braille.tab.

The back translation table has been improved to work with Blazie
notetakers. If you write a Grade Two file while in lowercase mode brackets are
output as braces, caret as tilde, and backslash as vertical bar. Files written
in lower case are now back translated properly.

Nfbtrans supports back translation of the braille computer indicator
symbols such as _+ _: _< _> If present, these symbols ensure the proper back
translation of electronic addresses and file names. Nfbtrans cannot currently
output these indicators but I'm thinking of adding this ability in a later
version.

I would be interested in hearing from anyone who has compared the back
translation of NFBTRANS and other translation programs. There is plenty of room
in back.tab for additional entries to improve accuracy. Some improvements may
not be possible unless the code is modified.

Send all bug reports and any suggested improvements to n8kl@mindspring.com.
End of Document