summaryrefslogtreecommitdiff
path: root/contrib/mom/examples/macros.mom
blob: 5e78f3e9d996f865cfdae3cf002164a92a586d90 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
\# Basic page setup
\#
.PAGE 8.5i 11i \" Printer sheet size
.L_MARGIN 1i   \" Left margin 1 inch
.R_MARGIN 1i   \" Right margin 1 inch (calculates the line length)
\#
\# Refinements
\#
.KERN          \" Automatic pairwise kerning
.SS 0          \" No extra space between sentences
.HY            \" Hyphenate
.LIGATURES     \" Automatic ligature generation
.SMARTQUOTES   \" Enable smartquotes
\#
\# Basic type parameters
\#
.FAM T         \" Times Roman family
.FT  B         \" Bold font
.PS  12        \" Point size
.LS  14        \" Leading (line spacing)
.LEFT          \" Set lines flush left, nofill mode
\#
\#
.ALD |1i-1v    \" Advance 1 inch from top of paper to first baseline
Example 1\*[BU2]:
.ALD .25v      \" Advance an extra 1/4 linespace
.UNDERSCORE 3.75p "T\*[BU4]asting notes using padding, string tabs \
and multi-columns"
.SP            \" Add an extra line space
\#
\#
.FAM H         \" Helvetica family
.PS  10
.LS  11        \" New leading
\#
\# The following uses a combination of padding, string tabs, and the FP escape
\# to set up five tabs with 12-point (1-pica) gutters over the full line length.
\# 
.SILENT        \" Don't print the next line
.PAD "\*[ST1]VIN#\*[ST1X]\*[FP12]\*[ST2]ROBE#\*[ST2X]\*[FP12]\*[ST3]NEZ#\*[ST3X]\*[FP12]\*[ST4]BOUCHE#\*[ST4X]\*[FP12]\*[ST5]COMMENTAIRES\*[ST5X]"
.SILENT OFF    \" Resume normal printing of text
\#
\# Now that the string tabs have been marked off, we "set" them.
\#
.ST 1 L        \" First string tab flush left, nofill mode (no need for .BR's between input lines)
.ST 2 L QUAD   \" Remaining tabs are flush left/rag right, fill mode
.ST 3 L QUAD
.ST 4 L QUAD
.ST 5 L QUAD
\#
\#
.TAB 1         \" Call first tab
.UNDERSCORE "VIN"
.TN            \" Move to next tab and stay on the same baseline
.UNDERSCORE "ROBE"
.TN            \" Ibid
.UNDERSCORE "NEZ"
.TN            \" Ibid
.UNDERSCORE "BOUCHE"
.TN            \" Ibid
.UNDERSCORE "COMMENTAIRES"
.TQ            \" Quit tabs
\#
\#
.ALD 6p        \" Advance an extra 6 points
.FT R          \" Change font to roman (medium)
.MCO           \" Turn multi-column mode on
\#
\#
.TAB 1                 \" Notice that this tab gets set line-for-line
\*[IT]Peelee Island    \" Set italic
\*[PREV]Gewürztraminer \" Revert to former font (roman)
2000
(Canada)
.MCR           \" Return to top of column
.TAB 2         \" Call tab 2; in multi-column mode, don't use .TN
Jaune pâle.
.MCR
.TB 3          \" Notice that from here on, we use the alias TB instead of TAB
Frais, fruité, ci\%tronné, arômes fortes de lichee et de fruits
tropicaux.
.MCR
.TB 4
Doux, fruité, bien équilibré avec une bonne acidité.
.MCR
.TB 5
Bon apéro.  Servir avec des plats
.RW .1
indiens ou \%chinois.
.RW 0
.BR
Excellent rapport qualité/prix.
.MCX 8p        \" Multi-column mode off; advance an extra 8 points
.MCO           \" Re-invoke multi-columns for next wine description
.TB 1
\*[IT]Carau Pujol
\*[ROM]Tannat
1995
(Uraguay)
.MCR
.TB 2
Rubis foncé, vio\%lacée, presque opaque.
.MCR
.TB 3
Belles arômes de fruits foncés (prunes, cerises noires, cassis).
Odeurs tertiares de cuir, cèdre, violets, eucalyptus, avec une trace
exotique de Band-Aid*\*[BU12].
\#
\# The \*[BU12], above, pulls the period back so that it falls
\# underneath the asterisk. \*[BP<#>] could have been used instead
\# if you prefer to use points rather than kern units.
\#
.MCR
.TB 4
Très rond, tannins mûres et veloutés, avec un long finis fruité et
doucement alcoolique.
.MCR
.TB 5
Superbe\|!  Une aubaine à ne pas manquer.  Prêt à boire maintenant.
.MCX 1v  \" Multi-columns off; advance an extra linespace
\#
\# Now, an example of a hanging indent.  This is excessively fussy
\# from a typographic standpoint in that it hangs the asterisk outside
\# the current left margin so that the text following it lines up with
\# with the text in the tasting notes.  Notice that in order to use a
\# hanging indent, you must first set a left indent.
\#
.FT I          \" Change font to italic
.PS -.5        \" Reduce point size by 1/2 point
.LS -.5        \" Reduce leading by 1/2 point
.JUSTIFY       \" Set text justified
\#
\# Now, move the left margin back by the width of an asterisk plus 2 points...
\#
.L_MARGIN -(\w'*'+2p)
\#
\# ...and set a left indent equal to the width of an asterisk plus 2 points
\#
.IL \w'*'+2p   
\#
\# Now, set the hanging indent equal to the left indent, effectively pulling
\# the first line of the following text back to the new left margin.
\# Subsequent output lines will be indented by the .IL amount.
\# Notice that when using the \w inline escape, there's no need to append
\# a unit of measure to it.
\#
.HI \w'*'+2p
*\*[FP1]The term "Band-Aid" means the slightly sweet, vaguely chemical
smell associated with medical-grade plastics.  It is often found in
wines from terroirs in South America.  Provided a wine has a sufficient
concentration of fruit
.RW .04   \" Kern the whole next line slightly, so "lipstick" doesn't hyphenate.
aromas and complex tertiary characteristics, Band-Aid is a Good Thing.
Otherwise, it smells like cheap lipstick.
.RW 0     \" Reset kerning to 0
\#
\# Notice, above, that although the values for IL and HI are the width
\# of an asterisk plus 2 points, when setting the first line of text
\# (the one with the asterisk at the beginning), we put only 1 point of
\# space after the *.  This is to compensate for the fact that in the
\# italic font, the letter T doesn't align visually with the rest of
\# the text.  As already noted, this is an extremely fussy example. :)
\#
\#
\#
.IX CLEAR      \" Cancel and clear stored indent values 
.L_MARGIN 1i   \" Reset left margin to its original value.
\#
\#
.ALD 2P        \" Add 2-picas extra space before next example
.FAM T
.FT  B
.PS  12
.LS  14
Example 2:
.ALD .25v
\#
.COMMENT       \" COMMENT lets you enter comments without using \# or \"
In the next line, because the string to be underscored must be
enclosed by double-quotes, you can't use the double-quote character
itself around the word "Massaging".  We circumvent this by using the
groff inline escapes \(lq and \(rq (leftquote and rightquote).
.COMMENT OFF   \" Remember to turn COMMENT off!
\#
.UNDERSCORE 3.75p "\(lqMassaging\(rq \*[BP1]a passage of rag right text"
.SP            \" Add an extra linespace
\#
\#
.PS 12.5
.LS 14
.PS -1         \" Reduce point size by 1 point
Passage using groff defaults
.ALD .5v       \" Add an extra 1/2 line space
.PS +1         \" Restore point size
.QUAD LEFT     \" Set quad left, fill mode
.IB 3P         \" Indent 3 picas from both the left and right margins
.FT R
The thousand injuries of Fortunato I had borne as I best could;
but when he ventured upon insult, I vowed revenge.  You, who so well
know the nature of my soul, will not suppose, however, that I gave
utterance to a threat.  \*[IT]At length\*[PREV] I would be
avenged; this was a point definitively settled\(embut the very
definitiveness with which it was resolved, precluded the idea of
risk.  I must not only punish, but punish with impunity.  A
wrong is unredressed when retribution overtakes its redresser.
It is equally unredressed when the avenger fails to make himself
felt as such to him who has done the wrong.
.ALD 6p
\#
\# The next line is set quad right, nofill mode, 1/2 point smaller
\# than the preceding text (using the \*S[...] inline escape.
\#
.RIGHT
\*S[-.5]\(emEdgar Allen Poe, \*[IT]The Cask of Amontillado\*[PREV]\*S[+.5]
.SP            \" Extra linespace
.IBX           \" Disable "indent both"
\#
\# The passage above, while acceptable in a longer document, exhibits a
\# few typographic flaws.  The shape of the right margin rag exhibits
\# a decided "rounded" appearance.  The word "I" stands alone at the
\# end of the third line.  The space between the 1st and 2nd sentences
\# ("...revenge. You...") is too large, owing to the letter "Y" that
\# begins the 2nd sentence.  The spacing between "A wrong..." (line 6)
\# is equally too large because of the way "A" and "w" fit together.
\# The em-dash before Edgar isn't vertically centered with the letter "E".
\# And so on.  The most important correction below is fixing the rag
\# so that longer and shorter lines alternate.  This is accomplished by
\# manually breaking lines and then slightly lengthening and shortening
\# them until a pleasing rag is achieved.  The remainder of the little
\# flaws are fixed with inline escapes.
\#
.FT B
.PS -1
.LEFT
The same passage, \*[BU4]"massaged"
.ALD .5v
.FT R
.PS +1 
.QUAD LEFT
.HY OFF           \" Turn automatic hyphenation off
.BR_AT_LINE_KERN  \" Automatically insert a line break (.BR) with each invocation of .RW and .EW 
.WS +1            \" Increase word space slightly
.IB               \" Turn "indent both" back on; values are the same as before
\#
\#
The thousand injuries of Fortunato I had borne as I best could; but
when he ventured upon insult, I \*[BU2]vowed revenge.  \*[BU4]Y\*[BU6]ou,
\*[BU4]who so \*[BU2]well know the nature
.EW .2
of my soul, \*[BU2]will not suppose, however, that I gave utterance to
a threat.  \*[IT]At
.EW .2
length\*[PREV] I would be avenged; this was a point definitively
settled\(embut the
.EW .2
v\*[BU1]ery definitiveness with which it was resolved, precluded the idea
of risk.
.EW 0
I must not only punish, but punish with impunity.  A \*[BP1]wrong is
unredressed
.EW .1
when retribution overtakes its redresser.  It is equally unredressed
when the
.RW .1
avenger fails to make himself felt as such to him \*[BU2]who has done
the wrong.
.RW 0
.WS +0         \" Restore normal wordspacing
.ALD 6p
.PS -.5
.RIGHT
\*[RLD1.5]\(em\*[ALD1.5]\*[BP3]Edgar \*[BP1]Allen Poe, \*[IT]The Cask of Amontillado\*[PREV]
.IX CLEAR      \" Cancel and clear stored values of all indents
\#
\#
.NEWPAGE       \" Start a new page
.T_MARGIN 1i   \" Set top margin to 1i (approx. equivalent to .ALD |1i-1v above
\#
\#
.FAM T
.FT  B
.PS  12
.LS  14
.LEFT
Example 3:
.ALD .25v
.UNDERSCORE 3.75p "A \*[BU2]recipe for enumerated lists using indents"
.SP            \" Add an extra line space
.FAM N         \" New Century Schoolbook family
.FT  R
.PS  11
.LS  13
.HY            \" Turn hyphenation back on
.JUSTIFY       \" Justify text
This example demonstrates the use of left and hanging indents for
simple enumerated lists.  Nested lists are possible, as the example
shows; however, the more complex the nesting, the wiser it becomes
to use (string) tabs, as seen in Example 4.
\#
\#
.JUSTIFY       \" Justify text
.IL \w'\0.\0'  \" Establish a left indent equal to the width of 2 figure spaces plus a period.
.HI \w'\0.\0'  \" Establish a hanging indent equal to the size of the left indent.
.ALD 6p
\#
\#
1.\0This is the first item in the list.  N\*[BU2]otice how the first line
"hangs" back from the remaining text, which is otherwise
indented by the width of by two figure-spaces (digit-width
spaces) and a period.
.BR
.HI            \" Notice that HI doesn't require an argument once the value's been set
.ALD 6p
2.\0This is the second item in the list.  As with the above item,
notice the use of the \*[BU8]\\0 escape sequence in the input text.  It's
there to ensure that the space after the number/period combination
always remains the same (i.e. doesn't stretch when the line is
justified).  That way, the text of each item always lines up perfectly.
\#
\#
.COMMENT
Now we're going to set a bullet-point list, indented from the text
above by 1 pica.  IL arguments are always added to whatever value
is in already effect for IL, hence all we have to do is tell mom to
indent (from the current left indent) 1 pica plus the width of the
bullet character ( \(bu ).  \*[FP3] puts three points of space after
the bullet so that the bullet and the text are visually separated.
.COMMENT OFF
\#
\#
.IL 1P+\w'\(bu\*[FP3]'
\#
\# Hanging indents are always relative to the current left indent.
\# The additional 1-pica indent, above, already having been taken
\# care of, we only want to hang the first lines of bullet list items
\# back by the width of the bullet character plus its 3 extra
\# points of space.
\#
.ALD 6p
.HI \w'\(bu\*[FP3]'
\*[ALD1]\(bu\*[RLD1]\*[FP3]This is the first line of a sublist with bullets.
N\*[BU2]otice how the first line (the one with the bullet) is indented
exactly one pica from the text of the list item above it, while the
remaining lines align with the left indent we set above.
.ALD 6p
.HI
\*[ALD1]\(bu\*[RLD1]\*[FP3]This is the second item of the sublist with bullets.  \*[BU4]We
could go on indefinitely, but let's go back to the top level (numbered)
list...
\#
\# The easiest way to return to a previous indent value is by subtraction.
\# The argument to IL, above, was 1P+\w'\(bu\*[FP3]', so we just reverse
\# it by putting a minus sign in front.  The parentheses are required
\# for groff to evaluate the expression properly.
\#
.IL -(1P+\w'\(bu\*[FP3]')
.HI \w'\0.\0'  \" Reset hanging indent for use with numbered items.
.ALD 6p
3.\0...and here we are.
.HI            \" Again, notice that once HI has been set, you don't have to keep passing it an argument.
.ALD 6p
4.\0In order not to make the example too long, we'll stop here.
.IX CLEAR      \" Dont' forget to cancel and/or clear indents!
\#
\#
.FAM T
.FT  B
.PS  12
.LS  14
.LEFT
.SP
\#
\#
Example 4:
.ALD .25v
.UNDERSCORE 3.75p "A \*[BU2]recipe for nested lists using string tabs"
.SP
.FAM N
.FT  R
.PS  11
.LS  13
.JUSTIFY
Although setting up string tabs is a bit more complex than setting
up indents, it's \*[BU3]well worth the effort, especially for nested lists.
.ALD 6p
\#
.COMMENT
The PAD line, below, sets up two string tabs.  The first (ST1)
is exactly the length of two figure spaces and a period.  The
second (ST2) is simply "the remainder of the line."
.COMMENT OFF
\#
.SILENT
.PAD "\*[ST1]\0.\0\*[ST1X]\*[ST2]#\*[ST2X]"
.ST 1 L        \" String tabs must be "set" after being marked off in a line
.ST 2 J        \" ST 1 will be set flush left, nofill; ST 2 will be justified.
.SILENT OFF
\#
\#
.TB 1
1.
.TN    \" Use .TN here so text stays on the same baseline as the number in tab 1
This is the first item in the list.  N\*[BU2]otice how, just as in Example 3,
the first line hangs back from the remaining text, which is otherwise
indented.
.ALD 6p
.TB 1
2.
.TN
This is the second item in the list.  N\*[BU2]otice that when setting "lists"
with tabs, there's no need to use the \*[BU8]\\0 escape sequence after
the number/period combination in the input text.
.ALD 6p
\#
.COMMENT
Now, set up the indented bullet-point sublist.  The PAD line
says: move forward 12 points (1 pica), then mark off a string
tab (ST3) that's the length of the bullet character; move foward
another three points, then make the next string tab (ST4) the
length of remainder of the line.
.COMMENT OFF
\#
.SILENT
.PAD "\*[FP12]\*[ST3]\(bu\*[ST3X]\*[FP3]\*[ST4]#\*[ST4X]"
.ST 3 L
.ST 4 J
.SILENT OFF
.ALD 6p
.TB 3
\*[ALD1]\(bu\*[RLD1]
.TN
This is the first line of a sublist with bullets.  N\*[BU2]otice how the
bullets and the text line up exactly the same as in Example 3.
.ALD 6p
.TB 3
\*[ALD1]\(bu\*[RLD1]
.TN
This is the second item of the sublist with bullets.  For the fun of
it, lets add in an
.SPREAD
en-dashed sub-sublist.
.BR  \" We're in a fill mode right now, so you *must* terminate the line with BR
\#
\#
.SILENT
.PAD "\*[FP12]\*[ST5]\(en\*[ST5X]\*[FP4]\*[ST6]#\*[ST6X]"
.ST 5 L
.ST 6 J
.SILENT OFF
.ALD 6p
.TB 5
\*[RLD.75]\(en\*[ALD.75]
.TN
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
sed diam voluptua.
.ALD 6p
.TB 5
\*[RLD.75]\(en\*[ALD.75]
.TN
At \*[BU3]vero eos et accusam et justo duo dolores et ea rebum.  Stet clita
kasd gubergren, no sea takimata sanctus est lorem ipsum dolor sit amet.
.ALD 6p
.TB 1
3.
.TN
And here we are, back at the top-level numbered list with a minimum
of muss and fuss,
.ALD 6p
.TB 1
4.
.TN
Generally speaking, once you get the hang of string tabs and the
\*[BD]PAD\*[PREV] macro, you'll find setting up complex nested lists
(or anything similar to them) easier than with hanging indents.
.TQ
\#
.NEWPAGE
.FAM T
.FT  B
.PS  12
.LS  14
.LEFT
Example 5:
.ALD .25v
.UNDERSCORE 3.75p "Word spacing"
.ALD 8p
.FAM P         \" Palatino family
.PS  11
.LS  14
\#
\# The "label" lines for the following are set in Helvetica bold, one
\# point smaller than the examples themselves.  This demonstrates the
\# use of the groff inline escape \f[...] to change both family and
\# font inline.  It also shows using the mom inline \*S[...].
\#
\f[HB]\*S[-1]Normal word spacing\*S[+1]\*[PREV]
.FT R
N\*[BU1]o\*[BU1]w \*[BU1]is the time for all good men to come to the aid of the party.
.ALD 4p
\f[HB]\*S[-1]Word spacing adjusted by \*[RLD1]\*[BP3]+\*[ALD1]\*[BP2]2\*S[+1]\*[PREV]
.FT R
.WS +2
N\*[BU1]o\*[BU1]w \*[BU1]is the time for all good men to come to the aid of the party.
.WS +0
.ALD 4p
\f[HB]\*S[-1]Word spacing adjusted by \*[RLD1]\*[BP3]+\*[ALD1]\*[BP2]4\*S[+1]\*[PREV]
.FT R
.WS +4
N\*[BU1]o\*[BU1]w \*[BU1]is the time for all good men to come to the aid of the party.
.WS +0
.ALD 4p
\f[HB]\*S[-1]Word spacing adjusted by \*[RLD1]\*[BP3]+\*[ALD1]\*[BP2]6\*S[+1]\*[PREV]
.FT R
.WS +6
N\*[BU1]o\*[BU1]w \*[BU1]is the time for all good men to come to the aid of the party.
.WS +0
.SP 1.5v
\#
\#
.FAM T
.FT  B
.PS  12
.LS  14
.LEFT
Example 6:
.ALD .25v
.UNDERSCORE 3.75p "Line kerning"
.ALD 8p
.FAM P         \" Palatino family
.FT  R
.PS  11
.LS  15
\#
\# Here, we set up some tabs so the examples can go into facing columns.
\#
.TAB_SET 1 0 19.5P L
.TAB_SET 2 19.5P 19.5P L
\#
\#
.MCO           \" Turn multi-columns on
.TB 1
\f[HB]\*S[-1]Unkerned line\*S[+1]\*[PREV]
.FT R
"But this is \*[IT]important!\/"\*[PREV]she exclaimed.
.ALD 4p
\f[HB]\*S[-1]Line "tightened" \(en .RW .1\*S[+1]\*[PREV]
.RW .1
"But this is \*[IT]important!\/"\*[PREV]she exclaimed.
.ALD 4p
\#
\# In the next line, notice that because it uses a different family
\# (Helvetica instead of Palatino), the RW macro doesn't affect it.
\#
\f[HB]\*S[-1]Line "tightened" \(en .RW .2\*S[+1]\*[PREV]
.RW .2
"But this is \*[IT]important!\/"\*[PREV]she exclaimed.
.ALD 4p
\f[HB]\*S[-1]Line "tightened" \(en .RW .3\*S[+1]\*[PREV]
.RW .3
"But this is \*[IT]important!\/"\*[PREV]she exclaimed.
.MCR
.TB 2
\f[HB]\*S[-1]Unkerned line\*S[+1]\*[PREV]
"But this is \*[IT]important!\/"\*[PREV]she exclaimed.
.ALD 4p
\f[HB]\*S[-1]Line "loosened" \(en .EW .1\*S[+1]\*[PREV]
.EW .1
"But this is \*[IT]important!\/"\*[PREV]she exclaimed.
.ALD 4p
\f[HB]\*S[-1]Line "loosened" \(en .EW .2\*S[+1]\*[PREV]
.EW .2
"But this is \*[IT]important!\/"\*[PREV]she exclaimed.
.ALD 4p
\f[HB]\*S[-1]Line "loosened" \(en .EW .3\*S[+1]\*[PREV]
.EW .3
"But this is \*[IT]important!\/"\*[PREV]she exclaimed.
.MCX 1.5v
\#
\#
.FAM T
.FT  B
.PS  12
.LS  14
.LEFT
Example 7:
.ALD .25v
.UNDERSCORE 3.75p "Cutaround using left\*[FU2]/right indents, multi columns \
and a dropcap"
.SP
\#
\#
.FT R
.PS 11
.LS 12
.BR_AT_LINE_KERN OFF    \" In justified text, it's best to have this OFF
\#
\#
.TS 1  0      18.5P  J  \" TS is an alias for TAB_SET
.TS 2  20.5P  18.5P  J
.MCO
.ALD 5P+9p
.PSPIC penguin.ps
.MCR
.TAB 1
.DROPCAP_FONT B
.DROPCAP L 3 COND 80
.EW .2
orem ipsum dolor sit amet, consetetur sa\%dip\%scing elitr, sed diam
nonumy eir\%mod tempor invidunt ut labore et dolore magna aliquyam erat,
sed diam voluptua.
.EW 0
.TI 1P
At vero eos et accusam et justo duo dolores et ea rebum.  Stet clita
kasd gubergren, no sea taki-
.SPREAD        \" Force justify preceding line before starting indent
.IR 3.5P
kimata sanctus est lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
nonumy eirmod tempor.
.EW .2
.TI
Invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
At
.EW 0
vero eos et accusam et justo duo dolores et ea rebum.
.TI
Stet clita kasd gubergren, no sea ta-
.SPREAD        \" Force justify preceding line before quitting indent
.IRX
kimata sanctus est lorem ipsum dolor sit amet.  Lorem ipsum dolor
sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
in\%vi\%dunt ut labore et dolore magna aliquyam erat.  Sed diam voluptua,
at vero eos et accusam et justo duo
.SPREAD
.EW .3
dolores et ea rebum.  Stet clita no kasd guber-
.SPREAD
.MCR
.TB 2
gren, no sea takimata sanctus est lorem ipsum
.EW 0
dolor sit amet.  Consetetur sadipscing elitr, sed diam nonumy eirmod
tempor invidunt ut labore et dolore.
.TI
Magna aliquyam erat, sed diam voluptua, at vero eos et accusam.
Et justo duo dolores et ea
.SPREAD
.IL 3.5P
rebum, stet clita kasd gubergren.  No sea
takimata sanctus est, lorem ipsum dolor sit amet.
.TI
Sit amet, consetetur sadipscing elitr, sed diam.  Nonumy eirmod tempor
in\%vi-
.EW .3
dunt ut labore et dolore magna.  Ali-
.EW 0
quyam erat sed diam voluptua.
At vero eos et accusam et justo duo dolores et ea rebum stet.
.ILX
.TI
Dolores et ea rebum stet clita kasd gubergren, no sea takimata
sanctus.  Sadipscing elitr sed diam, nonumy eirmod tempor, invidunt
ut labore et dolore magna aliquyam erat.  Sed diam voluptua, at vero
eos et accusam et justo duo dolores et ea rebum.