3 .PAGE 8.5i 11i \" Printer sheet size
4 .L_MARGIN 1i \" Left margin 1 inch
5 .R_MARGIN 1i \" Right margin 1 inch (calculates the line length)
9 .KERN \" Automatic pairwise kerning
10 .SS 0 \" No extra space between sentences
12 .LIGATURES \" Automatic ligature generation
13 .SMARTQUOTES \" Enable smartquotes
15 \# Basic type parameters
17 .FAM T \" Times Roman family
19 .PT_SIZE 12 \" Point size
20 .LS 14 \" Leading (line spacing)
21 .LEFT \" Set lines flush left, nofill mode
24 .ALD |1i-1v \" Advance 1 inch from top of paper to first baseline
26 .ALD .25v \" Advance an extra 1/4 linespace
27 .UNDERSCORE 3.75p "T\*[BU 4]asting notes using padding, string tabs \
29 .SP \" Add an extra line space
32 .FAM H \" Helvetica family
36 \# The following uses a combination of padding, string tabs, and the FWD escape
37 \# to set up five tabs with 12-point (1-pica) gutters over the full line length.
39 .SILENT \" Don't print the next line
40 .PAD "\*[ST1]VIN#\*[ST1X]\*[FWD 12p]\*[ST2]ROBE#\*[ST2X]\*[FWD 12p]\*[ST3]NEZ#\*[ST3X]\*[FWD 12p]\*[ST4]BOUCHE#\*[ST4X]\*[FWD 12p]\*[ST5]COMMENTAIRES\*[ST5X]"
41 .SILENT OFF \" Resume normal printing of text
43 \# Now that the string tabs have been marked off, we "set" them.
45 .ST 1 L \" First string tab flush left, nofill mode (no need for .BR's between input lines)
46 .ST 2 L QUAD \" Remaining tabs are flush left/rag right, fill mode
52 .TAB 1 \" Call first tab
54 .TN \" Move to next tab and stay on the same baseline
61 .UNDERSCORE "COMMENTAIRES"
65 .ALD 6p \" Advance an extra 6 points
66 .FT R \" Change font to roman (medium)
67 .MCO \" Turn multi-column mode on
70 .TAB 1 \" Notice that this tab gets set line-for-line
71 \*[IT]Peelee Island \" Set italic
72 \*[PREV]Gewürztraminer \" Revert to former font (roman)
75 .MCR \" Return to top of column
76 .TAB 2 \" Call tab 2; in multi-column mode, don't use .TN
79 .TB 3 \" Notice that from here on, we use the alias TB instead of TAB
80 Frais, fruité, ci\%tronné, arômes fortes de lichee et de fruits
84 Doux, fruité, bien équilibré avec une bonne acidité.
87 Bon apéro. Servir avec des plats
92 Excellent rapport qualité/prix.
93 .MCX 8p \" Multi-column mode off; advance an extra 8 points
94 .MCO \" Re-invoke multi-columns for next wine description
102 Rubis foncé, vio\%lacée, presque opaque.
105 Belles arômes de fruits foncés (prunes, cerises noires, cassis).
106 Odeurs tertiares de cuir, cèdre, violets, eucalyptus, avec une trace
107 exotique de Band-Aid*\*[BU 12].
109 \# The \*[BU 12], above, pulls the period back so that it falls
110 \# underneath the asterisk. \*[BP<#>] could have been used instead
111 \# if you prefer to use points rather than kern units.
115 Très rond, tannins mûres et veloutés, avec un long finis fruité et
116 doucement alcoolique.
119 Superbe\|! Une aubaine à ne pas manquer. Prêt à boire maintenant.
120 .MCX 1v \" Multi-columns off; advance an extra linespace
122 \# Now, an example of a hanging indent. This is excessively fussy
123 \# from a typographic standpoint in that it hangs the asterisk outside
124 \# the current left margin so that the text following it lines up with
125 \# with the text in the tasting notes. Notice that in order to use a
126 \# hanging indent, you must first set a left indent.
128 .FT I \" Change font to italic
129 .PT_SIZE -.5 \" Reduce point size by 1/2 point
130 .LS -.5 \" Reduce leading by 1/2 point
131 .JUSTIFY \" Set text justified
133 \# Now, move the left margin back by the width of an asterisk plus 2 points...
135 .L_MARGIN -(\w'*'+2p)
137 \# ...and set a left indent equal to the width of an asterisk plus 2 points
141 \# Now, set the hanging indent equal to the left indent, effectively pulling
142 \# the first line of the following text back to the new left margin.
143 \# Subsequent output lines will be indented by the .IL amount.
144 \# Notice that when using the \w inline escape, there's no need to append
145 \# a unit of measure to it.
148 *\*[FWD 1p]The term "Band-Aid" means the slightly sweet, vaguely chemical
149 smell associated with medical-grade plastics. It is often found in
150 wines from terroirs in South America. Provided a wine has a sufficient
151 concentration of fruit
152 .RW .04 \" Kern the whole next line slightly, so "lipstick" doesn't hyphenate.
153 aromas and complex tertiary characteristics, Band-Aid is a Good Thing.
154 Otherwise, it smells like cheap lipstick.
155 .RW 0 \" Reset kerning to 0
157 \# Notice, above, that although the values for IL and HI are the width
158 \# of an asterisk plus 2 points, when setting the first line of text
159 \# (the one with the asterisk at the beginning), we put only 1 point of
160 \# space after the *. This is to compensate for the fact that in the
161 \# italic font, the letter T doesn't align visually with the rest of
162 \# the text. As already noted, this is an extremely fussy example. :)
166 .IQ CLEAR \" Cancel and clear stored indent values
167 .L_MARGIN 1i \" Reset left margin to its original value.
170 .ALD 2P \" Add 2-picas extra space before next example
178 .COMMENT \" COMMENT lets you enter comments without using \# or \"
179 In the next line, because the string to be underscored must be
180 enclosed by double-quotes, you can't use the double-quote character
181 itself around the word "Massaging". We circumvent this by using the
182 groff inline escapes \(lq and \(rq (leftquote and rightquote).
183 .COMMENT OFF \" Remember to turn COMMENT off!
185 .UNDERSCORE 3.75p "\(lqMassaging\(rq \*[BCK 1p]a passage of rag right text"
186 .SP \" Add an extra linespace
191 .PT_SIZE -1 \" Reduce point size by 1 point
192 Passage using groff defaults
193 .ALD .5v \" Add an extra 1/2 line space
194 .PT_SIZE +1 \" Restore point size
195 .QUAD LEFT \" Set quad left, fill mode
196 .IB 3P \" Indent 3 picas from both the left and right margins
198 The thousand injuries of Fortunato I had borne as I best could;
199 but when he ventured upon insult, I vowed revenge. You, who so well
200 know the nature of my soul, will not suppose, however, that I gave
201 utterance to a threat. \*[IT]At length\*[PREV] I would be
202 avenged; this was a point definitively settled\(embut the very
203 definitiveness with which it was resolved, precluded the idea of
204 risk. I must not only punish, but punish with impunity. A
205 wrong is unredressed when retribution overtakes its redresser.
206 It is equally unredressed when the avenger fails to make himself
207 felt as such to him who has done the wrong.
210 \# The next line is set quad right, nofill mode, 1/2 point smaller
211 \# than the preceding text (using the \*S[...] inline escape.
214 \*S[-.5]\(emEdgar Allen Poe, \*[IT]The Cask of Amontillado\*[PREV]\*S[+.5]
215 .SP \" Extra linespace
216 .IBQ \" Disable "indent both"
218 \# The passage above, while acceptable in a longer document, exhibits a
219 \# few typographic flaws. The shape of the right margin rag exhibits
220 \# a decidedly "rounded" appearance. The word "I" stands alone at the
221 \# end of the third line. The space between the 1st and 2nd sentences
222 \# ("...revenge. You...") is too large, owing to the letter "Y" that
223 \# begins the 2nd sentence. The spacing between "A wrong..." (line 6)
224 \# is equally too large because of the way "A" and "w" fit together.
225 \# The em-dash before Edgar isn't vertically centered with the letter "E".
226 \# And so on. The most important correction below is fixing the rag
227 \# so that longer and shorter lines alternate. This is accomplished by
228 \# manually breaking lines and then slightly lengthening and shortening
229 \# them until a pleasing rag is achieved. The remainder of the little
230 \# flaws are fixed with inline escapes.
235 The same passage, \*[BU 4]"massaged"
240 .HY OFF \" Turn automatic hyphenation off
241 .BR_AT_LINE_KERN \" Automatically insert a line break (.BR) with each invocation of .RW and .EW
242 .WS +1 \" Increase word space slightly
243 .IB \" Turn "indent both" back on; values are the same as before
246 The thousand injuries of Fortunato I had borne as I best could; but
247 when he ventured upon insult, I \*[BU 2]vowed revenge. \*[BU 4]Y\*[BU 6]ou,
248 \*[BU 4]who so \*[BU 2]well know the nature
250 of my soul, \*[BU 2]will not suppose, however, that I gave utterance to
253 length\*[PREV] I would be avenged; this was a point definitively
256 v\*[BU 1]ery definitiveness with which it was resolved, precluded the idea
259 I must not only punish, but punish with impunity. A \*[BCK 1p]wrong is
262 when retribution overtakes its redresser. It is equally unredressed
265 avenger fails to make himself felt as such to him \*[BU 2]who has done
268 .WS +0 \" Restore normal wordspacing
272 \*[UP 1.5p]\(em\*[DOWN 1.5p]\*[BCK 1p]Edgar \*[BCK 1p]Allen Poe, \*[IT]The Cask of Amontillado\*[PREV]
273 .IQ CLEAR \" Cancel and clear stored values of all indents
276 .NEWPAGE \" Start a new page
277 .T_MARGIN 1i \" Set top margin to 1i (approx. equivalent to .ALD |1i-1v above
287 .UNDERSCORE 3.75p "A \*[BU 2]recipe for enumerated lists using indents"
288 .SP \" Add an extra line space
289 .FAM N \" New Century Schoolbook family
293 .HY \" Turn hyphenation back on
294 .JUSTIFY \" Justify text
295 This example demonstrates the use of left and hanging indents for
296 simple enumerated lists. Nested lists are possible, as the example
297 shows; however, the more complex the nesting, the wiser it becomes
298 to use (string) tabs, as seen in Example 4.
301 .JUSTIFY \" Justify text
302 .IL \w'\0.\0' \" Establish a left indent equal to the width of 2 figure spaces plus a period.
303 .HI \w'\0.\0' \" Establish a hanging indent equal to the size of the left indent.
307 1.\0This is the first item in the list. N\*[BU 2]otice how the first line
308 "hangs" back from the remaining text, which is otherwise
309 indented by the width of by two figure-spaces (digit-width
310 spaces) and a period.
312 .HI \" Notice that HI doesn't require an argument once the value's been set
314 2.\0This is the second item in the list. As with the above item,
315 notice the use of the \*[BU 8]\\0 escape sequence in the input text. It's
316 there to ensure that the space after the number/period combination
317 always remains the same (i.e. doesn't stretch when the line is
318 justified). That way, the text of each item always lines up perfectly.
322 Now we're going to set a bullet-point list, indented from the text
323 above by 1 pica. IL arguments are always added to whatever value
324 is in already effect for IL, hence all we have to do is tell mom to
325 indent (from the current left indent) 1 pica plus the width of the
326 bullet character ( \(bu ). \*[FWD 3p] puts three points of space after
327 the bullet so that the bullet and the text are visually separated.
331 .IL 1P+\w'\(bu\*[FWD 3p]'
333 \# Hanging indents are always relative to the current left indent.
334 \# The additional 1-pica indent, above, already having been taken
335 \# care of, we only want to hang the first lines of bullet list items
336 \# back by the width of the bullet character plus its 3 extra
340 .HI \w'\(bu\*[FWD 3p]'
341 \*[DOWN 1p]\(bu\*[UP 1p]\*[FWD 3p]This is the first line of a sublist with bullets.
342 N\*[BU 2]otice how the first line (the one with the bullet) is indented
343 exactly one pica from the text of the list item above it, while the
344 remaining lines align with the left indent we set above.
347 \*[DOWN 1p]\(bu\*[UP 1p]\*[FWD 3p]This is the second item of the sublist with bullets. \*[BU 4]We
348 could go on indefinitely, but let's go back to the top level (numbered)
351 \# The easiest way to return to a previous indent value is by subtraction.
352 \# The argument to IL, above, was 1P+\w'\(bu\*[FWD 3p]', so we just reverse
353 \# it by putting a minus sign in front. The parentheses are required
354 \# for groff to evaluate the expression properly.
356 .IL -(1P+\w'\(bu\*[FWD 3p]')
357 .HI \w'\0.\0' \" Reset hanging indent for use with numbered items.
359 3.\0...and here we are.
360 .HI \" Again, notice that once HI has been set, you don't have to keep passing it an argument.
362 4.\0In order not to make the example too long, we'll stop here.
363 .IQ CLEAR \" Don't forget to cancel and/or clear indents!
376 .UNDERSCORE 3.75p "A \*[BU 2]recipe for nested lists using string tabs"
383 Although setting up string tabs is a bit more complex than setting
384 up indents, it's \*[BU 3]well worth the effort, especially for nested lists.
388 The PAD line, below, sets up two string tabs. The first (ST1)
389 is exactly the length of two figure spaces and a period. The
390 second (ST2) is simply "the remainder of the line."
394 .PAD "\*[ST1]\0.\0\*[ST1X]\*[ST2]#\*[ST2X]"
395 .ST 1 L \" String tabs must be "set" after being marked off in a line
396 .ST 2 J \" ST 1 will be set flush left, nofill; ST 2 will be justified.
402 .TN \" Use .TN here so text stays on the same baseline as the number in tab 1
403 This is the first item in the list. N\*[BU 2]otice how, just as in Example 3,
404 the first line hangs back from the remaining text, which is otherwise
410 This is the second item in the list. N\*[BU 2]otice that when setting "lists"
411 with tabs, there's no need to use the \*[BU 8]\\0 escape sequence after
412 the number/period combination in the input text.
416 Now, set up the indented bullet-point sublist. The PAD line
417 says: move forward 12 points (1 pica), then mark off a string
418 tab (ST3) that's the length of the bullet character; move foward
419 another three points, then make the next string tab (ST4) the
420 length of remainder of the line.
424 .PAD "\*[FWD 12p]\*[ST3]\(bu\*[ST3X]\*[FWD 3p]\*[ST4]#\*[ST4X]"
430 \*[DOWN 1p]\(bu\*[UP 1p]
432 This is the first line of a sublist with bullets. N\*[BU 2]otice how the
433 bullets and the text line up exactly the same as in Example 3.
436 \*[DOWN 1p]\(bu\*[UP 1p]
438 This is the second item of the sublist with bullets. For the fun of
441 en-dashed sub-sublist.
442 .BR \" We're in a fill mode right now, so you *must* terminate the line with BR
446 .PAD "\*[FWD 12p]\*[ST5]\(en\*[ST5X]\*[FWD 4p]\*[ST6]#\*[ST6X]"
452 \*[UP .75p]\(en\*[DOWN .75p]
454 Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
455 nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
459 \*[UP .75p]\(en\*[DOWN .75p]
461 At \*[BU 3]vero eos et accusam et justo duo dolores et ea rebum. Stet clita
462 kasd gubergren, no sea takimata sanctus est lorem ipsum dolor sit amet.
467 And here we are, back at the top-level numbered list with a minimum
473 Generally speaking, once you get the hang of string tabs and the
474 \*[BD]PAD\*[PREV] macro, you'll find setting up complex nested lists
475 (or anything similar to them) easier than with hanging indents.
486 .UNDERSCORE 3.75p "Word spacing"
488 .FAM P \" Palatino family
492 \# The "label" lines for the following are set in Helvetica bold, one
493 \# point smaller than the examples themselves. This demonstrates the
494 \# use of the groff inline escape \f[...] to change both family and
495 \# font inline. It also shows using the mom inline \*S[...].
497 \f[HB]\*S[-1]Normal word spacing\*S[+1]\*[PREV]
499 N\*[BU 1]o\*[BU 1]w \*[BU 1]is the time for all good men to come to the aid of the party.
501 \f[HB]\*S[-1]Word spacing adjusted by \*[UP 1p]\*[BU 3]+\*[DOWN 1p]\*[BU 1]2\*S[+1]\*[PREV]
504 N\*[BU 1]o\*[BU 1]w \*[BU 1]is the time for all good men to come to the aid of the party.
507 \f[HB]\*S[-1]Word spacing adjusted by \*[UP 1p]\*[BU 3]+\*[DOWN 1p]4\*S[+1]\*[PREV]
510 N\*[BU 1]o\*[BU 1]w \*[BU 1]is the time for all good men to come to the aid of the party.
513 \f[HB]\*S[-1]Word spacing adjusted by \*[UP 1p]\*[BU 3]+\*[DOWN 1p]6\*S[+1]\*[PREV]
516 N\*[BU 1]o\*[BU 1]w \*[BU 1]is the time for all good men to come to the aid of the party.
528 .UNDERSCORE 3.75p "Line kerning"
530 .FAM P \" Palatino family
535 \# Here, we set up some tabs so the examples can go into facing columns.
538 .TAB_SET 2 19.5P 19.5P L
541 .MCO \" Turn multi-columns on
543 \f[HB]\*S[-1]Unkerned line\*S[+1]\*[PREV]
545 "But this is \*[IT]important!\/"\*[PREV]she exclaimed.
547 \f[HB]\*S[-1]Line "tightened" \(en .RW .1\*S[+1]\*[PREV]
549 "But this is \*[IT]important!\/"\*[PREV]she exclaimed.
552 \# In the next line, notice that because it uses a different family
553 \# (Helvetica instead of Palatino), the RW macro doesn't affect it.
555 \f[HB]\*S[-1]Line "tightened" \(en .RW .2\*S[+1]\*[PREV]
557 "But this is \*[IT]important!\/"\*[PREV]she exclaimed.
559 \f[HB]\*S[-1]Line "tightened" \(en .RW .3\*S[+1]\*[PREV]
561 "But this is \*[IT]important!\/"\*[PREV]she exclaimed.
564 \f[HB]\*S[-1]Unkerned line\*S[+1]\*[PREV]
565 "But this is \*[IT]important!\/"\*[PREV]she exclaimed.
567 \f[HB]\*S[-1]Line "loosened" \(en .EW .1\*S[+1]\*[PREV]
569 "But this is \*[IT]important!\/"\*[PREV]she exclaimed.
571 \f[HB]\*S[-1]Line "loosened" \(en .EW .2\*S[+1]\*[PREV]
573 "But this is \*[IT]important!\/"\*[PREV]she exclaimed.
575 \f[HB]\*S[-1]Line "loosened" \(en .EW .3\*S[+1]\*[PREV]
577 "But this is \*[IT]important!\/"\*[PREV]she exclaimed.
588 .UNDERSCORE 3.75p "Cutaround using left\*[FU 2]/right indents, multi columns \
596 .BR_AT_LINE_KERN OFF \" In justified text, it's best to have this OFF
600 .TAB_SET 2 20.5P 18.5P J
604 \# The little picture of tux.
610 .DROPCAP L 3 COND 80 \" i.e. the letter L dropped 3 lines, condensed to 80% of its normal width
612 orem ipsum dolor sit amet, consetetur sa\%dip\%scing elitr, sed diam
613 nonumy eir\%mod tempor invidunt ut labore et dolore magna aliquyam erat,
617 At vero eos et accusam et justo duo dolores et ea rebum. Stet clita
618 kasd gubergren, no sea taki-
619 .SPREAD \" Force justify preceding line before starting indent
621 kimata sanctus est lorem ipsum dolor sit amet.
622 Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
623 nonumy eirmod tempor.
626 Invidunt ut labore et dolore magna ali\%qu\%yam erat, sed diam voluptua.
629 vero eos et accusam et justo duo dolores et ea rebum.
631 Stet clita kasd gubergren, no sea ta-
632 .SPREAD \" Force justify preceding line before quitting indent
634 kimata sanctus est lorem ipsum dolor sit amet. Lorem ipsum dolor
635 sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
636 in\%vi\%dunt ut labore et dolore magna aliquyam erat. Sed diam voluptua,
637 at vero eos et accusam et justo duo
640 dolores et ea rebum. Stet clita no kasd guber-
644 gren, no sea takimata sanctus est lorem ipsum
646 dolor sit amet. Consetetur sadipscing elitr, sed diam nonumy eirmod
647 tempor invidunt ut labore et dolore.
649 Magna aliquyam erat, sed diam voluptua, at vero eos et accusam.
650 Et justo duo dolores et ea
653 rebum, stet clita kasd gubergren. No sea
654 takimata sanctus est, lorem ipsum dolor sit amet.
656 Sit amet, consetetur sadipscing elitr, sed diam. Nonumy eirmod tempor
659 dunt ut labore et dolore magna. Ali-
661 quyam erat sed diam voluptua.
662 At vero eos et accusam et justo duo dolores et ea rebum stet.
665 Dolores et ea rebum stet clita kasd gubergren, no sea takimata
666 sanctus. Sadipscing elitr sed diam, nonumy eirmod tempor, invidunt
667 ut labore et dolore magna aliquyam erat. Sed diam voluptua, at vero
668 eos et accusam et justo duo dolores et ea rebum.