Ted, an easy rich text processor -------------------------------- Introduction Features Ted for Linux: copyright and disclaimer How to invoke Ted How to install Ted Text and text attributes Pictures Including symbols and accented characters Copy/Paste Finding and Replacing Text Spell checking Hyperlinks and bookmarks Paragraphs and the ruler Tables Sections Footnotes and Endnotes Page Headers, Page Footers and Page Numbers Page Size and Page Margins Printing from Ted, writing Acrobat PDF Saving documents to HTML and to plain text Sending mail from Ted How to use Ted as a mime handler or a Netscape helper application Configuring Ted Adding fonts to a Ted installation Uploading fonts to a PostScript printer Nuisances with Window Managers Shell widget names Remarks about X11 server configuration, accented characters and backspace Compiling Ted from source Making spelling dictionaries for Ted Acknowledgments Author 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. Since then, Ted has evolved to a real word processor that still has the same easy appearance as the original. The possibility to type a letter, a note or a 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 make it possible to edit rich text documents on Unix/Linux in a wysiwyg way. RTF files from Ted are fully compatible with MS-Word. Additionally, Ted also is an RTF to PostScript and an RTF to Acrobat PDF converter. Compatibility with popular MS-Windows applications played an important role in the design of Ted. Every document produced by Ted fully compatible with MS-Word without any loss of formatting or information. 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.[1] 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. Features ˇ Wysiwyg rich text editing. You can use all fonts for which you have an .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 hyperlinks and footnotes. ˇ 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 page headers and page 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. ˇ Footnotes and endnotes. ˇ 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.11. 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 invoke Ted Ted is an X11 program. To start it just invoke Ted & or /usr/local/bin/Ted &. To start Ted with a certain file invoke Ted something.rtf &. Several special purpose calls of Ted are documented below. 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. 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 .rpm . To upgrade from a previous version of Ted give the command rpm -U .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/Ted/TedDocument-en_US.rtf. The example application resource file Ted.ad.sample is installed in /usr/local/Ted. 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.11-1.i386.rpm Ted_2.11_Linux_ix86.tar.gz, Ted_2.11_Linux_ix86.lsm Install script for Tar archives and LSM files installTed.sh Dutch spelling and messages ted_nl_NL: ted_nl_NL-2.11-1.noarch.rpm Ted_NL_nl.tar.gz, Ted_NL.lsm British spelling ted_en_GB: ted_en_GB-2.11-1.noarch.rpm Ted_en_GB.tar.gz, Ted_en_GB.lsm German spelling and messages. ted_de_DE: ted_de_DE-2.11-1.noarch.rpm Ted_de_DE.tar.gz, Ted_de_DE.lsm Spanish spelling ted_es_ES: ted_es_ES-2.11-1.noarch.rpm Ted_es_ES.tar.gz, Ted_es_ES.lsm Portuguese spelling ted_pt_PT: ted_pt_PT-2.11-1.noarch.rpm Ted_pt_PT.tar.gz, Ted_pt_PT.lsm French spelling and messages. ted_fr_FR: ted_fr_FR-2.11-1.noarch.rpm Ted_fr_FR.tar.gz, Ted_fr_FR.lsm Italian spelling ted_it_IT: ted_it_IT-2.11-1.noarch.rpm Ted_it_IT.tar.gz, Ted_it_IT.lsm Czech spelling and messages ted_cs_CZ: ted_cs_CZ-2.11-1.noarch.rpm Ted_cs_CZ.tar.gz, Ted_cs_CZ.lsm Danish spelling and messages ted_da_DK: ted_da_DK-2.11-1.noarch.rpm Ted_da_DK.tar.gz, Ted_da_DK.lsm Swedish spelling ted_sv_SE: ted_sv_SE-2.11-1.noarch.rpm Ted_sv_SE.tar.gz, Ted_sv_SE.lsm Norwegian spelling ted_no_NO: ted_no_NO-2.11-1.noarch.rpm Ted_no_NO.tar.gz, Ted_no_NO.lsm Polish spelling ted_pl_PL: ted_pl_PL-2.11-1.noarch.rpm Ted_pl_PL.tar.gz, Ted_pl_PL.lsm Slovak spelling and messages ted_sk_SK: ted_sk_SK-2.11-1.noarch.rpm Ted_sk_SK.tar.gz, Ted_sk_SK.lsm Hungarian messages ted_hu_HU: ted_hu_HU-2.11-1.noarch.rpm Ted_hu_HU.tar.gz, Ted_hu_HU.lsm Source[2] ted: ted-2.11-1.src.rpm ted-2.11.src.tar.gz Spelling dictionary examples.[3] 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. 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 italic 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/editors/ted/README.html . A french translation of Ted by Jean Peyratout can be found on the page http://www.abul.org/education/ted.php3. 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. The same applies for mouse clicks with the shift key down: The selection is extended to the position of the click. In general, navigation commands with the shift key down extend the selection. 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 reencodes fonts in the Adobe standard encoding to ISO latin 1 encoding. In general, Ted tries to find supported character sets in the afm file of a font and to use the font in a standard encoding. Fonts that do not have all characters of any of the character sets supported by Ted are ignored. 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 key allows you to insert accented characters by typing or . Where is an ascii character that resembles the intended accent. E.G. a ' results in á. Another example: 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[4]. 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.[5] 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. 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 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 select the 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 [6] 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 can be 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 binary 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 .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. 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, the link is to a bookmark in the document itself you can select a bookmark from the list of bookmarks below the 'Bookmark' box. Normally, the text you have selected is converted to a hyperlink. 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." The advantage is that when the text of the bookmark changes, the text of the link is changed as well. ˇ 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 that determine what kind of hyperlink will be inserted when the copied bookmark is pasted. ˇ 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 or Acrobat PDF format 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. Usually a paragraph just begins on a new line. With the Start on New Page switch on the format tool, paragraphs can be made to start on a new page. 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 a 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 those of the table cell that contains the paragraph. 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 is no tab stop to the right of a certain position, 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. Inserts a decimal tab stop. The text after the tab stop is centered around the tab stop. After formatting the tab stop is at the position of the decimal point in the text (If there is one). 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. Use the menu option to remember the ruler of the paragraph where the selection begins. 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 plain 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. Use the Tabs page on the Format Tool to manage tab settings in more detail than with the ruler. 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.11 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. Document properties and tab settings on the Tabs page of the Format Tool. Default Tab Stops When the ruler contains no tab stops, or right of the rightmost tab stop, Ted uses default left aligned tab stops at a regular interval. With the Default Tab Stops frame you can set this interval for the whole document. Tab Stop With the controls in the Tab Stop frame and the list of tab stops above it, you can manage the tabs on the ruler of the current paragraph in detail. Select a tab stop in the list to change its properties, or enter a new position to add a new tab stop. Position The position from the left margin of the document for the tab stop. The default unit for the position is the typographic point. It is however possible to enter values like '13mm' or '1/2"'. Ted will convert them to points for you. Alignment The alignment of the text to the tab stop. The following values are supported: Left The text following the tab stop, upto the end of the paragraph, or upto the next tab stop will be placed at the right of the tab stop position. So the left of texts placed after the tab stop on different text lines aligns. Right The text following the tab stop, upto the end of the paragraph, or upto the next tab stop will be placed at the left of the tab stop position. So the right of texts placed after the tab stop on different text lines aligns. Center The center of the text following the tab stop, upto the end of the paragraph, or upto the next tab stop will be placed at the the tab stop position. So the centers of texts placed after the tab stop on different text lines align. Decimal The decimal point of the text following the tab stop, upto the end of the paragraph, or upto the next tab stop will be placed at the the tab stop position. So the decimal points of texts placed after the tab stop on different text lines align. Leader To place text at a tab position, Ted inserts white space between the text before the tab stop and the text after it. In some cases it is desirable to insert something different. E.G. in a table of contents. Ted supports the following possibilities: None Insert white space. Dots Draw dots between the text before the tab stop and that after it. Line Draw a solid line between the text before the tab stop and that after it. Dashes Draw dashes between the text before the tab stop and that after it. 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 visible. Ted visualizes the structure of tables with light gray borders for the cells. If you find this annoying, use the 'Draw Table Grid' menu option to hide them. To add borders to the rows and columns of a table, use the Row and Column pages of the format tool. When the selection is inside a table, the document window gets a special ruler. It 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, 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 it does not fit as a whole on a page, it is moved to the next page in order not to be divided over more than one 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 many different styles. Ted only supports solid black borders. The controls on the Row and Column pages of the Format Tool 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. 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.11 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.11. 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.11. 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.11. Footnotes and Endnotes To insert a footnote or endnote use the Insert Footnote option in the Insert menu. Normally footnotes are placed at the bottom of the page, and each note has a different number. To get different kinds of notes, or to change the way notes are handled in the document use the Notes page of the Format Tool. The Notes tool has three frames. The top frame manages the properties of the current footnote or endnote. Footnote Make the current note a footnote. Endnote Make the current note an endnote. Find Note From inside the note, jump to the reference in the text. Edit Note From the reference to the note, jump to the text of the note. Revert Display the properties of the note again. Apply to Note Change the note from a footnote to an endnote or the other way round. The Footnotes and Endnotes frames manage the properties of all footnotes and endnotes in the document. Position The position of the notes in the document. Page Bottom Place footnotes at the bottom of the page. Below Text Place footnotes immediately below the text of the page that refers to them. End of Section Place endnotes at the end of the section that refers to them. End of Document Place endnotes at the end of the document. Numbering Continuous All footnotes or endnotes respectively have a unique number in the document. Per section All footnotes or endnotes respectively have a unique number in the section that refers to them. The numbers restart for every section. Per Page The numbers of the footnotes restart on every page. Number Format Select a format for the number of the footnotes or endnotes. First Number With continuous numbering this is the number of the first footnote or endnote. Revert Display the settings in the document relating to notes again. Apply to Document Change the settings in the document relating to notes. Page Headers, Page 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, use the 'Edit Header' or 'Edit Footer' buttons on the 'Headers and Footers' page of the format tool. What headers and footers are used for a section is depends on two things: 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 use all relevant kinds of headers and footers, 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 use. This means that you might have to temporarily insert a page break in the text to make a particular header or footer accessible. 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 Page Margins The page size and the margins of a fresh document are determined by some 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 in the order given. The first command that returns any printers determines the list of available printers and the print command that is used. (lp or lpr.) ˇ lpc status ˇ /usr/sbin/lpc status ˇ enq -As (An AIX command) ˇ lpstat -a 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 Acrobat 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. The two switches in the Placement frame can be practical when you want to print on small sheets of paper or on postcards. The first one tells Ted to rotate the pages on the paper, such that it can enter the printer with the short side first. The second one can be used with printers that center small sheets in the paper tray. The arrows near the page diagram on the print dialog show the orientation of the print out as the paper passes through the printer. 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. To print from the command line use the call Ted ++print something.rtf. To print on a particular printer call Ted ++printToPrinter something.rtf lp. To tell Ted to assume a particular paper format in the printer use the calls Ted ++printPaper something.rtf a4 or Ted ++printToPrinterPaper something.rtf lp legal. 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. The X11 environment is only used to resolve configurable resources for these calls but it is still needed. This is a known deficiency of Ted. Alternative calls starting with -- in stead of ++ exist. They do not use the X11 environment and can only be used with the default settings that are compiled into 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 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 . Bookmarks to . Both footnotes and endnotes are converted to endnotes at the end of the document. Ted converts the note numbers to hyperlinks and bookmarks referring to each other. The command Ted ++saveTo this.rtf that.html converts an rtf format document to HTML as a command line call. The X11 environment is only used to resolve configurable resources for this call but it is still needed. This is a known deficiency of Ted. An alternative call starting with -- in stead of ++ exists. It does not use the X11 environment and can only be used with the default settings that are compiled into 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 each paragraph as one line of plain text. This is not very practical with plain text editors or when the text is to be printed, on the other hand, the paragraph structure of the original document is retained. The conversion call Ted ++saveTo this.rtf that.txt converts to the folded plain text format. 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[7] . 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 or the possibility to read mail 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) 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[8]. Refer to the file /usr/local/Ted/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. Note that the default values for file locations mentioned below relate to the Ted distribution packages. When Ted is part of a Linux distribution, the file system hierarchy standards apply, and system independent files should be installed in /usr/share/Ted in stead of /usr/local. 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: ,,,,. 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 x where and are valid dimensions. Valid dimensions are strings of the form . Values for units are given above. If 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 '. 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'. mailPort: The TCP/IP port number that is used to reach the mail server. The value of mailPort defaults to "smtp" which in its turn maps to the default value 25. Only in very rare cases it is desirable to override these defaults. 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/Ted/TedDocument-en_US.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. ghostscriptFontmap: The name of the file in which GhostScript keeps its fontmap. It is used to derive the X11 font name from the PostScript one when all other ways fail. ghostscriptFontToXmapping: The name of the Type1 to X11 font map in the GhostScript font directory. It is used to derive the X11 font name from the PostScript one when all other ways fail. 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. Nuisances with Window Managers Ted was originally developed as a Motif application. Most of the testing has been done with the Motif Window Manager mwm and with Gnome and KDE. When you use an experimental or a primitive 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 primitive window managers, it might be necessary to set Geometry resources for Shell widgets to avoid the interactive placement of the different Ted windows. Shell names are given below. Windows and tools: To avoid offensive behavior of primitive window managers, it might be necessary to set Geometry resources for them. Application window Ted Document window tedDocument Find Tool tedFindTool Spell Tool tedSpellTool Font Tool tedFontTool Insert Symbol Tool tedSymbolPicker Format Tool tedFormatTool Modal Dialogs: Even with primitive window managers, no Geometry resources should be necessary. 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. 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' The vertical scrollbar of a document window can be controlled with the mouse wheel as it can be configured in XFree86. Include the line ZAxisMapping 4 5 in the pointer section of a version 3.x XF86Config file, or the line Option "ZAxisMapping" "4 5" in the InputDevice section of a 4.x XF86Config file. Both have been tested with IMPS/2 protocol mice. 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.11 can be compiled with the GTK+ 1.2.8 toolkit or a later version. The GTK version is not complete and should be seen as step in the right direction. Not as a finished piece of software. Jouk Jansen made fixes to the Ted source to compile on Compaq OpenVMS. Additional files, including an explanatory notice by Jouk can be found in the vms_files.tar archive that is part of the source. 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. Unpacking the source archive results in a Ted- 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- 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- 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_.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 Björn 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 Rodríguez and Jesús 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é Joăo Almeida, Universidade do Minho. It is available as ftp://http://www.di.uminho.pt/~jj/pln/UMportugues.tgz. José Joăo 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 Göran Andersson and the Skĺne/Sjćlland 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 Göran Andersson and the Skĺne/Sjćlland 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 Bénassy 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. ˇ Jouk Jansen Ported Ted to OpenVMS and contributed the fixes he had to make. ˇ Jeffrey Boser patiently tested many Ted versions and reported many bugs. 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 Dürer 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 March 1, 2002 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. P.S. Please do not use my mail address when you refer to me or to Ted. I already receive enough unsollicited email. You can either refer to the web page or use an image. ----- [1] Some of the ignored information is not saved either when you modify and then save an RTF document with Ted. [2] Please read the compilation instructions at the end of this document before you start compiling Ted. They are short and easy. [3] Please refer to the explanation at the end of this document. [4] Theoretically other applications might support it: selection=PRIMARY, target=RTF; the contents of the window property that is exchanged is a complete rtf document. [5] Theoretically other applications might support it: selection=PRIMARY, target=PNG; the contents of the window property that is exchanged is a complete png picture. [6] This is the default location. To use a different location, refer to the Ted.spellToolSystemDicts resource. [7] The mail is addressed to the To recipient and evidently she gets it. Cc (Carbon Copy) recipients will get the mail, and they will be mentioned in the headers of the mail message. I.E. all the recipients can see that the mail was sent to the Cc recipients. Bcc (Blank Carbon Copy) recipients will also get the mail, but they will not be mentioned in the headers of the mail message so others cannot see that the message was sent to the Bcc recipients. [8] Exceptions are made for the Shell widgets. With primitive window managers, it might be necessary to set Geometry resources for them. The names of the Shell widgets are given below.