
Ted, an easy rich text processor
--------------------------------
Introduction	1
Features	2
Ted for Linux: copyright and disclaimer	2
How to install Ted	2
Text and text attributes	4
Pictures	5
Including symbols and accented characters	6
Copy/Paste	6
Finding and Replacing Text	7
Spell checking	8
Hyperlinks and bookmarks	9
Paragraphs and the ruler	11
Tables	14
Sections	16
Page Headers, Footers and Page Numbers	17
Page size and Margins	18
Printing from Ted, writing Acrobat PDF	18
Saving documents to HTML and to plain text	20
Sending mail from Ted	21
How to use Ted as a mime handler or a Netscape helper application	
	22
Configuring Ted	22
Adding fonts to a Ted installation	24
Uploading fonts to a PostScript printer	26
Using window managers different from mwm	26
Shell widget names	26
Remarks about X11 server configuration, accented characters and 
backspace	27
Compiling Ted from source	27
Making spelling dictionaries for Ted	28
Acknowledgments	28
Author	30
Introduction
Ted is a text processor running under X Windows on Unix/Linux systems. 
Ted was developed as a standard easy word processor, having the role 
of Wordpad on MS-Windows. Functionally Ted is more powerful than 
Wordpad. It seeks to find a compromise between the simplicity of 
Wordpad and the functionality of MS-Word. The possibility to type a 
letter, a note or a simple report on a Unix/Linux machine is clearly 
missing. Only too often, you have to turn to MS-Windows machine to 
write a letter or a document. Ted was made to edit rich text documents 
on Unix/Linux in a wysiwyg way.

Compatibility with popular MS-Windows applications played an important 
role in the design of Ted. Every document produced by Ted should, 
without any loss of formatting or information, be accepted as a legal 
.rtf file by Word. Compatibility in the other direction is more 
difficult to achieve. Ted supports many of the formatting features of 
the Microsoft applications. Other formatting instructions and meta 
information are ignored.*)  By ignoring unsupported formatting Ted 
tries to get the complete text of a document on screen or to the 
printer. Ted can be used to read formatted e-mail sent from a Windows 
machine to Unix, to print an RTF document, or to convert it to Acrobat 
PDF format. Below we explain how to configure Ted as an RTF viewer in 
Netscape and how to convert an RTF document to PDF with Ted and 
GhostScript.

I hope that you will find Ted useful. Please report the bugs you find, 
such that I can fix them.

*)	Some of the ignored information is not saved either when you 
	modify and then save an RTF document with Ted.

Features
	Wysiwyg rich text editing. You can use all fonts for which 
	you have a .afm file and that are available as an X11 font. Ted
	 is delivered with .afm files for the Adobe fonts that are 
	available on Motif systems and in all postscript printers: 
	Times, Helvetica, Courier and Symbol. Other fonts can be added 
	with the normal X11 procedure. Font properties like bold and 
	italic are supported; so is underlining and are subscripts and 
	superscripts.
	Ted uses Microsoft RTF as its native file format. Microsoft 
	Word and Wordpad can read files produced by Ted. Usually Ted 
	can read .rtf files from Microsoft Word and Wordpad. As Ted 
	does not support all features of Word,some formatting 
	information might be lost.
	In line bitmap and windows metafile pictures.
	PostScript printing of the document and its illustrations. 
	Saved PostScript files contain pdfmarks that are converted to 
	hyperlinks when they are converted to Acrobat PDF.
	Spelling checking in twelve Latin languages.
	Directly mailing documents from Ted. Mail in HTML format is a 
	multipart message that contains all images.
	Cut/Copy/Paste, also with other applications.
	Find/Replace.
	Ruler: Paragraph indentation, Indentation of first line, 
	Tabs. Copy/Paste Ruler.
	Page breaks.
	Page headers and footers. Page numbers in the headers and 
	footers.
	Tables: Insert Table, Row, Column. Changing the column width 
	of tables with their ruler.
	Symbols and accented characters are fully supported.
	Hyperlinks and bookmarks.
	Saving a document in HTML format.
	Probably the best illustration of what you can do with Ted is 
	its documentation that has been made with Ted.

This is the documentation for Ted 2.10.
Ted for Linux: copyright and disclaimer
Ted is free software. By making Ted freely available, I want to 
contribute to the propagation of Linux as a viable platform for 
technical computer enthusiasts. As Ted  is free software, I assume no 
responsibility for the consequences of using it. It is up to you to 
decide whether Ted suits your purpose or not. Ted is distributed with 
absolutely no warranty under the terms of the GNU Public License.

How to install Ted
The installation of Ted depends on the platform and on the kind of 
distribution. Binary distributions for Intel ix86 Linux are available 
from the download site ftp://ftp.nluug.nl/pub/editors/ted. A US mirror 
is gracefully provided by the unc metalab:
[http,ftp]://metalab.unc.edu/pub/packages/editors/ted. The 
distribution comes in the form of compressed tar archives and as Red 
Hat package manager (RPM) packages. Binary distributions for other 
platforms might be available on CD. For more or more recent 
information refer to the Ted web site http://www.nllgg.nl/Ted.

To install Ted or one of the localization packages from an RPM 
package, log in as root, and give the command rpm -i 
<package-details>.rpm . To upgrade from a previous version of Ted give 
the command rpm -U <package-details>.rpm. The executable in the binary 
package is linked statically, so there are no dependencies on shared 
libraries. If you like shared libraries and their intricacies, you 
will have to compile Ted yourself.

Installation from compressed tar archives is best done in combination 
with the corresponding Linux Software Map (LSM) files and the 
installation script installTed.sh. Download the files to a scratch 
directory such as /tmp; log in as root; run sh installTed.sh from this 
directory. If you do not have the possibility to log in as root, you 
can run the command sh installTed.sh PRIVATE.After a private install 
the install script tells you what to include in your .Xdefaults or 
.Xresources file to make the installation work.

If you do not like easy installation, you can unpack the compressed 
tar archives manually. The software assumes that you do so in 
/usr/local. The Adobe font metric files are stored in /usr/local/afm 
and spell checking dictionaries in /usr/local/ind. This online 
document is installed as /usr/local/info/TedDocument.rtf. The example 
application resource file Ted.ad.sample is installed in 
/usr/local/info. If you decide to install Ted in a different location, 
you can change these locations by setting X11 resources, e.g. in your 
.Xdefaults or .Xresources file. Refer to the section on configuration 
below. Do not forget to call umask 0 before you unpack.

It is also possible to compile Ted from source. Refer to the 
compilation instructions at the end of this document.

Overview of the different packages:

Package
RPM package: file
Tar archive, LSM file
Basic binary package for Intel Linux. ( Includes American spelling )
ted:
ted-2.10-1.i386.rpm
Ted_Linux_ix86.tar.gz, Ted_Linux_ix86.lsm
Install script for Tar archives and LSM files

installTed.sh
Dutch spelling and messages
ted_nl_NL: ')
ted_nl_NL-2.10-1.noarch.rpm
Ted_NL_nl.tar.gz, Ted_NL.lsm
British spelling
ted_en_GB: ')
ted_en_GB-2.10-1.noarch.rpm
Ted_en_GB.tar.gz, Ted_en_GB.lsm
German spelling and messages.
ted_de_DE: ')
ted_de_DE-2.10-1.noarch.rpm
Ted_de_DE.tar.gz, Ted_de_DE.lsm
Spanish spelling
ted_es_ES: ')
ted_es_ES-2.10-1.noarch.rpm
Ted_es_ES.tar.gz, Ted_es_ES.lsm
Portuguese spelling
ted_pt_PT: ')
ted_pt_PT-2.10-1.noarch.rpm
Ted_pt_PT.tar.gz, Ted_pt_PT.lsm
French spelling and messages.
ted_fr_FR: ')
ted_fr_FR-2.10-1.noarch.rpm
Ted_fr_FR.tar.gz, Ted_fr_FR.lsm
Italian spelling
ted_it_IT: ')
ted_it_IT-2.10-1.noarch.rpm
Ted_it_IT.tar.gz, Ted_it_IT.lsm
Czech spelling and messages ")
ted_cs_CZ: ')
ted_cs_CZ-2.10-1.noarch.rpm
Ted_cs_CZ.tar.gz, Ted_cs_CZ.lsm
Danish spelling and messages
ted_da_DK: ')
ted_da_DK-2.10-1.noarch.rpm
Ted_da_DK.tar.gz, Ted_da_DK.lsm
Swedish spelling
ted_sv_SE: ')
ted_sv_SE-2.10-1.noarch.rpm
Ted_sv_SE.tar.gz, Ted_sv_SE.lsm
Norwegian spelling
ted_no_NO: ')
ted_no_NO-2.10-1.noarch.rpm
Ted_no_NO.tar.gz, Ted_no_NO.lsm
Polish spelling ")
ted_pl_PL: ')
ted_pl_PL-2.10-1.noarch.rpm
Ted_pl_PL.tar.gz, Ted_pl_PL.lsm
Slovak spelling and messages ")
ted_sk_SK: ')
ted_sk_SK-2.10-1.noarch.rpm
Ted_sk_SK.tar.gz, Ted_sk_SK.lsm
Hungarian messages ")
ted_hu_HU: ')
ted_hu_HU-2.10-1.noarch.rpm
Ted_hu_HU.tar.gz, Ted_hu_HU.lsm
Source #)
ted:
ted-2.10-1.src.rpm
ted-2.10.src.tar.gz
Spelling dictionary examples. @)

tedSpellExamples.tar.gz
rtf to pdf script
rtf to PostScript script

rtf2pdf.sh.
rtf2ps.sh
')	The spelling packages have been renamed since Ted 2.6 to 
	comply with naming conventions. If rpm complains about 
	conflicts, please remove the conflicting old package using the 
	command rpm -e old_package.
#)	Please read the compilation instructions at the end of this 
	document before you start compiling Ted. They are short and 
	easy.
@)	Please refer to the explanation at the end of this document.
")	For languages that use the Latin 2 character set, Latin 2 
	fonts are best. The ult1mo package is a useful collection of 
	Latin 2 fonts. The current version does not give an 
	ItalicAngle for the bold italic fonts. For the correct 
	operation of Ted, a negative angle should be inserted manually.

A collection of Ted packages for the NetBSD operating system is 
available via 
ftp://ftp.netbsd.org/pub/NetBSD/packages/pkgsrc/textproc/ted/README.html
.
A french translation of Ted by Jean Peyratout can be found on the page 
http://www.abul.org/education/ted.html.

Text and text attributes
To enter text, just type. What you type is inserted in the text before 
the insertion point that is shown as a blinking vertical line. If a 
region of text is selected, the whole selection is replaced by what 
you type. Single letters can be deleted with the backspace key. It 
deletes the character before the insertion point. The Delete key 
deletes the character after the insertion point. If a region of text 
is selected, both the Backspace and Delete keys delete the selection. 
If the backspace key deletes the text after the insertion point, your 
X11 configuration wants it to be a Delete key. Refer to the section on 
X11 configuration below for details.

The insertion point can be moved with the arrow keys, or by clicking 
with the left mouse button in the desired position. The 'Home' key 
moves the insertion point to the beginning of the line. The 'End' key 
to the end of the line. Regions of text can be selected by dragging 
over the text with the left mouse key down. It is also possible to 
select regions of text with one of the keys that moves the insertion 
point: Press the key while the shift key is down. Ted shows you what 
is selected by drawing the background of the selected region in light 
blue.

To change the font of the selected region, activate the Font tool by 
clicking the 'Font Tool' option in the 'Font' menu. It shows you the 
font of the current selection. Choose the font you want to use for the 
selection in the Font Tool and push the 'Set' button. When you select 
a single font in the Font Tool, its name is shown in the selected 
font. The description of a multiple font selection is shown in one of 
the fonts selected. With the 'Revert' button, you can adapt the Font 
Tool to the fonts in the selected region again.

The 'Copy Font' and 'Paste Font' menu options make it easy to use the 
same text attributes in different parts of your text. Select a 
position with the font you want to use somewhere else and click the 
'Copy Font' option. Then select a region of text and click the 'Paste 
Font' option. The selected region gets the text attributes that you 
have copied from the first position.

The collection of fonts that Ted can use is determined by the 
collection of something.afm files in /usr/local/afm. Only fonts that 
have a metrics file there can be used. Ted uses certain heuristics 
based on the name of the font family and the font attributes to find 
an X11 font with a postscript font. Refer to the section on adding 
fonts for a mechanism to explicitly associate X11 fonts with 
PostScript fonts. Only those fonts for which an X11 font can be found 
can be used from Ted. Note that for fonts in a character set different 
from the Latin 1 character set, the AFM file, the X11 font and the 
printer font should have the correct encoding. Ted only reencodes 
fonts in the Adobe standard encoding to ISO latin 1 encoding. All 
other fonts are used without modification.

To change single text attributes such as 'Bold', 'Italic' and 
'Underlined', you can also use the options in the 'Font' menu. 
Subscript and Superscript refer to the position of the 2 in x2 and H2O 
respectively.

The following illustration shows the Font Tool.



Pictures
You can include pictures in your texts. To do so select the Include 
Picture option in the Insert menu. A file chooser will allow you 
select a picture file to include in your text. The most frequent 
picture file formats such as tiff, bmp, xwd and jpeg are supported. It 
is also possible to paste pictures from other X11 applications. 
Unfortunately, only a limited number of X11 applications actually 
support Copy/Paste of pictures.

To resize a picture double click it with the left mouse button. Eight 
resize squares will appear. Dragging the squares on the bottom or on 
the right resizes the picture. The following is a picture during the 
resize process.

Including symbols and accented characters
To include special symbols into a text you can use the symbol picker 
tool. To activate it, choose 'Include Symbol' in the 'Insert' menu or 
in the 'Tools' menu. The symbol picker shows all characters available 
in the current font. You can either select a symbol, and then push the 
'Insert' button, or double click the desired symbol. Symbols from 
different font families can be selected with the font chooser above 
the symbols.



Common accented characters can be typed directly. If your X11 server 
is correctly configured, the local input method that is compiled into 
the X11 libraries supports a compose key. The <compose> key allows you 
to insert accented characters by typing <Compose> <Letter> <Accent> or 
<Compose> <Accent> <Letter>. Where <Accent> is an ascii character that 
resembles the intended accent. E.G. <Compose> a ' results in . 
Another example: <Compose> 1 2 results in . On PC keyboards the 
'Compose' key is often labeled 'Scroll Lock' for your amusement. Refer 
to the paragraph on X11 configuration for some further remarks.
Copy/Paste
Ted supports Copy/Paste with itself and with other X11 applications. 
With the 'Copy' menu option, you can remember a piece of text or a 
picture. The 'Paste' menu option allows you to paste the remembered 
text to a different location of the same document, or to a different 
document.

Copy/Paste of formatted text is only supported between Ted documents 
*). String text with elementary formatting such as tabs and newlines 
can be exchanged with most X11 applications.
Copy/Paste of pictures, retaining geometry information is supported 
between Ted windows, and between Ted and Scan #). Copy/Paste is also 
possible with picture oriented X11 applications that support the 
exchange of PIXMAP selections. With these applications, such as xmag 
and xpaint, scaling information is lost.

A special hack exists in the code to cooperate with the Copy/Paste 
mechanism that xv implements itself with X11 window properties on the 
root window. X11 selections that conform to the conventions of the X11 
Inter-Client Communications Conventions Manual (ICCCM) always have 
priority over those from xv. This is a peculiarity of the way xv 
implements its clipboard, not a bug in Ted.

Both the Netscape Composer and the Gimp handle Copy/Paste of anything 
but plain text inside the program. This makes Copy/Paste with programs 
like Ted that do Copy/Paste in the  normal X11 way impossible.

*)	Theoretically other applications might support it: 
	selection=PRIMARY, target=RTF; the contents of the window 
	property that is exchanged is a complete rtf document.
#) 	Theoretically other applications might support it: 
	selection=PRIMARY, target=PNG; the contents of the window 
	property that is exchanged is a complete png picture.

Finding and Replacing Text

With the 'Find Tool' you can look for certain fragments of text. You 
can activate the 'Find Tool' by selecting 'Find' in the 'Tools' menu, 
or by typing Control-F. The Find tool has two frames. In the text box 
in first frame, you can enter the pattern to look for. In the second 
frame you can enter a replacement. The 'Find' button looks for the 
next occurrence of your pattern in the document. The 'Previous' button 
searches backward in the document. When your pattern is found, you can 
enter a replacement and push the 'Replace' button to replace the 
pattern with the replacement. The 'Replace, Next' button is a shortcut 
for clicking 'Replace' and then 'Next'.

 

Depending on the value of the check box below the pattern, what Ted 
tries to find in your text is not simply a piece of text, but a 
regular expression. Regular expressions are a means to look for 
several different pieces of text at once. Normally, you will not be 
interested in using regular expressions at all. The advanced user can 
activate to check box to look for a match of a regular expression.

The regular expression matching algorithm in Ted was borrowed from the 
regex library by Henry Spencer. For details refer to the 
acknowledgments. I quote from the original documentation by Henry 
Spencer: (Please realize that the casual user does not need to use or 
understand regular expressions.)

REGULAR EXPRESSION SYNTAX
A  regular  expression is zero or more branches, separated by `|'.  It 
matches  anything  that  matches  one  of  the branches.
A branch is zero or more pieces, concatenated.  It matches a match for 
the first, followed by a match for the second, etc.
A  piece is an atom possibly followed by `*', `+', or `?'. An atom 
followed by `*' matches a sequence of  0  or  more matches  of  the  
atom.  An atom followed by `+' matches a sequence of 1 or more matches 
of the atom.  An  atom  followed  by  `?'  matches  a  match of the 
atom, or the null string.
An atom is a regular expression in parentheses (matching a match  for  
the  regular expression), a range (see below), `.'  (matching any 
single character),  `^'  (matching  the null  string  at  the  
beginning of the input string), `$' (matching the null string at the 
end of the input string), a  `\' followed by a single character 
(matching that character), or a single character with no  other  
significance (matching that character).
A  range is a sequence of characters enclosed in `[]'.  It normally 
matches any single character from  the  sequence. If  the  sequence  
begins  with `^', it matches any single character not from the rest of 
the sequence.  If two characters  in  the  sequence  are  separated  
by `-', this is shorthand for the full list of  ASCII  characters  
between them (e.g. `[0-9]' matches any decimal digit).  To include a 
literal `]' in the sequence, make it the first character (following  
a  possible  `^').   To include a literal `-', make it the first or 
last character.

AMBIGUITY
If a regular expression could match two different parts of the  input  
string,  it  will  match  the one which begins earliest.  If both 
begin in the  same  place    but  match different  lengths,  or match 
the same length in different ways, life gets messier, as follows.
In general, the possibilities in a list  of  branches  are considered  
in  left-to-right order, the possibilities for `*', `+', and `?'  are  
considered  longest-first,  nested constructs  are considered from the 
outermost in, and concatenated constructs are considered  
leftmost-first.   The match  that will be chosen is the one that uses 
the earliest possibility in the first choice that has to  be  made. If 
there is more than one choice, the next will be made in the same 
manner  (earliest  possibility)  subject  to  the decision on the 
first choice.  And so forth.
For  example,  `(ab|a)b*c' could match `abc' in one of two ways.  The 
first choice is between  `ab'  and  `a';  since `ab'  is  earlier,  
and  does lead to a successful overall match, it is chosen.  Since the 
`b' is already spoken for, the  `b*'  must  match  its  last  
possibility--the  empty string--since it must respect the earlier 
choice.
In the particular case where no `|'s are present and there is  only  
one `*', `+', or `?', the net effect is that the longest possible 
match will be  chosen.   So  `ab*',  presented  with  `xabbbby', will 
match `abbbb'.  Note that if `ab*' is tried against `xabyabbbz',  it  
will  match  `ab' just  after  `x',  due  to  the begins-earliest 
rule.  (In effect, the decision on where to start the  match  is  the 
first  choice  to  be  made, hence subsequent choices must respect it 
even  if  this  leads  them  to  less-preferred alternatives.)
Spell checking
The spelling tool is to check the spelling of your document. With the 
menu in the dictionary frame, you can select the language that you 
want to use for spell checking. All Language.ind files in 
/usr/local/ind #) are listed in the dictionary menu.
The 'Learn' and 'Forget' buttons in the dictionary frame allow you to 
customize your dictionary. The word in the text field below the list 
of guesses is included in the dictionary with the 'Learn' button, or 
removed from the dictionary with the 'Forget' button. For a 
description of the file that is used to store your modifications to 
dictionaries see below.

The 'Find Next' button looks for the next unknown word in the text. If 
one is found, Ted tries to find similar words in the dictionary and 
shows them in the list with guesses. Clicking on a word in the list of 
guesses stores the word in the text field under the list. A double 
click uses the selected word to correct the word in the text.

The 'Ignore' button ignores the unknown word. The word is not reported 
as unknown any more until Ted is stopped. Ted looks for the next 
unknown word. The 'Find Next' button looks for the next unknown word. 
The 'Correct' button uses the word in the box below the list to 
correct the word in the text. The 'Guess' button looks in the 
dictionary for words similar to the word in the box below the list.

Below is an image of the spelling tool



System dictionaries are stored in an optimized read only format. For 
those with some technical curiosity: It is the memory image of a 
minimal finite automaton that recognizes all the words in the 
dictionary. The data structure is very similar to Donald Knuth's tries
. Personal deviations from the read only system dictionaries are 
stored in <Language>.changes files in a users $HOME/.Dictionaries 
directory. Every time the user pushes the 'Learn' or 'Forget' button, 
a line is added to the changes file. The first character of the line 
is an 'F' or an 'L', the second character is a space, the rest of the 
line is the word or phrase that is added or removed. As the file is 
never reorganized, the order of the lines in the file is important. 
E.G. When a word is first added and then removed again.

#)	Or in a different location. Refer to the 
	Ted.spellToolSystemDicts resource.
Hyperlinks and bookmarks
To change a text region into a hyperlink, select the text, choose the 
'Hyperlink..' option from the 'Insert' menu and enter the destination 
of the link in the 'Hyperlink..' dialog. The 'Hyperlink..' dialog can 
also be used to change, remove or follow links. Below is an image of 
the 'Hyperlink' dialog.



Enter the name of the document or web page you want to link to in the 
'Document' box. When you leave the 'Document' box empty, the link is 
to a bookmark in the document itself.
Enter the name of a bookmark in the 'Bookmark' box. When you leave the 
'Bookmark' box empty, the link is to the document as a whole. When no 
document is given in the 'Document' box, you can select a bookmark in 
the current document from the list of bookmarks below the 'Bookmark' 
box.
Normally, a hyperlink is made from the text that you have selected in 
your document. For new links to the document itself, three special 
kinds of link are available:
	Link as Page Number: The link is shown as the page number of 
	the beginning of the bookmark. This is particularly useful in 
	phrases like "Refer to the explanation on page 36". Ted will 
	automatically update the page number when the bookmark moves 
	or the layout of the document changes.
	Link as Bookmark Text: The link is shown as the text of the 
	bookmark. This is particularly useful in phrases like "This is 
	explained in the Average Yearly Temperature section."
	Link as Bookmark Text and Page Number: The link is shown as 
	the text of the bookmark, followed by a tab and the page 
	number of the beginning of the bookmark. This is particularly 
	useful when you want to build a table of contents.
The 'Set Link' button changes the destination of an existing hyperlink 
or makes a new link of the desired kind.
The 'Follow Link' button follows the link. When it is to a location 
inside the document itself, Ted will select this location. When it is 
to a document on the same computer, Ted tries to open it. When it is 
an internet link, Ted invokes Netscape to follow the link.
The 'Remove Link' button changes a hyperlink back to plain text.
The 'Cancel' button removes the hyperlink dialog from screen without 
doing anything.

Bookmarks are a way to give locations in your document a name. Once a 
location has a name, you can jump to it with a hyperlink or you can 
refer to it in the document indirectly. For example you can refer to 
the text inside a bookmark or to the number of the printed page that 
the bookmark appears on. To insert and inspect bookmarks, choose the 
'Bookmark..' option from the 'Insert' menu. The 'Bookmark' dialog 
appears.

To add a bookmark, enter the name of the bookmark in the 'Bookmark..' 
dialog. Ted suggests a name for the bookmark based on the contents of 
the selected area in the document. To make a new bookmark or to change 
the name of an existing bookmark push the 'Set Bookmark' button. Push 
the 'Remove Bookmark' button to remove an existing bookmark. To jump 
to a bookmark type its name in the 'Bookmark' box and push the 'Go To 
Bookmark' button. In stead of typing the name of a bookmark, you can 
select it in the list of bookmarks below the text box.

Use the 'Copy Bookmark' frame to copy a reference to a bookmark to the 
clipboard. Push the 'Copy' button to copy the bookmark to the 
clipboard. Pasting the clipboard to a different location in the 
document or to a different document will insert a hyperlink that 
refers to the bookmark. A bookmark can be copied in four different 
formats:
	As a hyperlink with constant text.
	As a reference to the bookmark that is shown as its page 
	number.
	As a reference to the bookmark that copies the current text 
	of the bookmark every time it is printed.
	As a copied reference to the bookmark that copies the text 
	and one that shows the page number, separated by a tab. This 
	can be used to make a simple table of contents.
The last three kinds of hyperlinks only make sense when they are 
contained in the same document as the bookmark that they refer to.

Hyperlinks and bookmarks are particularly interesting when the text is 
saved to HTML and as a simple way to make a table of contents.
Paragraphs and the ruler
A paragraph is a piece of text that is folded between the margins of 
the page. Explicit line breaks separate paragraphs. With the 
'Paragraph on New Page' menu option, paragraphs can be made to start 
on a new page when the text is printed. Usually the division of a 
document in pieces that start on a new page is achieved by dividing 
the document in sections, not by explicitly making paragraphs begin on 
a new page as a property of the paragraph.

Every paragraph of a text has a ruler. The ruler determines how the 
text of the paragraph is folded between the margins of the page, or of 
the table cell that contains it. The ruler is shown at the top of the 
text window. It defines some properties of a paragraph. 
	The left indentation of the first line of the paragraph: The 
	place to the right of the left margin of the page where the 
	first line of the paragraph begins. The indentation of the 
	first line is shown by the button above the white band of the 
	ruler.
	The left indentation of the rest of the paragraph: the place 
	to the right of the left margin of the page where the other 
	lines of the paragraph begin. The left indentation of the 
	paragraph is shown by a button below the white band of the 
	ruler.
	The right indentation of the paragraph: The width of the band 
	to the left of the right margin of the page, that shall not be 
	used by the paragraph. The right indentation of the paragraph 
	is shown by a button below the white band of the ruler.
	A series of tab stops. Tab stops are shown as little brackets 
	in the white band of the ruler. When there are no tab stops, 
	or right of the rightmost tab stop, Ted uses left aligned tab 
	stops at multiples of a half inch from the left margin. In 
	many cases tables are a better way to format text in columns 
	than tab stops.

The position of the different indentations and the tabs can be changed 
by dragging the controls on the ruler that represent them. Tab stops 
can be set by clicking on the white band of the ruler. Tab stops can 
be removed by dragging them from the white band. The little button in 
the upper left corner of the ruler determines what kind of tab stops 
are inserted when you click in the white band of the ruler:
	Inserts a left tab stop: The text after the tab stop is left 
	aligned to the tab stop.
	Inserts a right tab stop: The text after the tab stop is right 
	aligned to the tab stop. Effectively the text appears before 
	the tab stop.
	Inserts a centered tab stop: The text after the tab stop is 
	centered around the tab stop. After formatting the tab stop is 
	exactly in the middle of the text.
In many cases it is easier to use a table and paragraph alignment 
inside the cells of the table to align text in columns than to use tab 
stops. 

Rulers can be remembered with the 'Copy Ruler' menu option. It 
remembers the ruler of the paragraph that contains the insertion point 
in the text. If a region of text is selected, the ruler of the 
paragraph where the selection begins is remembered. Remembered rulers 
can be applied to other paragraphs. The 'Paste Ruler' Menu option sets 
the remembered ruler for the paragraph that contains the insertion 
point. If a region of text is selected, the remembered ruler is set 
for all paragraphs that contain part of the selection.

Use the 'Make One Paragraph' option to merge the paragraphs in the 
selection into one paragraph. This is particularly useful in documents 
that originate from a file that has been produced with a text editor 
like vi.

Ted supports some additional paragraph formatting properties. The 
controls on the 'Paragraph' page of the Format tool allow you to 
change the properties of a paragraph. Note that although all sizes are 
displayed in points, that you can enter sizes in different units. When 
you push the 'Enter' key, the size is translated to points.

The following illustration shows a paragraph and its ruler.


Use the Paragraph page on the Format Tool to change formatting 
properties of the current paragraph manually.


Paragraph properties on the Paragraph page of the Format Tool:

First Line Indent
Is the distance of the first letter on the first line of the paragraph 
from the page (or table cell) left margin.
Left Indent
Is the distance of the first letter of  the second and subsequent 
lines in the paragraph from the page (or table cell) left margin.
Right Indent
Is the distance of the last letter of  the lines in the paragraph from 
the page (or table cell) right margin.
Alignment
Determines how the contents of the lines of the paragraph are aligned 
relative to the page or to the table cell that contains the paragraph.
Spacing
Normally, the distance between the lines in a paragraph is determined 
by the biggest font or in line image in the paragraph. The 'Spacing' 
menu allows you to influence the distance between the lines. The 
possibility to apply the line spacing to the last line of the 
paragraph is not yet supported in the Ted 2.10 format tool.
Space Above
Allows you to give the height of the white strip of paper above the 
first line of the paragraph.
Space Below
Allows you to give the height of the white strip of paper below the 
last line of the paragraph.
Top Border
When on, the paragraph has a top border. You can enter the width of 
	the border in the text box right of the toggle button. The 
	maximum is 3.75 points. (About 1.25 mm) Though the RTF file 
	format supports many different styles for borders, Ted only 
	supports solid black borders.
Bottom Border
When on, the paragraph has a bottom border. You can enter the width of 
the border in the text box right of the toggle button. The maximum is 
3.75 points. (About 1.25 mm) Though the RTF file format supports many 
different styles for borders, Ted only supports solid black borders.
Start on New Page
Check this box to make Ted skip to a new page when it formats this 
paragraph. This property does not apply to paragraphs inside tables.
Keep on One Page
Do not divide this paragraph between pages, except when it contains 
explicit page breaks. When the paragraph is longer than a page, this 
property is ignored.
Widow/Orphan control
When this paragraph divided over pages, it is done in such a way that 
the first and the second line of the paragraph are on the same page. 
The same applies for the last two lines of the paragraph.
Keep with Next
The text is divided over pages in such a way that this paragraph 
appears on the same page as the next one. Typically because it is the 
heading of the next paragraph.
Tables
To insert a table into a document, select 'Insert Table' in the 
'Table' menu. By default, tables are just a formatting means. The 
borders of the table cells are not printed. The light gray borders of 
the cells are shown to visualize the structure of the table. If you 
find them annoying, use the 'Draw Table Grid' menu option to hide 
them. To add borders to the rows and columns of a table, use the table 
tool.

When the selection is inside a table, the document window gets a 
special ruler, that allows you to move the borders of a table by 
dragging them left and right. The illustration below shows the process.


The table related pages of the format tool permit you to do more 
complicated things to the formatting of tables, such as giving the 
cells in the table borders and changing the internal margins of the 
cells. It also allows you to delete rows or columns, to insert rows or 
columns before the selection, as opposed to the menu options, that 
only allow you to add them after the selection. Below are the three 
table related pages of the format tool and an explanation of their 
possibilities. Note that although all sizes are displayed in points, 
that you can enter sizes in different units. When you push the 'Enter' 
key, the size is translated to points.






Left Margin
Is the distance of the left margin of the table from the left margin 
of the page. Negative values mean that the left border of the table is 
left of the left margin of the page. When the value is the negative of 
that of Cell Margin, the left margins of the text inside and outside 
the table align.
Cell Margin
Is the distance of the text from the left or right margin of the cells 
in the table.
Top Border
When on, the row has a top border. You can enter the width of the 
border in the text box right of the toggle button. The maximum is 3.75 
points. (About 1.25 mm)
Bottom Border
When on, the row has a bottom border. You can enter the width of the 
border in the text box right of the toggle button. The maximum is 3.75 
points. (About 1.25 mm)
Keep on One Page
When the Keep on One Page toggle is on, the row is not divided over 
pages when the document is printed. When it does not fit as a whole on 
the page where is begins, it is moved to the next page.
Height Free
The height of the row is that of its highest cell.
Height at Least
The height of the row is at least the number in the text widget. If a 
cell in the row is higher, the height of the row is adapted to the 
cell.
Height Exactly
The height of the row is the number in the text widget, even if the 
contents of the cells do not fit.
(Column) Width
The width of the selected column. The table tool tries to prevent you 
from changing a column width to a value that makes the table wider 
than the page.
Left Border
When on, the column has a left border. You can enter the width of the 
border in the text box right of the toggle button. The maximum is 3.75 
points. (About 1.25 mm)
Right Border
When on, the column has a right border. You can enter the width of the 
border in the text box right of the toggle button. The maximum is 3.75 
points. (About 1.25 mm)

Though the RTF file format supports many more kinds of borders, Ted 
only uses and manipulates the borders of the individual cells. In the 
RTF format they can have any width and many different styles. Ted only 
supports solid black borders. Operations on rows or columns change the 
border for all cells in the row or column.
Sections
Longer documents can be divided in sections. Sections can be compared 
to the chapters of a book. By default Ted starts sections on a new 
page when the document is printed. Different sections can have 
different ways to number the pages and different page headers and 
footers. Different sections can even use a different page layout. Use 
the 'Headers and Footers' page of the format tool to change the 
headers and footers of the section. Use the 'Page Layout' page of the 
format tool to change the page layout for a section.

Section properties on the Section page of the Format Tool:
Begins
Tells Ted where to start this section. By default new sections start 
on a new page. Possibilities are:
	Below Previous: The transition from the previous section to 
	this one does not cause Ted to start a new page.
	In Next Column: When the section has multiple newspaper style 
	columns, the formatter starts a new column for this section. 
	As Ted 2.10 does not implement multi column sections, it 
	begins the section on the next page.
	On New Page: Ted starts the section on a new page.
	On Even Page: Ted starts the section on an even numbered 
	page. When the next page has an odd number, a blank page is 
	inserted.
	On Odd Page: Ted starts the section on an odd numbered page. 
	When the next page has an even number, a blank page is 
	inserted.
Page Number Style
The kind of page numbers that are used in the headers and/or footers 
on pages belonging to this section. Numbers with the same style are 
used in references to pages in this section.
Start with Page
Normally the pages of a document number from one at the beginning of 
the document. With the 'Start with Page' toggle you can give the 
section its own page numbers. With the text box on the right you can 
even give the number that is used for the first page of the section.
Columns
The number of newspaper style columns that is used to format this 
section. Newspaper style columns are not implemented in Ted 2.10.
Column Spacing
The spacing between the newspaper style columns that are used to 
format this section. Newspaper style columns are not implemented in Ted
 2.10.
Column Width
The width of the newspaper style columns that are used to format this 
section. Newspaper style columns are not implemented in Ted 2.10.

Page Headers, Footers and Page Numbers
Every section of the document has its own headers and footers. The 
headers and footers are printed in the top and bottom margins of the 
page. The exact location is controlled by the 'Page Layout' page of 
the format tool.To make a header or footer, push one of the 'Edit 
Header' or 'Edit Footer' buttons on the 'Headers and Footers' page of 
the format tool.

The kind of headers and footers that is relevant for a section is 
determined by two factors: Whether the section uses different headers 
and footers for the first page of the section or not, and whether the 
document uses different headers and footers for odd and even pages. 
Use the toggles to change these properties.
Select the kind of pages you want to influence in the menu and push 
the 'Edit Header/Footer' or 'Delete Header/Footer' buttons to delete 
or edit a header or a footer. When the section does not have a header 
or footer for a certain kind of pages, it is made when you push the 
'Edit Header/Footer' button. To have all relevant kinds of pages a 
section needs to have at least three pages. (First,Even,Odd.) As you 
edit headers and footers in place, it is not possible to edit the 
headers and footers for the pages that the section does not have. This 
means that you might have to temporarily insert a page break in the 
text to make a particular header or footer accessible.
Normally page headers and page footers are not accessible by mouse 
clicking or with the arrow keys. To start editing a page header or a 
page footer, double click on the header or footer. To switch back to 
the body text, double click somewhere in the body text.

To insert a page number in a header or a footer, use the 'Insert Page 
Number' menu option. You can only insert page numbers in headers or 
footers.
Page size and Margins
The page size and the margins of a fresh document are determined by 
the relevant resources as discussed in the configurable resources 
paragraph. The page size, the page orientation and the margins of a 
document can be changed with the 'Page Layout' page of the format 
tool. For the format of the values that can be entered in the text 
widgets, please refer to the syntax of the resources. Pressing the 
'Enter' key in the text widgets refreshes the drawing on the Page 
Layout tool to give you an impression of what you have selected. The 
RTF file format stores page layout information in two places. For the 
document as a whole and for the individual sections in the document. 
Although a different page layout for different sections in a document 
might not be particularly useful, Ted allows you to only change the 
page layout of the selected sections in the document. The illustration 
below shows the page layout page of the format tool.



Printing from Ted, writing Acrobat PDF
To print from Ted, select the 'Print...' option in the 'File' menu. 
The print dialog appears. The print dialog contains a menu with the 
printers that are available on your computer. In addition to the 
printers, the menu contains an option to print to file. If you have 
configured a fax command in your application resources, the menu will 
also contain a fax option. The list of printers is determined by 
calling the operating system printer management command. The following 
commands are tried:
	lpstat -a
	lpc status
	/usr/sbin/lpc status


Note that Ted only prints to PostScript. The printer should support 
all fonts that Ted uses in a particular document. Refer to the section 
on adding fonts for instructions on how to upload extra fonts to your 
postscript printer. Those that do not have a postscript printer can 
use the excellent postscript emulation package GhostScript. It is 
available from ftp.cs.wisc.edu in the directory ghost. Both Aladdin 
GhostScript and GNU GhostScript offer good postscript emulation on a 
wide variety of printers. Besides it can be used as an alternative to 
the Acrobat distiller to convert PostScript files to PDF format. Refer 
to the GhostScript documentation for instructions on how to add fonts 
to GhostScript.

Like the Fax option in the printer selection menu, the text widget to 
enter a fax number is only enabled when a fax command has been 
configured. Only when the fax has been selected as a printer, you can 
enter a fax number in it. For all other printers it is off. The 
illustrations below show the print dialog with the different options. 
By default Ted prints one page per sheet of paper. It is possible to 
print two or four pages of the document per sheet of paper. For this 
purpose, the output is scaled to fit on the sheet. Normally, Ted 
prints all the pages in the document. With the menu on the bottom of 
the Print.. dialog, printing can be limited to a range of pages.









Ted uses the Ted.paper resource to decide what the size of the paper 
in the printers is. This resource is also used to determine the page 
size of a fresh document. The PostScript that is sent to the printer 
assumes this paper size. When you temporarily have a different size of 
paper in your printer, you can select a different paper size. Note 
that the paper size selected on the print dialog does not influence 
the formatting of the printout but only the placement of the formatted 
text on the page. To format a document for a different paper size use 
the page layout tool.

Ted supports two command line invocations to convert rtf documents to 
PostScript from the command line. Ted ++PrintToFile this.rtf that.ps 
makes a PostScript file using the default paper format. Ted 
++printToFilePaper this.rtf that.ps letter makes a PostScript file for 
a printer loaded with 'letter' paper. For a list of possible paper 
formats refer to the documentation of the Ted.paper resource. Although 
the X11 environment is not used for these calls, it is still needed. 
This is a known deficiency of Ted.

Ted includes so called pdfmarks in the postscript it writes. This 
allows the Adobe Acrobat distiller, or GhostScript to make pdf files 
that contain the same hyperlinks and bookmarks as the original rtf 
file. The GhostScript command to convert a postscript file to pdf is 
the following:
gs -q	-dNOPAUSE -sDEVICE=pdfwrite -sPAPERSIZE=a4 \ 
	-sOutputFile=that.pdf this.ps -c quit

Together with GhostScript, Ted can be used to make high quality 
Acrobat pdf files from your rtf files, even in a scripted way. Refer 
to the rtf2pdf.sh script on the Ted ftp site for a complete example.

Probably you have a custom printer or you use a special command to 
print to a PostScript printer. You can print to a custom printer by 
setting two resources in the resource file. The resource 
Ted.customPrintCommand is the command to print to the custom printer. 
Ted.customPrinterName is the name of the custom printer. When both 
resources are set, Ted inserts an extra option in the printer 
selection menu to print through the given command. Because the custom 
printing command is something special, Ted makes it the default 
printer. The value of customPrinterName is a short string that is used 
in the menu to select the custom printer. The value of 
customPrintCommand is an arbitrary shell command to print to the 
custom printer. When customPrintCommand contains the pattern %f the 
pattern is replaced with the name of a temporary file to print. 
Otherwise the PostScript to print is piped into the custom print 
command. When you use %f in customPrintCommand , it is the 
responsibility of customPrintCommand to delete te temporary file.
E.g. the following resource settings in your .Xdefaults or .Xresources 
file use ghostview as a print previewer:
Ted.customPrintCommand: ( ghostview '%f'; rm '%f' ) &
Ted.customPrinterName:  Preview

The APP_FAX_TO environment variable is to use Ted with Martin Vermeers 
FaxView package. When a fax command for Ted is given and APP_FAX_TO is 
set, Ted will select the fax as its default printer and enter the 
value in the fax number text box.

Saving documents to HTML and to plain text
If is possible to save your documents in HTML format. As Ted cannot 
read HTML, this should be done with the 'Save To' menu option. If a 
document that contains bitmap images is saved to the file 
something.html, the images are saved to graphics files in the 
directory something.img. Images with few colors are saved to gif 
files. Images with many colors are saved to JPEG files with a .jpg 
extension. The names of the image files in the something.img directory 
are absolutely arbitrary but Ted tries to use the same name for the 
same image every time the document is saved to HTML.

As RTF and HTML differ a lot, both in the approach to document 
structure and in the formatting possibilities, I had to find a 
compromise between generating HTML that is as elegant as possible, and 
HTML that looks as much like the original RTF document as possible. An 
experiment with style sheets revealed so many inconsistencies between 
browsers, that partially out of frustration, I decided to achieve 
similarity by hand. I am using certain heuristics and a lot of <FONT> 
tags. I know this is a bad habit, but I could not find an acceptable 
alternative. If you are reading this document in HTML form, you can 
decide for yourself whether the result is ugly or not.

Hyperlinks are translated to <A HREF= "something" >. Bookmarks to <A 
NAME= "something">. 

The command Ted ++saveTo this.rtf that.html converts an rtf format 
document to HTML as a command line call. The X11 environment is not 
used for this kind of invocation. This means that the default value of 
configurable resources are used in stead of your private settings. 
This is a known deficiency of Ted. 

The 'Save As' and 'Save To' menu options allow you to save your 
document to plain text. Ted has two ways to save documents to plain 
text. The first one folds the text in the paragraphs in such a way 
that it can easily be used with character terminal style plain text 
editors such as vi and emacs. The second one saves paragraphs as one 
line of plain text. This is not very practical with text editors, on 
the other hand, the paragraph structure of the original document is 
retained.

Sending mail from Ted
You can mail the text that you are typing directly from Ted. Choose 
Mail.. in the File menu. The following dialog appears.



Enter a subject and the various kinds of recipients in the text fields 
*). Enter your mail address in the 'From' text field, or refer to the 
paragraph on configurable resources to find out how to set a default 
value for From. When you retrieve your mail via an internet provider, 
enter the mail address that you have with the provider here. not the 
address that you have on your own computer.
Choose a content type. Do realize that only Microsoft users and people 
with Ted on their machine will be able to read mail in RTF format. Do 
realize that only people that read their mail with web browsers will 
be able to read mail in HTML format. So if you do not know your 
recipient, it is best to send your mail in plain text format. Refer to 
the paragraph on configurable resources if you want to configure a 
default content type for your mail.

Note that Ted was never intended as a mailer application. The mail 
option is there as a shortcut for the cumbersome process of saving a 
text and then importing it into a mailer application. Obvious things 
like an address book are missing.

Ted can send mail in three formats:
	text/plain: The message is the document without any 
	formatting. Just the text remains. All images and structuring 
	is removed from the document.
	application/rtf: The document is sent in exactly the same 
	format as it would have been saved to a file.
	text/html: The text of the document is sent in HTML format. 
	Actually the contents are not just the HTML that would have 
	been saved to disk. The HTML and the included images are 
	combined into a multipart/related mime message conforming to 
	rfc 2557. (HTML mail)

*)	Cc (Carbon Copy) recipients will get the mail, and they will 
	be mentioned in the headers of the mail message.
	Bcc (Blank Carbon Copy) recipients will also get the mail, but 
	they will not be mentioned in the headers of the mail message.

How to use Ted as a mime handler or a Netscape helper application
In Netscape 4.0 choose Edit, Preferences.., Navigator, Applications. 
Click on 'Rich Text Format', then on the 'Edit' Button. In the 
'Application:' Edit box enter Ted '%s'

The result is a line application/rtf;/Ted '%s' in your $HOME/.mailcap 
file, that mail readers use to determine what program can be used to 
display mail enclosures of a certain type. You could as well have 
included this line with a text editor like vi or emacs.


Configuring Ted
In general, it is not necessary to configure or customize Ted. All 
texts and default settings of Ted are however configurable through the 
usual X11 application resources mechanism. Ted does not use documented 
widget names, so no widget resources can be set using the widget 
resources mechanism*). Refer to the file /usr/local/info/Ted.ad.sample 
for a commented example resource file. To overrule the default values 
of the resources that are compiled into Ted, install the lines you 
change in this file as a $HOME/Ted file. If you do not want a visible 
file in your home directory include the changed lines in 
$HOME/.Xdefaults or $HOME/.Xresources. For every property called 
someprop, insert a line of the form Ted.someprop: somevalue in the 
resource file.

Most settings relate to the texts of the different controls on the 
windows. These are not covered in this introductory manual. If you 
want to change the texts, for example to make localized Ted 
installations, refer to the Ted.ad.sample file for an example and an 
explanation. As the sample file contains all the defaults that are 
compiled into Ted, only what you change is relevant.

The following properties influence Teds functionality:

defaultFont:	Used as the font of new documents. The format of 
	the string is: <Family>,<Weight>,<Slant>,<Size>,<Underline>. 
	E.G. "Helvetica,,,10" or "Times,Bold,Slanted,14,Underlined". 
	Do not put the value in the resource file in quotes.
magnification:	Magnification for drawing documents on the 
	screen. The default value is 1.2 for 120%.
unit:	The unit that is used by default. This resource  
	influences the appearance of the ruler and the interpretation 
	of numbers entered in the page layout tool. Possible values 
	are: inch, ", cm, mm, points, pt, picas, pi.
paper: 	The format of the paper in the printer. The paper 
	format is used as the default page size for new documents. If 
	a smaller page size is used for a document, Ted uses the 
	Ted.paper resource to print in the upper left corner of the 
	paper. Possible values are:  a4,a5,letter,legal,executive and 
	strings in the  form <Width> x <Height> where <Width> and 
	<Height> are valid dimensions. Valid dimensions are strings of 
	the form <Number> <Unit>. Values for units are given above. If 
	<Unit> is omitted, the value of the 'unit' resource is 
	assumed. Plain text files do not store a paper size for the 
	file inside the file. The Ted.paper resource is user for the 
	page layout of every plain text file that Ted opens.
defaultPrinter:	If you want to use a different printer than the 
	system default printer as the default printer from Ted, you 
	can set this resource to select that printer the first time 
	you use the Print Dialog.
leftMargin: 	The width of the left margin of a new document. 
	The value must be a valid dimension.
rightMargin:	The width of the right margin of a new document. 
	The value must be a valid dimension.
topMargin:	The height of the top margin of a new document. The 
	value must be a valid dimension.
bottomMargin:	The height of the bottom margin of a new 
	document. The value must be a valid dimension.
mailContent:	The default content type for mail messages. The 
	default is text/plain. Possible values are the resource names 
	for the menu options. I.E. mailPlain,mailRtf,mailHtml.
mailFrom: 	The default sender of the mail messages. No default 
	value exists, but if none is given, the mailing software 
	attempts to compose a name like 'Your Name 
	<login@host.domain>'.  When you retrieve your mail via an 
	internet provider, give the mail address that you have with 
	the provider here. not the address that you have on your own 
	computer.
mailHost:	The SMTP relay that is used to transmit your mail. 
	The default is 'localhost'.
afmDirectory	The directory where Ted looks for font metric 
	files. Only fonts that have a metric file in this directory 
	can be used by Ted. In a default installation, metric files 
	are expected in /usr/local/afm. This resource is particularly 
	useful when you can not install Ted as root, and you have to 
	store the metric files in some private directory. #)
spellToolSystemDicts:	The directory where Ted looks for 
	spelling dictionaries. In a default installation, spelling 
	dictionaries are expected in /usr/local/ind. This resource is 
	particularly useful when you can not install Ted as root, and 
	you have to store the dictionaries in some private directory. 
	#)
documentFileName:	The name of this online document file. In a 
	default installation this is /usr/local/info/TedDocument.rtf. 
	#)
faxCommand:	The command that Ted uses to send the current 
	document as a fax. In the command %f is replaced by a 
	temporary file name, %n by the fax number and %t by the title 
	of the document window. The fax command is assumed to accept 
	PostScript as input. If the command contains occurrences of 
	%f, a temporary file is written with PostScript, otherwise 
	PostScript is piped into the command. To avoid strange 
	situations, commands without the '%n' pattern are refused. For 
	the excellent efax package by Ed Casas, the following are 
	working:
a)	Simply send the fax and wait for it...
	Ted.faxCommand:	( ( fax send '%n' '%f'; rm '%f' ) )
b)	Send the fax, do not wait but mail a report to the sender...
	Ted.faxCommand:	( ( fax send '%n' '%f' 2>&1; rm '%f' 
	2>&1 ) | mail -s 'Fax %t' mark@localhost ) >/dev/null 2>&1 &
	The environment variable APP_FAX_TO also relates to faxing. 
	Refer to the section on printing.
	
customPrintCommand:	A command to print through a custom printer 
	command. Refer to the paragraph on printing for details.
customPrinterName:	The name that is used to designate the 
	custom printer command on the Print Dialog. Refer to the 
	paragraph on printing for details.
defaultAnsicpg:	The number of the codepage that is assumed when 
	a document does not contain an 'ansicpg' rtf tag. It is also 
	used when new documents are made. In general it is not 
	desirable to set this resource without installing appropriate 
	fonts. Only a few codepages are really supported. When you 
	want me to support your codepage. I need your active help to 
	provide me with example documents and to test my progress.

*)	Exceptions are made for the Shell widgets. With window 
	managers different from mwm, it might be necessary to set 
	Geometry resources for them. The names of the Shell widgets 
	are given below.
#)	On Debian Linux, file system hierarchy standards require 
	architecture independent data to reside in /usr/share. Ted 
	packages distributed with Debian Linux distributions install 
	the files in /usr/share/ted/afm, /usr/share/ted/ind and 
	/usr/share/ted/info respectively. The default value for these 
	directories can be influenced by editing the top level Ted 
	makefile.
Adding fonts to a Ted installation
It is possible to use more fonts than just Times, Symbol and Courier 
from Ted. Ted can use any font that has an .afm file in /usr/local/afm 
for which a corresponding X11 font can be found. Below I will tell you 
how to extend this set of fonts to the Adobe base35 collection that is 
present in most printers and in GhostScript.

I will assume the following:
	That you downloaded the relevant AFM files from the directory 
	/pub/adobe/type/win/all/afmfiles/base35 on 
	ftp://ftp.adobe.com. That is all the files in the directory 
	minus the Helvetica Condensed ones.
	That you removed the carriage return characters at the end of 
	the lines of the something.afm files, and you removed the 
	final Control-Z character from the files.
	That you obtained the collection of postscript type1 fonts 
	that the German company URW++ contributed to GhostScript. E.G. 
	by extracting them from de CD-Rom that accompanies the book: 
	Merz, Thomas, "Postscript & Acrobat/PDF", Springer-Verlag, 
	Berlin &c, 1996, ISBN 3-540-60854-0.

You proceed as follows:
	You copy the afm files to /usr/local/afm. Either you remove 
	the Files Ted installed there, or you do not install the .afm 
	files for the fonts that already have an .afm file from Ted. 
	Remember the remark about the carriage returns and the 
	control-z characters.
	You install the URW++ fonts in a directory. If you just 
	install in the X11 Type1 directory, you adapt the fonts.dir 
	and fonts.scale files there. If you install in a separate 
	directory, add the directory to the font path of the X11 
	server. E.G. by inserting a line like xset fp+ 
	/home/gaai/mark/URW-Fonts/ in your $(HOME)/.xinitrc. The lines 
	that for the different fonts are to be inserted in fonts.dir 
	and fonts.scale  are given below. The first line in the files 
	is the number of fonts. For your convenience, all other lines 
	are included in the example.
	You install a mapping from the standard PostScript printer 
	font name to the X11 font that is to be used on the screen. In 
	my example I use the URW++ fonts that were installed in the 
	previous step. For your convenience, all lines are included in 
	the example. Note that the font file name is replaced with the 
	postscript font name, and all zeros with an asterisk. I 
	deleted the lines for the normal fonts, as ordinary X11 fonts 
	look better than scalable ones. Only if the mapping from the 
	PostScript names of the fonts to the X11 names is straight 
	forward, this step is superfluous. The standard heuristics to 
	find an X11 font with a PostScript one will do the same as you 
	tell Ted in the file.

The line that are inserted in the fonts.dir and fonts.scale files for 
the different URW++ fonts are the following:
a010013l.pfb -urwpp-urw gothic l-book-r-normal--0-0-0-0-p-0-iso8859-1
a010015l.pfb -urwpp-urw gothic l-demi-r-normal--0-0-0-0-p-0-iso8859-1
a010033l.pfb -urwpp-urw gothic l-book-i-normal--0-0-0-0-p-0-iso8859-1
a010035l.pfb -urwpp-urw gothic l-demi-i-normal--0-0-0-0-p-0-iso8859-1
b018012l.pfb -urwpp-urw bookman 
l-regular-r-normal--0-0-0-0-p-0-iso8859-1
b018015l.pfb -urwpp-urw bookman l-bold-r-normal--0-0-0-0-p-0-iso8859-1
b018032l.pfb -urwpp-urw bookman 
l-regular-i-normal--0-0-0-0-p-0-iso8859-1
b018035l.pfb -urwpp-urw bookman l-bold-i-normal--0-0-0-0-p-0-iso8859-1
c059013l.pfb -urwpp-century schoolbook 
l-roman-r-normal--0-0-0-0-p-0-iso8859-1
c059016l.pfb -urwpp-century schoolbook 
l-bold-r-normal--0-0-0-0-p-0-iso8859-1
c059033l.pfb -urwpp-century schoolbook 
l-regular-i-normal--0-0-0-0-p-0-iso8859-1
c059036l.pfb -urwpp-century schoolbook 
l-bold-i-normal--0-0-0-0-p-0-iso8859-1
d050000l.pfb 
-urwpp-dingbats-regular-r-normal--0-0-0-0-p-0-adobe-fontspecific
n019003l.pfb -urwpp-nimbus sans 
l-regular-r-normal--0-0-0-0-p-0-iso8859-1
n019004l.pfb -urwpp-nimbus sans l-bold-r-normal--0-0-0-0-p-0-iso8859-1
n019023l.pfb -urwpp-nimbus sans 
l-regular-i-normal--0-0-0-0-p-0-iso8859-1
n019024l.pfb -urwpp-nimbus sans l-bold-i-normal--0-0-0-0-p-0-iso8859-1
n019043l.pfb -urwpp-nimbus sans 
l-regular-r-narrow--0-0-0-0-p-0-iso8859-1
n019044l.pfb -urwpp-nimbus sans l-bold-r-narrow--0-0-0-0-p-0-iso8859-1
n019063l.pfb -urwpp-nimbus sans 
l-regular-i-narrow--0-0-0-0-p-0-iso8859-1
n019064l.pfb -urwpp-nimbus sans l-bold-i-narrow--0-0-0-0-p-0-iso8859-1
n021003l.pfb -urwpp-nimbus roman no9 
l-regular-r-normal--0-0-0-0-p-0-iso8859-1
n021004l.pfb -urwpp-nimbus roman no9 
l-bold-r-normal--0-0-0-0-p-0-iso8859-1
n021023l.pfb -urwpp-nimbus roman no9 
l-regular-i-normal--0-0-0-0-p-0-iso8859-1
n021024l.pfb -urwpp-nimbus roman no9 
l-bold-i-normal--0-0-0-0-p-0-iso8859-1
n022003l.pfb -urwpp-nimbus mono 
l-regular-r-normal--0-0-0-0-m-0-iso8859-1
n022004l.pfb -urwpp-nimbus mono l-bold-r-normal--0-0-0-0-m-0-iso8859-1
n022023l.pfb -urwpp-nimbus mono 
l-regular-i-normal--0-0-0-0-m-0-iso8859-1
n022024l.pfb -urwpp-nimbus mono l-bold-i-normal--0-0-0-0-m-0-iso8859-1
p052003l.pfb -urwpp-urw palladio 
l-roman-r-normal--0-0-0-0-p-0-iso8859-1
p052004l.pfb -urwpp-urw palladio l-bold-r-normal--0-0-0-0-p-0-iso8859-1
p052023l.pfb -urwpp-urw palladio 
l-regular-i-normal--0-0-0-0-p-0-iso8859-1
p052024l.pfb -urwpp-urw palladio l-bold-i-normal--0-0-0-0-p-0-iso8859-1
s050000l.pfb -urwpp-standard symbols 
l-regular-r-normal--0-0-0-0-p-0-adobe-fontspecific
z003034l.pfb -urwpp-urw chancery 
l-medium-i-normal--0-0-0-0-p-0-iso8859-1

The translation from the PostScript names of the additional fonts to x 
font names in /usr/local/afm/xfonts.dir is given in the following 
lines:
AvantGarde-Book -urwpp-urw gothic 
l-book-r-normal--*-*-*-*-p-*-iso8859-1
AvantGarde-Demi -urwpp-urw gothic 
l-demi-r-normal--*-*-*-*-p-*-iso8859-1
AvantGarde-BookOblique -urwpp-urw gothic 
l-book-i-normal--*-*-*-*-p-*-iso8859-1
AvantGarde-DemiOblique -urwpp-urw gothic 
l-demi-i-normal--*-*-*-*-p-*-iso8859-1
Bookman-Light -urwpp-urw bookman 
l-regular-r-normal--*-*-*-*-p-*-iso8859-1
Bookman-Demi -urwpp-urw bookman l-bold-r-normal--*-*-*-*-p-*-iso8859-1
Bookman-LightItalic -urwpp-urw bookman 
l-regular-i-normal--*-*-*-*-p-*-iso8859-1
Bookman-DemiItalic -urwpp-urw bookman 
l-bold-i-normal--*-*-*-*-p-*-iso8859-1
NewCenturySchlbk-Roman -urwpp-century schoolbook 
l-roman-r-normal--*-*-*-*-p-*-iso8859-1
NewCenturySchlbk-Bold -urwpp-century schoolbook 
l-bold-r-normal--*-*-*-*-p-*-iso8859-1
NewCenturySchlbk-Italic -urwpp-century schoolbook 
l-regular-i-normal--*-*-*-*-p-*-iso8859-1
NewCenturySchlbk-BoldItalic -urwpp-century schoolbook 
l-bold-i-normal--*-*-*-*-p-*-iso8859-1
ZapfDingbats 
-urwpp-dingbats-regular-r-normal--*-*-*-*-p-*-adobe-fontspecific
Helvetica-Narrow -urwpp-nimbus sans 
l-regular-r-narrow--*-*-*-*-p-*-iso8859-1
Helvetica-Narrow-Bold -urwpp-nimbus sans 
l-bold-r-narrow--*-*-*-*-p-*-iso8859-1
Helvetica-Narrow-Oblique -urwpp-nimbus sans 
l-regular-i-narrow--*-*-*-*-p-*-iso8859-1
Helvetica-Narrow-BoldOblique -urwpp-nimbus sans 
l-bold-i-narrow--*-*-*-*-p-*-iso8859-1
Palatino-Roman -urwpp-urw palladio 
l-roman-r-normal--*-*-*-*-p-*-iso8859-1
Palatino-Bold -urwpp-urw palladio 
l-bold-r-normal--*-*-*-*-p-*-iso8859-1
Palatino-Italic -urwpp-urw palladio 
l-regular-i-normal--*-*-*-*-p-*-iso8859-1
Palatino-BoldItalic -urwpp-urw palladio 
l-bold-i-normal--*-*-*-*-p-*-iso8859-1
ZapfChancery-MediumItalic -urwpp-urw chancery 
l-medium-i-normal--*-*-*-*-p-*-iso8859-1
Uploading fonts to a PostScript printer
When you have extended the collection of fonts that can be used on 
your computer, you might want to print documents that use the extra 
fonts as well. It is really easy to upload a collection of fonts to 
your printer. In a directory that contains the fonts you want to 
upload in either something.pfa format or in something.pfb format give 
the following shell command:

(
echo serverdict begin 0 exitserver
cat *.pfa *.pfb
) | lpr

Until the printer is turned off it will support the fonts from your 
font files.

Using window managers different from mwm
Ted was developed as a Motif application. Most of the testing has been 
done with the Motif Window Manager. When you use a different window 
manager, please note the following:
	Window managers like fvwm do brute things like killing an X11 
	application. Ted is not immune to physical violence.
	Window managers that require you to interactively place 
	windows can be a nuisance. It might be necessary to give 
	Geometry resources that give the windows a fixed position and 
	a fixed size. Specifying Ted*Geometry applies to all windows. 
	Use the names below to give the geometry of the different 
	windows.

Upto a certain point, Ted can support session managers like those of 
KDE or CDE. When the session manager tells Ted to save its state and 
it allows Ted to interact with the user, Ted ask the user whether she 
wants to save her work just as when she wants to quit the application 
and Ted retires from the session. When no interaction is allowed, Ted 
saves unsaved documents to the directory $HOME/.Ted and tells the 
session manager to restart it with special command line options to 
reload the unsaved documents.
Shell widget names
With window managers different from mwm, it might be necessary to set 
Geometry resources for Shell widgets. Shell names are given below.

Application window	Ted
Document window	tedDocument
Find Tool	tedFindTool
Spell Tool	tedSpellTool
Font Tool	tedFontTool
Insert Symbol Tool	tedSymbolPicker
Hyperlink Dialog	tedHyperlink *)
Bookmark Dialog	tedBookmark *)
Print Dialog	tedPrintDialog *)
Mail Dialog	tedMailDialog *)
Property Dialog	tedPropertyDialog *)
Message Dialog	tedMessageDialog *)

So including the line 'tedDocument*geometry: 600x800' in 
$HOME/.Xdefaults or $HOME/Ted will limit the initial size of document 
windows to 600 pixels wide and 800 pixels high.

*)  Generally no Geometry resource needed.
Remarks about X11 server configuration, accented characters and 
backspace
The local input method that is compiled into the X11 libraries 
supports a compose key. Sometimes it is not configured; sometimes you 
have to try many keys before you find it. In older versions of 
Xfree386, the compose (Multi_key) is the one labeled ScrollLock on 
American keyboards. In newer versions, it is not always configured. By 
inserting a line like xmodmap -e 'keycode 78 = Multi_key' in your 
private .xinitrc file, you can configure a compose key.

Sometimes, no BackSpace key is configured in X11. All keys that 
backspace are configured as Delete keys. If pushing the backspace key 
deletes the character after the I-Bar, configure a BackSpace key. In 
Xfree386 this can be done with the command xmodmap -e 'keycode 22 = 
BackSpace'

Similar remarks apply for other X11 versions.
Compiling Ted from source
To compile and link Ted, get the source code from the download site 
ftp://ftp.nluug.nl/pub/editors/ted. Unpack the archive and follow the 
instructions below. When you use other Unix versions than Linux, 
realize that the construction of a distribution package uses the gzip 
compression utility and the chown root:root syntax. Although 
statically linked executables of Ted run on any X Windows system, to 
compile and link, you need a motif development environment. If you do 
not have one you can use LessTif, a free motif implementation. Ted has 
been tested with LessTif, and though there are a few peculiarities, 
the combination of Ted and LessTif works quite well. LessTif is 
available from http://www.lesstif.org. Alternatively you can use the 
Open Motif distribution by the open group refer to 
http://www.opengroup.org/openmotif.
Ted 2.10 can be compiled with the GTK+ 1.2.8 toolkit. The GTK version 
is not complete and should be seen as step in the right direction. Not 
as a finished piece of software.

Apart from a motif development environment, you might need one or more 
of the public graphics libraries that Ted uses.
	Libtiff by Sam Leffler. If you do not have it, download it.
	Libjpeg by the independent JPEG group. If you do not have it, 
	download it. Version 6 is required. If the link stage 
	complains about undefined symbols like jpeg_std_error, you are 
	using version 5.
	Libpng by the PNG group. If you do not have it, download it. 
	You will also need zlib by Jean-loup Gailly and Mark Adler. If 
	you do not have it, download it.
	LibXpm by Arnaud Le Hors of Groupe Bull. If you do not have 
	it, download it.

I want to express my gratitude to the authors of all the free software 
libraries I have used for Ted. Without them, a project like Ted would 
have been impossible. An extra round of thanks goes to the authors of 
LessTif who created a viable, good quality OSF Motif alternative that 
allows us to port motif applications to any X Window environment.

Unpacking the source archive results in a Ted-<version> directory. The 
compilation procedure has some support for graphics libraries that are 
not preinstalled on the system. It assumes that they are installed in 
the Ted-<version> directory, that a link from a generic name to a 
version dependent one exists, and that the library has been 
successfully compiled. Compiling the executable is simply done with 
the command make in the Ted-<version> directory. There is no need to 
call configure as this is done by make. You can change some 
compilation options by editing the top level makefile. Refer to the 
comments in the top of the file. When make is successful, there is a 
Ted executable in the Ted directory. To make an installation package, 
call make package. This must be done as root. The installation package 
tedPackage/Ted_<platform>.tar.gz is now ready. To install it on your 
machine, call make install. Installation must be done as root. Those 
that cannot perform the last steps as root can call make private to 
get a private installation. The make private call will suggest the 
necessary modifications to your .Xdefaults or .Xresources file to run 
from a private installation. The ultimate possibility is to copy the 
Ted executable to a suitable location and to unpack the relevant files 
from the tedPackage/TedBindist.tar archive. Refer to the sections on 
installation and configuration for details.

On some platforms, in particular Sun Solaris, no static Motif and X 
libraries are available. For those platforms, and for shared library 
zealots, the alternative make targets compile.shared, package.shared 
and install.shared are available.
Making spelling dictionaries for Ted
On the Ted web site, or in the source directory of the CD you can find 
two example programs that build a spelling dictionary for Ted. On the 
basis of these examples, it should not be too difficult to build a 
Language.ind file. When you install this file in your private 
dictionaries directory, or in the system wide one, 'Language' will 
appear in the spelling tool and you can check spelling in that 
Language. For the locations to install Language.ind files, see the 
section on configurable resources.

To use the examples, you will need
	The example source code.
	The ispell material is used in the example on how to make a 
	checker from an affix file and dictionaries. It can be found 
	on ftp.cs.ucla.edu.
	The French pelle material is used in the example on how to 
	make a checker from a flat list of words. The French spelling 
	material can be obtained from ftp://ftp.inria.fr.
For a list of ispell dictionaries that might be converted, and the 
original ispell material refer to the ispell site.
Acknowledgments
Apart from the French and the Dutch material, the spelling 
dictionaries are derived from ispell dictionaries. I only use the 
dictionary and the affix files. My checker is based on finite 
automata, rather than on on hashing. The author of the original ispell 
program and the source of the idea of affix files was Geoff Kuenning. 
ispell is available from GNU and from ftp.cs.ucla.edu 
(131.179.128.34). The US and British dictionaries stem from the ispell 
material. Geoff Kuenning was so kind to allow me to use the ispell 
dictionaries.
	The German ispell material is that of Bjrn Jacke. It is 
	available from http://www.suse.de/~bjacke/igerman98. It is an 
	adaptation of the material by Heinz Knutzen to the new German 
	orthography rules. The material of  Heinz Knutzen is available 
	as 
	ftp://ftp.informatik.uni-kiel.de/pub/kiel/dicts/hk-deutsch.tar.gz. 
	Heinz Knutzen was so kind to allow me to use his ispell 
	dictionary.
	The Spanish ispell material is that of Santiago Rodrguez and 
	Jess Carretero, Universidad Politecnica de Madrid. It is 
	available as ftp://ftp.fi.upm.es/pub/unix/espa~nol.tar.gz.
	The Portuguese ispell material is that of Ulisses Pinto & 
	Jos Joo Almeida, Universidade do Minho. It is available as 
	ftp://http://www.di.uminho.pt/~jj/pln/UMportugues.tgz. Jos 
	Joo Almeida was so kind to allow me to use his ispell 
	dictionary.
	The French material is that from Paul Zimmermann, Inria 
	Lorraine. It is available by ftp from ftp://ftp.inria.fr. Paul 
	Zimmermann was so kind to allow me to use his dictionary in 
	free copies of Ted.
	The Dutch spelling material was derived from that of Jan van 
	Bakel, Dick Grune and Patrick Groeneveld. I added a lot of 
	words and adapted the material to the new orthography rules. 
	The original material is available as 
	ftp://donau.et.tudelft/pub/words/groen.
	The Italian spelling material is based on the dictionary and 
	affix file by Marco Roveri available from the directory 
	ftp://ftp.mrg.dist.unige.it /pub/mrg-usr/marco/ispell.
	The Czech spelling material is based on the dictionary and 
	affix file by Petr Kolar available from the directory 
	ftp://ftp.vslib.cz/pub/unix/ispell.
	The Danish spelling material is based on the dictionary and 
	affix file by Gran Andersson and the Skne/Sjlland Linux 
	User Group available via 
	http://www.sslug.dk/ispell/idanish/danish.html.
	The Swedish spelling material is based on the dictionary and 
	affix file by Gran Andersson and the Skne/Sjlland Linux 
	User Group available via 
	http://www.sslug.dk/ispell/iswedish/swedish.html.
	The Norwegian spelling material is based on the dictionary 
	and affix file by Rune Kleveland available via 
	http://www.uio.no/~runekl/dictionary.html.
	The Polish spelling material is based on the dictionary and 
	affix file by Piotr Gackiewicz and others available from 
	ftp://ftp.ds14.agh.edu.pl/pub/ispell/.
	The Slovak spelling material is based on the dictionary and 
	affix file by Pavel Chalmoviansk available from 
	http://www.uniba.sk/~chalmo.
	Searching for regular expressions is done with an adapted 
	version of the regex library by Henry Spencer, University of 
	Toronto. Most of the adaptations were more about C programming 
	than about the functionality. I added routines for reverse 
	searching. (Find Previous). The original source is available 
	as ftp://ftp.cs.toronto.edu/pub/regex.shar.Z.
	The possibility to directly send mail from Ted is based on 
	code by my friend and colleague Rob Vonk.
	Jean Peyratout translated the resource file to French. The 
	first French translation was by Odile Bnassy of the TINY 
	Linux project.
	Peter Ivanyi translated the resource file to Slovak.
	Kenneth Bernholm translated the resource file to Danish.
	Kristof Petr not only translated the resource file to Czech 
	but also contributed a lot to the support of Latin 2 alphabets 
	in Ted.
	Eric Lecluse and Hans Harder translated the resource file to 
	Dutch.
	Axel Schwarzer translated the resource file to German.
	Peter Feher translated the resource file to Hungarian.

For some types of picture files, public source code was used.
	Support for TIFF pictures is implemented with Sam Leffler's 
	libtiff that is available from ftp.uu.net/graphics/tiff.
	Support for PNG pictures is implemented with the PNG groups 
	libpng. Source is available on ftp.uu.net in the directory 
	/graphics/png. libpng in its turn uses zlib by Jean-loup 
	Gailly and Mark Adler for the compression of the data. The 
	official zlib ftp site is 
	ftp://ftp.uu.net/pub/archiving/zip/zlib/.
	Support for JPEG pictures is implemented with the Independent 
	JPEG groups libjpeg. It is available from ftp.uu.net in the 
	directory graphics/jpeg.
	Support for XPM pictures uses libXpm by Arnaud Le Hors of 
	Groupe Bull. Source is available from ftp://ftp.x.org/contrib.
	Support for GIF pictures was borrowed from libgif by Gershon 
	Elber and Eric S. Raymond. For more information refer to the 
	giflib home page: 
	http://prtr-13.ucsc.edu/~badger/software/giflib.shtml.

The picture of a writing schoolboy on the application window is the 
lower right corner of a woodcut by Albrecht Drer dated 1510. It 
represents a schoolmaster teaching a class of children. Its motto is: 
Wer recht bescheyden wol werden, Der pit got trum bye auff erden.
Author
Mark de Does
http://www.mdedoes.com

April 15, 2001
More or more recent information on Ted might be available from the Ted 
web site http://www.nllgg.nl/Ted. The latest versions and the source 
code from ftp://ftp.nluug.nl/pub/editors/ted.
