Annotation of embedaddon/bird/doc/sbase/dist/birddoc/groff/mapping, revision 1.1.1.1
1.1 misho 1: % linuxdoc replacement file
2: % translates into nroff, using ms macros
3: % manpages can be processed using the man macros
4: % does not use neqn for math.
5:
6: % Based on qwertz replacement file by Tom Gordon
7: % linuxdoc mods by mdw
8:
9: % Groff dependencies are few. To port to another roff:
10: % 1. Check and modify, if necessary, font changes. (e.g. In psroff the
11: % same fonts have other names.)
12: % 2. Check the code for including Encapsulated PostScript, generated
13: % for eps elements.
14: % 3. Also make versions of general.grops and math.grops, which are sed
15: % scripts translating character entities into groff character references.
16:
17:
18: <birddoc> + ".nr PS 11\n"
19:
20: % Hacked by mdw
21: ".nr PI 3n\n"
22: ".ds CF \\\\n\%\n"
23: ".ds CH \\&\n"
24: ".ds dR $\n" % dollar, to avoid EQN conflicts
25:
26: % Start with no TOC
27: ".ds printtoc\n"
28:
29: % Footnote style
30: ".nr FF 1\n"
31:
32: % James Clark's trick to prevent unintended paragraph
33: % breaks
34:
35: ".tr \\&\n"
36:
37: % horizontal line
38: ".de hl\n"
39: ".br\n"
40: "\\l'\\\\n(.lu-\\\\n(.iu'\n"
41: "..\n"
42:
43: % paragraph spacing
44: ".if n .nr PD 1v\n"
45:
46: % margins added by mdw
47: ".nr PO 0.25i\n"
48: ".po 0.25i\n"
49: ".nr LL 7.0i\n"
50: ".nr TL 7.0i\n"
51: ".nr HM 0i\n"
52: ".nr FM 0i\n"
53:
54: % Turn off right-margin filling
55: ".na\n"
56:
57: % h is 1 if first paragraph after heading
58:
59: ".nr h 0\n"
60:
61: % initialize heading level
62:
63: ".nr il 1\n"
64:
65: % Number registers for list
66:
67: ".nr bi 0\n" % initialize begin items
68: ".nr ll 0\n" % list level, stores current level
69: ".nr el 0\n" % current enumeration level
70:
71: % Not all list levels are enumerations, as
72: % itemizations can be embedded within enumerations
73: % and vice versa
74:
75: % type of list level is in \n(t\n(ll, where
76: % 0 : itemize, 1 : enumerate, 2: description
77:
78: % enumerator for an enumeration level is in
79: % \n(e\n(el -- i.e. \n(e1=2 means current item of
80: % enumeration level 1 is 2
81:
82: % context-sensitive paragraph macro
83:
84: % Bug: There's some problem using this to re-start paragraphs after the
85: % </verb> and </code>, so after verb and code I insert .LP. That's fine
86: % except that is loses indentation when using verb or code inside of a list.
87:
88: ".de Pp\n"
89: ".ie \\\\n(ll>0 \\{\\\n" % within list?
90: ".ie \\\\n(bi=1 \\{\\\n" % first par element of item?
91: ".nr bi 0\n" % reset bi flag
92: % if itemization, mark with a bullet
93: ".if \\\\n(t\\\\n(ll=0 \\{.IP \\\\(bu\\}\n" % itemize
94: % if enumeration: increment and print enumerator
95: % for this enumeration level
96: ".if \\\\n(t\\\\n(ll=1 \\{.IP \\\\n+(e\\\\n(el.\\}\n"
97: % if first par element of descrip, do nothing
98: ".\\}\n"
99: ".el .sp \n" % subsequent par element of item
100: ".\\}\n"
101: ".el \\{\\\n" % not within list
102: ".ie \\\\nh=1 \\{\\\n" % first par after heading
103: ".LP\n"
104: ".nr h 0\n" % reset h flag
105: ".\\}\n"
106: ".el .LP \n" % Changed from .PP, mdw
107: ".\\}\n"
108: ".nh\n"
109: "..\n"
110:
111:
112:
113: % for each level, a number register is created
114: % to store its type and current item number, where
115: % -1=bullet of an itemized list.
116:
117: % Format of list level enumerators
118:
119: ".ds f1 1\n"
120: ".ds f2 a\n"
121: ".ds f3 i\n"
122: ".ds f4 A\n"
123:
124: % Number registers for theorems
125: ".nr def 0\n"
126: ".nr prop 0\n"
127: ".nr lemma 0\n"
128: ".nr coroll 0\n"
129: ".nr proof 0\n"
130: ".nr theorem 0\n"
131:
132: % Reference commands
133:
134: % redefine superscript strings so that refer tags look like [this]
135:
136: ".ds \[. \[\n"
137: ".ds .\] \]\n"
138:
139: </birddoc>
140:
141: % set initial level of headings, in register il
142:
143: <article> + ".nr il 0" +
144: </article> + ".if '\\*[printtoc]'true' .PX\n"
145:
146: <report> + ".nr il 1" +
147: </report> + ".bp\n"
148: ".rm LH\n.rm RH\n"
149: ".TC" +
150:
151: <book> + ".nr il 1" +
152: </book> + ".rm LH\n.rm RH\n"
153: ".bp\n"
154: ".TC" +
155:
156: <notes>
157: </notes>
158:
159: <manpage> + ".nr il -1" +
160: </manpage>
161:
162: <progdoc>
163: </progdoc>
164:
165: % Hacked up titlepag stuff to look more reasonable. Titles and author
166: % names are now stored in strings, printed by the end of </titlepag>.
167: % Wake up! This uses groff-like long string names. You must use groff
168: % to format this.
169:
170: <titlepag> + ".ds mdwtitle\n"
171: ".ds mdwsubtitle\n"
172: ".ds mdwdate\n"
173: ".de printabstract\n"
174: "..\n" +
175: </titlepag> + "\\*[mdwtitle]\n"
176: ".br\n"
177: ".if !'\\*[mdwsubtitle]'' \\*[mdwsubtitle]\n"
178: ".br\n"
179: ".printauthor\n"
180: ".br\n"
181: "\\*[mdwdate]\n"
182: ".br\n"
183: ".printabstract\n"
184: ".br\n"
185:
186: %<title> + ".TL" +
187: %</title>
188:
189: <title> + ".ds mdwtitle "
190: </title> +
191:
192: %<subtitle> + ".br\n"
193: % ".ft R\n"
194: % ".SM" +
195: %</subtitle> + ".LG" +
196:
197: <subtitle> + ".ds mdwsubtitle "
198: </subtitle> +
199:
200: <date> + ".ds mdwdate "
201: </date> +
202:
203: <abstract> + ".de printabstract\n"
204: ".LP\n"
205: </abstract> + ".." +
206:
207: % author needs to be set up as its own macro, fired off from .printtitle.
208:
209: <author> + ".de printauthor" +
210: </author> + ".." +
211:
212: %<name> + ".AU" +
213: %</name>
214:
215: <name> + ".br" +
216: </name>
217:
218: <and>
219: </and>
220:
221: <thanks> "\\**\n"
222: ".FS" +
223: </thanks> + ".FE" +
224:
225: <inst> + ".br" +
226: </inst>
227:
228: %<newline> + ".br" +
229: <newline> + ".br"
230: </newline>
231:
232: <label>
233: </label>
234:
235: <header>
236: </header>
237:
238: <lhead> + ".EH '"
239: </lhead> "'''" +
240:
241: <rhead> + ".OH '''"
242: </rhead> "'" +
243:
244: <comment> + "(*" +
245: </comment> + "*)" +
246:
247: % New abstract given above --mdw
248: %<abstract> + ".AB" +
249: %</abstract> + ".AE" +
250:
251: <appendix> + ".af H1 A" +
252: </appendix>
253:
254: % limitation: no list of figures or tables. A table of contents
255: % is always generated for books and reports. Thus these next three tags
256: % are no-ops
257:
258: % For now, no table-of-contents in ASCII output. (Uncomment this if
259: % desired).
260: %<toc> + ".ds printtoc true"
261: %</toc>
262:
263: <toc>
264: </toc>
265:
266: <lof>
267: </lof>
268:
269: <lot>
270: </lot>
271:
272: <chapt> + ".bp\n"
273: ".NH \\n(il " +
274: </chapt>
275:
276: <sect> + ".NH 1+\\n(il" +
277: </sect>
278:
279: <sect1> + ".NH 2+\\n(il" +
280: </sect1>
281:
282: <sect2> + ".NH 3+\\n(il" +
283: </sect2>
284:
285: <sect3> + ".NH 4+\\n(il" +
286: </sect3>
287:
288: <sect4> + ".NH 5+\\n(il" +
289: </sect4>
290:
291: <heading> ".ds h "
292: </heading> + "\\*h\n"
293: ".XS \\n%\n"
294: "\\*(SN \\*h\n"
295: ".XE\n"
296: ".nr h 1\n" % set heading flag to true
297:
298: <p> + ".Pp" +
299: </p>
300:
301: <itemize> + ".nr ll +1\n" % increment list level
302: ".nr t\\n(ll 0\n" % set type of level to itemize
303: </itemize> + ".nr ll -1\n" % decrement list level
304:
305: <enum> + ".nr ll +1\n" % increment list level
306: ".nr el +1\n" % increment enumeration level
307: ".nr t\\n(ll 1\n" % set type of level to enum
308: ".nr e\\n(el 0 1\n" % initialize enumerator
309: ".af e\\n(el \\*(f\\n(el\n" % style of enumerator
310: ".if \\n(ll>1 .RS" +
311: </enum> + ".if \\n(ll>1 .RE\n"
312: ".br\n"
313: ".nr el -1\n" % decrement enumeration level
314: ".nr ll -1\n" % decrement list level
315:
316: <descrip> + ".RS\n"
317: ".nr ll +1\n" % increment list level
318: ".nr t\\n(ll 2\n" % set type of level to descrip
319: </descrip> + ".nr ll -1\n" % decrement list level
320: ".RE" +
321:
322: % number register bi means "begin item". Used in the .P macro to print
323: % bullets or numbers at beginning of first paragraph of an item.
324: % If bi=1 then the paragraph is the first one of the item.
325:
326: <item> + ".nr bi 1\n.Pp" +
327: </item>
328:
329: <tag> + ".IP \"\\fB"
330: </tag> "\\fR\"\n"
331: ".nr bi 1" +
332:
333: <m> ""
334: </m> ""
335:
336: <cf> ""
337: </cf> ""
338:
339: <cite> + ".\[\n[ID]\n.\]" +
340: </cite>
341:
342: <ncite> + ".\[\n[ID]\n.\]\n([NOTE])"
343: </ncite>
344:
345: <footnote> " (-- "
346: </footnote> "--)" +
347:
348: <sq> "\\*Q"
349: </sq> "\\*U"
350:
351: <lq> + ".RS\n"
352: ".nr LL \\n(LL-\\n(PI" +
353: </lq> + ".nr LL \\n(LL+\\n(PI\n"
354: ".RE" +
355:
356: <em> "\\fI"
357: </em> "\\fP"
358:
359: <bf> "\\fB"
360: </bf> "\\fR"
361:
362: <it> "\\fI"
363: </it> "\\fR"
364:
365: <sf> "\\fR"
366: </sf> "\\fR"
367:
368: <sl> "\\fI"
369: </sl> "\\fR"
370:
371: % Changed by mdw
372: <tt> "\\fC"
373: </tt> "\\fR"
374:
375: % Added by mdw
376: <cparam> "\\fI<"
377: </cparam> ">\\fR"
378:
379: <url> "[NAME] <\\fC[URL]\\fR>"
380: </url>
381:
382: <htmlurl> "[NAME]"
383: </htmlurl>
384:
385: <ref> "``[NAME]''"
386: </ref>
387:
388: <nidx> + "\\#"
389: </nidx> "\\n"
390:
391: <ncdx> + "\\#"
392: </ncdx> "\\n"
393:
394: <pageref> "??"
395: </pageref>
396:
397: <x>
398: </x>
399:
400: <mc>
401: </mc>
402:
403: <biblio> + ".\[\n"
404: "$LIST$\n"
405: ".\]" +
406: </biblio>
407:
408: <code> + ".DS L\n"
409: ".hl\n"
410: ".ft R\n" +
411:
412: </code> + ".hl\n"
413: ".DE\n"
414: ".ft P\n"
415: % ".Pp" + % continue previous paragraph (changed mdw)
416: ".LP"
417:
418: <verb> + ".DS L\n"
419: ".ft R\n" +
420:
421: </verb> + ".DE\n"
422: ".ft P\n"
423: % ".Pp" + % continue previous paragraph (changed mdw)
424: ".LP"
425:
426: % tscreen added by mdw
427: <tscreen> + ".br\n"
428: ".po 0.75i\n"
429: ".ll 6.0i\n"
430: ".ft C\n"
431: ".LP\n" % Used to be Pp
432: </tscreen> + ".br\n"
433: ".po 0.25i\n"
434: ".ll 7.0i\n"
435: ".ft R\n" % This might not be correct
436: ".LP\n" % Used to be Pp
437:
438: <quote> + ".br\n"
439: ".po 0.75i\n"
440: ".ll 6.0i\n"
441: ".nr LL 6.0i\n"
442: ".LP\n" % Used to be Pp
443: </quote> + ".br\n"
444: ".po 0.25i\n"
445: ".ll 7.0i\n"
446: ".nr LL 7.0i\n"
447: ".LP\n" % Used to be Pp
448:
449:
450:
451:
452: % theorems and such
453:
454: <def> + ".sp\n"
455: ".nr def \\n\[def\]+1\n"
456: ".B \"Definition \\n\[def\] \"" +
457: </def> + ".ft P\n.sp" +
458:
459: <prop> + ".sp\n"
460: ".nr prop \\n\[prop\]+1\n"
461: ".B \"Proposition \\n\[prop\] \"" +
462: </prop> + ".ft P\n.sp" +
463:
464:
465: <lemma> + ".sp\n"
466: ".nr lemma \\n\[lemma\]+1\n"
467: ".B \"Lemma \\n\[lemma\] \"" +
468: </lemma> + ".ft P\n.sp" +
469:
470: <coroll> + ".sp\n"
471: ".nr coroll \\n\[coroll\]+1\n"
472: ".B \"Corolloary \\n\[coroll\] \"" +
473: </coroll> + ".ft P\n.sp" +
474:
475: <proof> + ".sp\n"
476: ".nr proof \\n\[proof\]+1\n"
477: ".B \"Proof \\n\[proof\] \"" +
478: </proof> + ".ft P\n.sp" +
479:
480: <theorem> + ".sp\n"
481: ".nr theorem \\n\[theorem\]+1\n"
482: ".B \"Theorem \\n\[theorem\] \"" +
483: </theorem> + ".ft P\n.sp" +
484:
485: <thtag> + ".B\n("
486: </thtag> ")\n.I" +
487:
488: % mathematics -- this nroff version needs work.
489:
490: <f>
491: </f>
492:
493: <dm> + ".DS L" +
494: </dm> + ".DE" +
495:
496: <eq> + ".DS L" +
497: </eq> + ".DE" +
498:
499: <fr>
500: </fr>
501:
502: <nu> "{"
503: </nu> "} over "
504:
505: <de> "{"
506: </de> "}"
507:
508: <lim>
509: </lim>
510:
511: <op>
512: </op>
513:
514: <ll> " from {"
515: </ll> "}"
516:
517: <ul> " to {"
518: </ul> "}"
519:
520: <opd>
521: </opd>
522:
523: <pr> " prod "
524: </pr>
525:
526: <in> " int "
527: </in>
528:
529: <sum> " sum "
530: </sum>
531:
532: % limitation: eqn only does square roots!
533:
534: <root> " sqrt {"
535: </root> "}"
536:
537: <ar> + ".TS\n"
538: "center, tab(|) ;\n"
539: "[ca]." +
540: </ar> + ".TE" +
541:
542: <arr> "\n"
543: </arr>
544:
545: <arc> "|"
546: </arc>
547:
548:
549: <sup> " sup {"
550: </sup> "}"
551:
552: <inf> " sub {"
553: </inf> "}"
554:
555:
556: <unl> "{"
557: </unl> "} under "
558:
559: <ovl> "{"
560: </ovl> "} bar "
561:
562: <rf> " bold{"
563: </rf> "}"
564:
565: <v> "{"
566: </v> "} vec "
567:
568: % limitation: no calligraphic characters, using helvetica italics instead. Is there a better font?
569:
570: <fi> "\\fI"
571: </fi> "\\fP"
572:
573: <phr> " roman }"
574: </phr> "}"
575:
576:
577: <tu> + ".br" +
578: </tu>
579:
580: % figures
581:
582: <figure> % + ".KF" +
583: </figure> % + ".KE" +
584:
585: <eps> + ".if t .PSPIC [file].ps\n"
586: ".if n .sp 4" +
587: </eps>
588:
589: % Are TeX units properly handled by this translation of ph?
590:
591: <ph> + ".sp [VSPACE]" +
592: </ph>
593:
594: <caption> + ".sp\n.ce" +
595: </caption>
596:
597: % tables
598:
599: <table> + ".KF\n.R" +
600: </table> + ".KE" +
601:
602: <tabular> + ".TS\n"
603: "center, tab(|) ; \n"
604: "[ca]." +
605: </tabular> + ".TE" +
606:
607: <rowsep> "\n" +
608: </rowsep>
609:
610: <colsep> "|"
611: </colsep>
612:
613: %<hline> + "_" +
614: % gregh
615: <hline> + ".hl\n" +
616:
617: </hline>
618:
619: <slides> + ".nr PS 18" +
620: </slides>
621:
622: <slide>
623: </slide> + ".bp\n\\&" +
624:
625: % letters -- replacement for email, using mh format.
626:
627: <letter> + ".nf" +
628: </letter> +
629:
630: <from> + "From: "
631: <to> + "To: "
632:
633: <address> + ".de Ad\n"
634: </address> + ".." +
635:
636: <email> " <"
637: </email> ">"
638:
639: <subject> + "Subject: "
640:
641: <sref> + "Sref: "
642: <rref> + "In-Reply-To: "
643:
644: <cc> + "cc: "
645:
646: <opening> + ".fi\n.LP" +
647:
648: <closing> + ".LP" +
649:
650: <encl> + ".XP\n"
651: "encl: "
652:
653: <ps> + ".LP\np.s."
654:
655:
656: % end of roff replacement file
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>