%sccs.include.proprietary.roff%

@(#)tt07 8.1 (Berkeley) 06/08/93

Strings

Obviously if a paper contains a large number of occurrences of an acute accent over a letter `e', typing \eo"e\e\'" for each \*e would be a great nuisance.

Fortunately, troff provides a way in which you can store an arbitrary collection of text in a `string', and thereafter use the string name as a shorthand for its contents. Strings are one of several troff mechanisms whose judicious use lets you type a document with less effort and organize it so that extensive format changes can be made with few editing changes.

A reference to a string is replaced by whatever text the string was defined as. Strings are defined with the command .ds . The line

1 ^ds e \eo"e\e'"

2 defines the string e to have the value \eo"e\e\'"

String names may be either one or two characters long, and are referred to by \e*x for one character names or \e*(xy for two character names. Thus to get t\*el\*ephone, given the definition of the string e as above, we can say t\e*el\e*ephone.

If a string must begin with blanks, define it as

1 .ds xx " text

2 The double quote signals the beginning of the definition. There is no trailing quote; the end of the line terminates the string.

A string may actually be several lines long; if troff encounters a \e at the end of .ul any line, it is thrown away and the next line added to the current one. So you can make a long string simply by ending each line but the last with a backslash:

1 ^ds xx this \e is a very \e long string

2

Strings may be defined in terms of other strings, or even in terms of themselves; we will discuss some of these possibilities later.