]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - share/doc/usd/21.troff/m3
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / share / doc / usd / 21.troff / m3
1 .\" Copyright (C) Caldera International Inc. 2001-2002.  All rights reserved.
2 .\" 
3 .\" Redistribution and use in source and binary forms, with or without
4 .\" modification, are permitted provided that the following conditions are
5 .\" met:
6 .\" 
7 .\" Redistributions of source code and documentation must retain the above
8 .\" copyright notice, this list of conditions and the following
9 .\" disclaimer.
10 .\" 
11 .\" Redistributions in binary form must reproduce the above copyright
12 .\" notice, this list of conditions and the following disclaimer in the
13 .\" documentation and/or other materials provided with the distribution.
14 .\" 
15 .\" All advertising materials mentioning features or use of this software
16 .\" must display the following acknowledgement:
17 .\" 
18 .\" This product includes software developed or owned by Caldera
19 .\" International, Inc.  Neither the name of Caldera International, Inc.
20 .\" nor the names of other contributors may be used to endorse or promote
21 .\" products derived from this software without specific prior written
22 .\" permission.
23 .\" 
24 .\" USE OF THE SOFTWARE PROVIDED FOR UNDER THIS LICENSE BY CALDERA
25 .\" INTERNATIONAL, INC.  AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR
26 .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
27 .\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
28 .\" DISCLAIMED.  IN NO EVENT SHALL CALDERA INTERNATIONAL, INC. BE LIABLE
29 .\" FOR ANY DIRECT, INDIRECT INCIDENTAL, SPECIAL, EXEMPLARY, OR
30 .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31 .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
32 .\" BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
33 .\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
34 .\" OR OTHERWISE) RISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
35 .\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36 .\" 
37 .\"     @(#)m3  8.1 (Berkeley) 8/14/93
38 .\"
39 .\" $FreeBSD$
40 .tr |
41 .rm mx
42 .mh
43 Tabs, Leaders, and Fields
44 .sc
45 Tabs and leaders.
46 The \s-1ASCII\s+1 horizontal tab character and the \s-1ASCII\s+1
47 \s-1SOH\s+1 (hereafter known as the \fIleader\fR character)
48 can both be used to generate either horizontal motion or
49 a string of repeated characters.
50 The length of the generated entity is governed
51 by internal \fItab stops\fR specifiable
52 with \fBta\fR.
53 The default difference is that tabs generate motion and leaders generate
54 a string of periods;
55 \fBtc\fR and \fBlc\fR
56 offer the choice of repeated character or motion.
57 There are three types of internal tab stops\(em\
58 \fIleft\fR adjusting, \fIright\fR adjusting,
59 and \fIcentering\fR.
60 In the following table:
61 \fID\fR is the distance from the current position on the \fIinput\fR line
62 (where a tab or leader was found)
63 to the next tab stop;
64 \fInext-string\fR consists
65 of the input characters following the tab (or leader) up to the next tab (or leader) or end of line;
66 and
67 \fIW\fR is the width of \fInext-string\fR.
68 .TS
69 center box;
70 c2|c2|c
71 c2|c2|c
72 c2|c2|l.
73 Tab     Length of motion or     Location of
74 type    repeated characters     \fInext-string\fR
75 _
76 Left    \fID\fR Following \fID\fR
77 Right   \fID\-W\fR      Right adjusted within \fID\fR
78 Centered        \fID\-W\(sl\fR2 Centered on right end of \fID\fR
79 .TE
80 The length of generated motion is allowed to be negative, but
81 that of a repeated character string cannot be.
82 Repeated character strings contain an integer number of characters, and
83 any residual distance is prepended as motion.
84 Tabs or leaders found after the last tab stop are ignored, but may be used
85 as \fInext-string\fR terminators.
86 .pg
87 Tabs and leaders are not interpreted in \fIcopy mode\fR.
88 \fB\et\fR and \fB\ea\fR always generate a non-interpreted
89 tab and leader respectively, and
90 are equivalent to actual tabs and leaders in \fIcopy mode\fR.
91 .sc
92 Fields.
93 A \fIfield\fR is contained between
94 a \fIpair\fR of \fIfield delimiter\fR characters,
95 and consists of sub-strings
96 separated by \fIpadding\fR indicator characters.
97 The field length is the distance on the
98 \fIinput\fR line from the position where the field begins to the next tab stop.
99 The difference between the total length of all the sub-strings
100 and the field length is incorporated as horizontal
101 padding space that is divided among the indicated
102 padding places.
103 The incorporated padding is allowed to be negative.
104 For example,
105 if the field delimiter is \fB#\fR and the padding indicator is \fB^\fR,
106 \fB#^\fIxxx\fB^\fIright\|\fB#\fR
107 specifies a right-adjusted string with the string \fIxxx\fR centered
108 in the remaining space.
109 .h1
110 .bt
111 \fB&ta\fI|Nt|...\fR     8n;|0.5in       none    E,\fBm\fR       \
112 Set tab stops and types.
113 \fIt=\fBR\fR, right adjusting;
114 \fIt=\fBC\fR, centering;
115 \fIt\fR absent, left adjusting.
116 \*(TR tab stops are preset every 0.5in.;
117 \*(NR every 8 character widths.
118 The stop values are separated by spaces, and
119 a value preceded by \fB+\fR
120 is treated as an increment to the previous stop value.
121 .bt
122 \fB&tc\fI|c\fR  none    none    E       \
123 The tab repetition character becomes \fIc\fR,
124 or is removed specifying motion.
125 .bt
126 \fB&lc\fI|c\fR  \fB.\fR none    E       \
127 The leader repetition character becomes \fIc\fR,
128 or is removed specifying motion.
129 .bt
130 \fB&fc\fI|a|b\fR        off     off     -       \
131 The field delimiter is set to \fIa\fR;
132 the padding indicator is set to the \fIspace\fR character or to
133 \fIb\fR, if given.
134 In the absence of arguments the field mechanism is turned off.
135 .mh
136 Input and Output Conventions and Character Translations
137 .sc
138 Input character translations.
139 Ways of inputting the graphic character set were
140 discussed in \(sc2.1.
141 The \s-1ASCII\s+1 control characters horizontal tab (\(sc9.1),
142 \s-1SOH\s+1 (\(sc9.1), and backspace (\(sc10.3) are discussed elsewhere.
143 The newline delimits input lines.
144 In addition,
145 \s-1STX\s+1, \s-1ETX\s+1, \s-1ENQ\s+1, \s-1ACK\s+1, and \s-1BEL\s+1
146 are accepted,
147 and may be used as delimiters or translated into a graphic with \fBtr\fR (\(sc10.5).
148 \fIAll\fR others are ignored.
149 .pg
150 The \fIescape\fR character \fB\e\fR
151 introduces \fIescape sequences\fR\(em\
152 causes the following character to mean
153 another character, or to indicate
154 some function.
155 A complete list of such sequences is given in the Summary and Index on page 6.
156 \fB\e\fR
157 should not be confused with the \s-1ASCII\s+1 control character \s-1ESC\s+1 of the
158 same name.
159 The escape character \fB\e\fR can be input with the sequence \fB\e\e\fR.
160 The escape character can be changed with \fBec\fR,
161 and all that has been said about the default \fB\e\fR becomes true
162 for the new escape character.
163 \fB\ee\fR can be used to print whatever the current escape character is.
164 If necessary or convenient, the escape mechanism may be turned off with \fBeo\fR,
165 and restored with \fBec\fR.
166 .h1
167 .bt
168 \fB&ec\fI|c\fR  \fB\e\fR        \fB\e\fR        -       \
169 Set escape character to \fB\e\fR, or to \fIc\fR, if given.
170 .bt
171 \fB&eo\fR       on      -       -       Turn escape mechanism off.
172 .sc
173 Ligatures.
174 .lg 0
175 Five ligatures are available
176 in the current \*(TR character set \(em
177 \fB\(fi\fR, \fB\(fl\fR, \fB\(ff\fR, \fB\(Fi\fR, and \fB\(Fl\fR.
178 They may be input (even in \*(NR) by
179 \fB\e(fi\fR, \fB\e(fl\fR, \fB\e(ff\fR, \fB\e(Fi\fR, and \fB\e(Fl\fR respectively.
180 .lg
181 The ligature mode is normally on in \*(TR, and \fIautomatically\fR invokes 
182 ligatures during input.
183 .h1
184 .bt
185 \fB&lg\fI|N\fR  off;|on on      -       Ligature mode
186 is turned on if \fIN\fR is absent or non-zero,
187 and turned off if \fIN\(eq\^\fR0.
188 If \fIN\fR\(eq\^2, only the two-character ligatures are automatically invoked.
189 Ligature mode is inhibited for
190 request, macro, string, register, or file names,
191 and in \fIcopy mode\fR.
192 No effect in \*(NR.
193 .sc
194 Backspacing, underlining, overstriking, etc.
195 Unless in \fIcopy mode\fR, the \s-1ASCII\s+1 backspace character is replaced
196 by a backward horizontal motion having the width of the
197 space character.
198 Underlining as a form of line-drawing is discussed in \(sc12.4.
199 A generalized overstriking function is described in \(sc12.1.
200 .pg
201 \*(NR automatically underlines
202 characters in the \fIunderline\fR font,
203 specifiable with \fBuf\fR,
204 normally Times Italic on font position 2 (see \(sc2.2).
205 In addition to \fBft\fR and \fB\ef\fIF\fR,
206 the underline font may be selected by \fBul\fR and \fBcu\fR.
207 Underlining is restricted to an output-device-dependent
208 subset of \fIreasonable\fR characters.
209 .h1
210 .bt
211 \fB&ul\fI|N\fR  off     \fIN\(eq\fR1    E       \
212 Underline in \*(NR (italicize in \*(TR) the next \fIN\fR
213 input text lines.
214 Actually, switch to \fIunderline\fR font, saving the
215 current font for later restoration;
216 \fIother\fR font changes within the span of a \fBul\fR
217 will take effect,
218 but the restoration will undo the last change.
219 Output generated by \fBtl\fR (\(sc14) \fIis\fR affected by the
220 font change, but does \fInot\fR decrement \fIN\fR.
221 If \fIN\fR\^>\^1, there is the risk that
222 a trap interpolated macro may provide text
223 lines within the span;
224 environment switching can prevent this.
225 .bt
226 \fB&cu\fI|N\fR  off     \fIN\(eq\fR1    E       \
227 A variant of \fBul\fR that causes \fIevery\fR character to be underlined in \*(NR.
228 Identical to \fBul\fR in \*(TR.
229 .bt
230 \fB&uf\fI|F\fR  Italic  Italic  -       \
231 Underline font set to \fIF\fR.
232 In \*(NR,
233 \fIF\fR may \fInot\fR be on position 1 (initially Times Roman).
234 .sc
235 Control characters.
236 Both the control character \fB.\fR and the \fIno-break\fR
237 control character \fB\'\fR may be changed, if desired.
238 Such a change must be compatible with the design
239 of any macros used in the span of the change,
240 and
241 particularly of any trap-invoked macros.
242 .h1
243 .bt
244 \fB&cc\fI|c\fR  \fB.\fR \fB.\fR E       \
245 The basic control character is set to \fIc\fR,
246 or reset to "\fB.\fR".
247 .bt
248 \fB&c2\fI|c\fR  \fB\'   \'\fR   E       The \fInobreak\fR control character is set
249 to \fIc\fR, or reset to "\fB\'\fR".
250 .sc
251 Output translation.
252 One character can be made a stand-in for another character using \fBtr\fR.
253 All text processing (e. g. character comparisons) takes place
254 with the input (stand-in) character which appears to have the width of the final
255 character.
256 The graphic translation occurs at the moment of output
257 (including diversion).
258 .h1
259 .bt
260 \fB&tr\fI|abcd....\fR   none    -       O       Translate \
261 \fIa\fR into \fIb\fR, \fIc\fR into \fId\fR, etc.
262 If an odd number of characters is given,
263 the last one will be mapped into the space character.
264 To be consistent, a particular translation
265 must stay in effect from \fIinput\fR to \fIoutput\fR time.
266 .sc
267 Transparent throughput.
268 An input line beginning with a \fB\e!\fR is read in \fIcopy mode\fR and \fItransparently\fR output
269 (without the initial \fB\e!\fR);
270 the text processor is otherwise unaware of the line's presence.
271 This mechanism may be used to pass control information to a post-processor
272 or to imbed control lines in a macro created by a diversion.
273 .sc
274 Comments and concealed newlines.
275 An uncomfortably long input line that must stay
276 one line (e. g. a string definition, or nofilled text)
277 can be split into many physical lines by ending all but
278 the last one with the escape \fB\e\fR.
279 The sequence \fB\e\fR(newline) is \fIalways\fR ignored\(em\
280 except in a comment.
281 Comments may be imbedded at the \fIend\fR of any line by
282 prefacing them with \fB\e"\fR.
283 The newline at the end of a comment cannot be concealed.
284 A line beginning with \fB\e"\fR will appear as a blank line and
285 behave like \fB.sp|1\fR;
286 a comment can be on a line by itself by beginning the line with \fB.\e"\fR.
287 .mh
288 Local Horizontal and Vertical Motions, and the Width Function
289 .sc
290 Local Motions.
291 The functions \fB\ev\'\fIN\fB\|\'\fR and
292 \fB\eh\'\fIN\fB\|\'\fR
293 can be used for \fIlocal\fR vertical and horizontal motion respectively.
294 The distance \fIN\fR may be negative; the \fIpositive\fR directions
295 are \fIrightward\fR and \fIdownward\fR.
296 A \fIlocal\fR motion is one contained \fIwithin\fR a line.
297 To avoid unexpected vertical dislocations, it is necessary that
298 the \fInet\fR vertical local motion within a word in filled text
299 and otherwise within a line balance to zero.
300 The above and certain other escape sequences providing local motion are
301 summarized in the following table.
302 .tr ||
303 .ds X \0\0\0
304 .TS
305 center box;
306 c2|cs2||c2|cs
307 c1|c2c2||c2|c2c.
308 Vertical        Effect in       Horizontal      Effect in
309 Local Motion    \*(TR   \*(NR   Local Motion    \*(TR   \*(NR
310 _
311 .sp .4
312 .T&
313 l2|ls2||l2|ls.
314 \fB\*X\ev\'\fIN\|\^\fB\'\fR     Move distance \fIN\fR   \
315 \fB\*X\eh\'\fIN\|\^\fB\'\fR     Move distance \fIN\fR
316 .T&
317 _2|_2_2||l2|ls.
318                         \fB\*X\e\fR(space)      Unpaddable space-size space
319 .T&
320 l2|l2|l2||l2|ls.
321 \fB\*X\eu\fR    \(12 em up      \(12 line up    \fB\*X\e0\fR    Digit-size space
322 .T&
323 l2|l2|l2||_2|_2_.
324 \fB\*X\ed\fR    \(12 em down    \(12 line down                  
325 .T&
326 l2|l2|l2||l2|l2|l.
327 \fB\*X\er\fR    1 em up 1 line up       \fB\*X\e\||\fR  1\(sl6 em space ignored
328                         \fB\*X\e^\fR    1\(sl12 em space        ignored
329 .sp .4
330 .TE
331 .rm X
332 .tr |
333 As an example,
334 \fBE\s-2\v'-.4m'2\v'.4m'\s+2\fR
335 could be generated by the sequence
336 \fBE\es\-2\ev\'\-0.4m\'2\ev\'0.4m\'\es+2\fR;
337 it should be noted in this example that
338 the 0.4|em vertical motions are at the smaller size.
339 .sc
340 Width Function.
341 The \fIwidth\fR function \fB\ew\'\fIstring\fB\|\'\fR
342 generates the numerical width of \fIstring\fR (in basic units).
343 Size and font changes may be safely imbedded in \fIstring\fR,
344 and will not affect the current environment.
345 For example,
346 \&\fB.ti|\-\\w\'1.|\'u\fR could be used to
347 temporarily indent leftward a distance equal to the
348 size of the string "\fB1.|\fR".
349 .pg
350 The width function also sets three number registers.
351 The registers \fBst\fR and \fBsb\fR are set respectively to the highest and
352 lowest extent of \fIstring\fR relative to the baseline;
353 then, for example,
354 the total \fIheight\fR of the string is \fB\en(stu\-\en(sbu\fR.
355 In \*(TR the number register \fBct\fR is set to a value
356 between 0|and|3:
357 0 means that all of the characters in \fIstring\fR were short lower
358 case characters without descenders (like \fBe\fR);
359 1 means that at least one character has a descender (like \fBy\fR);
360 2 means that at least one character is tall (like \fBH\fR);
361 and 3 means that both tall characters and characters with
362 descenders are present.
363 .sc
364 Mark horizontal place.
365 The escape sequence \fB\ek\fIx\fR will cause the \fIcurrent\fR horizontal
366 position in the \fIinput line\fR to be stored in register \fIx\fR.
367 As an example,
368 the construction \fB\ekx\fIword\|\fB\eh\'\|~\|\enxu+2u\'\fIword\fB\fR
369 will embolden \fIword\fR by backing up to almost its beginning and overprinting it,
370 resulting in \kz\fIword\fR\h'|\nzu+2u'\fIword\fR.
371 .mh
372 Overstrike, Bracket, Line-drawing, and Zero-width Functions
373 .sc
374 Overstriking.
375 Automatically centered overstriking of up to nine characters
376 is provided by the \fIoverstrike\fR function
377 \fB\eo\'\fIstring\fB\|\'\fR.
378 The characters in \fIstring\fR are overprinted with centers aligned; the total width
379 is that of the widest character.
380 \fIstring\fR should \fInot\fR contain local vertical motion.
381 As examples,
382 \fB\eo\'e\e\'\'\fR produces \fB\o'e\''\fR, and
383 \fB\eo\'\e(mo\e(sl\'\fR produces \fB\o'\(mo\(sl'\fR.
384 .sc
385 Zero-width characters.
386 The function \fB\ez\fIc\fR will output \fIc\fR without spacing over
387 it, and can be used to produce left-aligned overstruck
388 combinations.
389 As examples,
390 \fB\ez\e(ci\e(pl\fR will produce \fB\z\(ci\(pl\fR, and
391 \fB\e(br\ez\e(rn\e(ul\e(br\fR will produce the smallest possible
392 constructed box \fB\(br\z\(rn\(ul\(br\fR\|.
393 .sc
394 Large Brackets.
395 The Special Mathematical Font contains a number of bracket construction pieces
396 (\|\|\|\(lt\|\|\|\(lb\|\|\|\(rt\|\|\|\(rb\|\|\|\(lk\|\|\|\(rk\|\|\|\(bv\|\|\|\(lf\|\|\|\(rf\|\|\|\(lc\|\|\|\(rc\|\|)
397 that can be combined into various bracket styles.
398 The function \fB\eb\'\fIstring\fB\|\'\fR may be used to pile
399 up vertically the characters in \fIstring\fR
400 (the first character on top and the last at the bottom);
401 the characters are vertically separated by 1|em and the total
402 pile is centered 1\(sl2\|em above the current baseline
403 (\(12 line in \*(NR).
404 For example,
405 \fB\eb\'\|\e(lc\e(lf\|\'E\e\|~\|\eb\'\|\e(rc\e(rf\|\'\|\ex\'\|\-0.5m\'\|\ex\'0.5m\'\|\fR
406 produces
407 \x'-.5m'\x'.5m'\fB\b'\(lc\(lf'E\|\b'\(rc\(rf'\fR.
408 .sc
409 Line drawing.
410 .tr &&
411 The function \fB\e\|l\|\'\fINc\fB\|\'\fR will draw a string of repeated \fIc\fR\|'s towards the right for a distance \fIN\fR.
412 (\|\fB\el\fR is \fB\e\fR(lower case L).
413 If \fIc\fR looks like a continuation of
414 an expression for \fIN\fR, it may insulated from \fIN\fR with a \fB\e&\fR.
415 If \fIc\fR is not specified, the \fB\(ru\fR (baseline rule) is used
416 (underline character in \*(NR).
417 If \fIN\fR is negative, a backward horizontal motion
418 of size \fIN\fR is made \fIbefore\fR drawing the string.
419 Any space resulting from \fIN\fR\|\(sl(size of \fIc\fR) having a remainder is put at the beginning (left end)
420 of the string.
421 In the case of characters
422 that are designed to be connected such as
423 baseline-rule\ \fB\(ru\fR\|,
424 underrule\ \fB\(ul\fR\|,
425 and
426 root-en\ \fB\(rn\fR\|,
427 the remainder space is covered by over-lapping.
428 If \fIN\fR is \fIless\fR than the width of \fIc\fR,
429 a single \fIc\fR is centered on a distance \fIN\fR.
430 As an example, a macro to underscore a string can be written
431 .br
432 .tr &.
433 .x1
434 .ft B
435 .ne 2.1
436 &de us
437 \e\e$1\e\|l\|\'\|~\|0\e(ul\'
438 &&
439 .ft R
440 .x2
441 .ne 2.1
442 .de xu
443 \\$1\l'|0\(ul'
444 ..
445 or one to draw a box around a string
446 .x1
447 .ft B
448 &de bx
449 \e(br\e\|~\|\e\e$1\e\|~\|\e(br\e\|l\|\'\|~\|0\e(rn\'\e\|l\|\'\|~\|0\e(ul\'
450 &&
451 .ft R
452 .x2
453 .de bx
454 \(br\|\\$1\|\(br\l'|0\(rn'\l'|0\(ul'
455 ..
456 such that
457 .x1
458 .ft B
459 &us "underlined words"
460 .ft R
461 .x2
462 and
463 .x1
464 .ft B
465 &bx "words in a box"
466 .ft R
467 .x2
468 yield
469 .xu "underlined words"
470 and
471 .bx "words in a box"
472 \h'-\w'.'u'.
473 .pg
474 The function \fB\eL\'\|\fINc\fB\|\'\fR will draw a vertical line consisting
475 of the (optional) character \fIc\fR stacked vertically apart 1\|em
476 (1 line in \*(NR),
477 with the first two characters overlapped,
478 if necessary, to form a continuous line.
479 The default character is the \fIbox rule\fR |\(br| (\fB\|\e(br\fR);
480 the other suitable character is the \fIbold vertical\fR \|\(bv\| (\fB\|\e(bv\fR).
481 The line is begun without any initial motion relative to the
482 current base line.
483 A positive \fIN\fR specifies a line drawn downward and
484 a negative \fIN\fR specifies a line drawn upward.
485 After the line is drawn \fIno\fR compensating
486 motions are made;
487 the instantaneous baseline is at the \fIend\fR of the line.
488 .pg
489 .de eb
490 .sp -1
491 .nf
492 \h'-.5n'\L'|\\nzu-1'\l'\\n(.lu+1n\(ul'\L'-|\\nzu+1'\l'|0u-.5n\(ul'
493 .fi
494 ..
495 .ne 2i
496 .mk z
497 The horizontal and vertical line drawing functions may be used
498 in combination to produce large boxes.
499 The zero-width \fIbox-rule\fR and the \(12-em wide \fIunderrule\fR
500 were \fIdesigned\fR to form corners when using 1-em vertical
501 spacings.
502 For example the macro
503 .x1
504 .ft B
505 \&.de eb
506 \&.sp \-1       \e"compensate for next automatic base-line spacing
507 \&.nf   \e"avoid possibly overflowing word buffer
508 .tr ||
509 \&\eh\'\-.5n\'\eL\'\||\|\e\enau\-1\'\el\'\e\en(.lu+1n\e(ul\'\eL\'\-\||\|\e\enau+1\'\el\'\||\|0u\-.5n\e(ul\'    \e"draw box
510 .tr |
511 .lg 0
512 \&.fi
513 .lg
514 \&..
515 .ft R
516 .x2
517 will draw a box around some text whose beginning vertical place was
518 saved in number register \fIa\fR
519 (e. g. using \fB.mk|a\fR)
520 as done for this paragraph.
521 .eb