bird/doc/sbase/dist/birddoc/groff/mapping

657 lines
12 KiB
Text
Raw Normal View History

% linuxdoc replacement file
% translates into nroff, using ms macros
% manpages can be processed using the man macros
% does not use neqn for math.
% Based on qwertz replacement file by Tom Gordon
% linuxdoc mods by mdw
% Groff dependencies are few. To port to another roff:
% 1. Check and modify, if necessary, font changes. (e.g. In psroff the
% same fonts have other names.)
% 2. Check the code for including Encapsulated PostScript, generated
% for eps elements.
% 3. Also make versions of general.grops and math.grops, which are sed
% scripts translating character entities into groff character references.
<birddoc> + ".nr PS 11\n"
% Hacked by mdw
".nr PI 3n\n"
".ds CF \\\\n\%\n"
".ds CH \\&\n"
".ds dR $\n" % dollar, to avoid EQN conflicts
% Start with no TOC
".ds printtoc\n"
% Footnote style
".nr FF 1\n"
% James Clark's trick to prevent unintended paragraph
% breaks
".tr \\&\n"
% horizontal line
".de hl\n"
".br\n"
"\\l'\\\\n(.lu-\\\\n(.iu'\n"
"..\n"
% paragraph spacing
".if n .nr PD 1v\n"
% margins added by mdw
".nr PO 0.25i\n"
".po 0.25i\n"
".nr LL 7.0i\n"
".nr TL 7.0i\n"
".nr HM 0i\n"
".nr FM 0i\n"
% Turn off right-margin filling
".na\n"
% h is 1 if first paragraph after heading
".nr h 0\n"
% initialize heading level
".nr il 1\n"
% Number registers for list
".nr bi 0\n" % initialize begin items
".nr ll 0\n" % list level, stores current level
".nr el 0\n" % current enumeration level
% Not all list levels are enumerations, as
% itemizations can be embedded within enumerations
% and vice versa
% type of list level is in \n(t\n(ll, where
% 0 : itemize, 1 : enumerate, 2: description
% enumerator for an enumeration level is in
% \n(e\n(el -- i.e. \n(e1=2 means current item of
% enumeration level 1 is 2
% context-sensitive paragraph macro
% Bug: There's some problem using this to re-start paragraphs after the
% </verb> and </code>, so after verb and code I insert .LP. That's fine
% except that is loses indentation when using verb or code inside of a list.
".de Pp\n"
".ie \\\\n(ll>0 \\{\\\n" % within list?
".ie \\\\n(bi=1 \\{\\\n" % first par element of item?
".nr bi 0\n" % reset bi flag
% if itemization, mark with a bullet
".if \\\\n(t\\\\n(ll=0 \\{.IP \\\\(bu\\}\n" % itemize
% if enumeration: increment and print enumerator
% for this enumeration level
".if \\\\n(t\\\\n(ll=1 \\{.IP \\\\n+(e\\\\n(el.\\}\n"
% if first par element of descrip, do nothing
".\\}\n"
".el .sp \n" % subsequent par element of item
".\\}\n"
".el \\{\\\n" % not within list
".ie \\\\nh=1 \\{\\\n" % first par after heading
".LP\n"
".nr h 0\n" % reset h flag
".\\}\n"
".el .LP \n" % Changed from .PP, mdw
".\\}\n"
".nh\n"
"..\n"
% for each level, a number register is created
% to store its type and current item number, where
% -1=bullet of an itemized list.
% Format of list level enumerators
".ds f1 1\n"
".ds f2 a\n"
".ds f3 i\n"
".ds f4 A\n"
% Number registers for theorems
".nr def 0\n"
".nr prop 0\n"
".nr lemma 0\n"
".nr coroll 0\n"
".nr proof 0\n"
".nr theorem 0\n"
% Reference commands
% redefine superscript strings so that refer tags look like [this]
".ds \[. \[\n"
".ds .\] \]\n"
</birddoc>
% set initial level of headings, in register il
<article> + ".nr il 0" +
</article> + ".if '\\*[printtoc]'true' .PX\n"
<report> + ".nr il 1" +
</report> + ".bp\n"
".rm LH\n.rm RH\n"
".TC" +
<book> + ".nr il 1" +
</book> + ".rm LH\n.rm RH\n"
".bp\n"
".TC" +
<notes>
</notes>
<manpage> + ".nr il -1" +
</manpage>
<progdoc>
</progdoc>
% Hacked up titlepag stuff to look more reasonable. Titles and author
% names are now stored in strings, printed by the end of </titlepag>.
% Wake up! This uses groff-like long string names. You must use groff
% to format this.
<titlepag> + ".ds mdwtitle\n"
".ds mdwsubtitle\n"
".ds mdwdate\n"
".de printabstract\n"
"..\n" +
</titlepag> + "\\*[mdwtitle]\n"
".br\n"
".if !'\\*[mdwsubtitle]'' \\*[mdwsubtitle]\n"
".br\n"
".printauthor\n"
".br\n"
"\\*[mdwdate]\n"
".br\n"
".printabstract\n"
".br\n"
%<title> + ".TL" +
%</title>
<title> + ".ds mdwtitle "
</title> +
%<subtitle> + ".br\n"
% ".ft R\n"
% ".SM" +
%</subtitle> + ".LG" +
<subtitle> + ".ds mdwsubtitle "
</subtitle> +
<date> + ".ds mdwdate "
</date> +
<abstract> + ".de printabstract\n"
".LP\n"
</abstract> + ".." +
% author needs to be set up as its own macro, fired off from .printtitle.
<author> + ".de printauthor" +
</author> + ".." +
%<name> + ".AU" +
%</name>
<name> + ".br" +
</name>
<and>
</and>
<thanks> "\\**\n"
".FS" +
</thanks> + ".FE" +
<inst> + ".br" +
</inst>
%<newline> + ".br" +
<newline> + ".br"
</newline>
<label>
</label>
<header>
</header>
<lhead> + ".EH '"
</lhead> "'''" +
<rhead> + ".OH '''"
</rhead> "'" +
<comment> + "(*" +
</comment> + "*)" +
% New abstract given above --mdw
%<abstract> + ".AB" +
%</abstract> + ".AE" +
<appendix> + ".af H1 A" +
</appendix>
% limitation: no list of figures or tables. A table of contents
% is always generated for books and reports. Thus these next three tags
% are no-ops
% For now, no table-of-contents in ASCII output. (Uncomment this if
% desired).
%<toc> + ".ds printtoc true"
%</toc>
<toc>
</toc>
<lof>
</lof>
<lot>
</lot>
<chapt> + ".bp\n"
".NH \\n(il " +
</chapt>
<sect> + ".NH 1+\\n(il" +
</sect>
<sect1> + ".NH 2+\\n(il" +
</sect1>
<sect2> + ".NH 3+\\n(il" +
</sect2>
<sect3> + ".NH 4+\\n(il" +
</sect3>
<sect4> + ".NH 5+\\n(il" +
</sect4>
<heading> ".ds h "
</heading> + "\\*h\n"
".XS \\n%\n"
"\\*(SN \\*h\n"
".XE\n"
".nr h 1\n" % set heading flag to true
<p> + ".Pp" +
</p>
<itemize> + ".nr ll +1\n" % increment list level
".nr t\\n(ll 0\n" % set type of level to itemize
</itemize> + ".nr ll -1\n" % decrement list level
<enum> + ".nr ll +1\n" % increment list level
".nr el +1\n" % increment enumeration level
".nr t\\n(ll 1\n" % set type of level to enum
".nr e\\n(el 0 1\n" % initialize enumerator
".af e\\n(el \\*(f\\n(el\n" % style of enumerator
".if \\n(ll>1 .RS" +
</enum> + ".if \\n(ll>1 .RE\n"
".br\n"
".nr el -1\n" % decrement enumeration level
".nr ll -1\n" % decrement list level
<descrip> + ".RS\n"
".nr ll +1\n" % increment list level
".nr t\\n(ll 2\n" % set type of level to descrip
</descrip> + ".nr ll -1\n" % decrement list level
".RE" +
% number register bi means "begin item". Used in the .P macro to print
% bullets or numbers at beginning of first paragraph of an item.
% If bi=1 then the paragraph is the first one of the item.
<item> + ".nr bi 1\n.Pp" +
</item>
<tag> + ".IP \"\\fB"
</tag> "\\fR\"\n"
".nr bi 1" +
<m> ""
</m> ""
<cf> ""
</cf> ""
<cite> + ".\[\n[ID]\n.\]" +
</cite>
<ncite> + ".\[\n[ID]\n.\]\n([NOTE])"
</ncite>
<footnote> " (-- "
</footnote> "--)" +
<sq> "\\*Q"
</sq> "\\*U"
<lq> + ".RS\n"
".nr LL \\n(LL-\\n(PI" +
</lq> + ".nr LL \\n(LL+\\n(PI\n"
".RE" +
<em> "\\fI"
</em> "\\fP"
<bf> "\\fB"
</bf> "\\fR"
<it> "\\fI"
</it> "\\fR"
<sf> "\\fR"
</sf> "\\fR"
<sl> "\\fI"
</sl> "\\fR"
% Changed by mdw
<tt> "\\fC"
</tt> "\\fR"
% Added by mdw
<cparam> "\\fI<"
</cparam> ">\\fR"
<url> "[NAME] <\\fC[URL]\\fR>"
</url>
<htmlurl> "[NAME]"
</htmlurl>
<ref> "``[NAME]''"
</ref>
<nidx> + "\\#"
</nidx> "\\n"
<ncdx> + "\\#"
</ncdx> "\\n"
<pageref> "??"
</pageref>
<x>
</x>
<mc>
</mc>
<biblio> + ".\[\n"
"$LIST$\n"
".\]" +
</biblio>
<code> + ".DS L\n"
".hl\n"
".ft R\n" +
</code> + ".hl\n"
".DE\n"
".ft P\n"
% ".Pp" + % continue previous paragraph (changed mdw)
".LP"
<verb> + ".DS L\n"
".ft R\n" +
</verb> + ".DE\n"
".ft P\n"
% ".Pp" + % continue previous paragraph (changed mdw)
".LP"
% tscreen added by mdw
<tscreen> + ".br\n"
".po 0.75i\n"
".ll 6.0i\n"
".ft C\n"
".LP\n" % Used to be Pp
</tscreen> + ".br\n"
".po 0.25i\n"
".ll 7.0i\n"
".ft R\n" % This might not be correct
".LP\n" % Used to be Pp
<quote> + ".br\n"
".po 0.75i\n"
".ll 6.0i\n"
".nr LL 6.0i\n"
".LP\n" % Used to be Pp
</quote> + ".br\n"
".po 0.25i\n"
".ll 7.0i\n"
".nr LL 7.0i\n"
".LP\n" % Used to be Pp
% theorems and such
<def> + ".sp\n"
".nr def \\n\[def\]+1\n"
".B \"Definition \\n\[def\] \"" +
</def> + ".ft P\n.sp" +
<prop> + ".sp\n"
".nr prop \\n\[prop\]+1\n"
".B \"Proposition \\n\[prop\] \"" +
</prop> + ".ft P\n.sp" +
<lemma> + ".sp\n"
".nr lemma \\n\[lemma\]+1\n"
".B \"Lemma \\n\[lemma\] \"" +
</lemma> + ".ft P\n.sp" +
<coroll> + ".sp\n"
".nr coroll \\n\[coroll\]+1\n"
".B \"Corolloary \\n\[coroll\] \"" +
</coroll> + ".ft P\n.sp" +
<proof> + ".sp\n"
".nr proof \\n\[proof\]+1\n"
".B \"Proof \\n\[proof\] \"" +
</proof> + ".ft P\n.sp" +
<theorem> + ".sp\n"
".nr theorem \\n\[theorem\]+1\n"
".B \"Theorem \\n\[theorem\] \"" +
</theorem> + ".ft P\n.sp" +
<thtag> + ".B\n("
</thtag> ")\n.I" +
% mathematics -- this nroff version needs work.
<f>
</f>
<dm> + ".DS L" +
</dm> + ".DE" +
<eq> + ".DS L" +
</eq> + ".DE" +
<fr>
</fr>
<nu> "{"
</nu> "} over "
<de> "{"
</de> "}"
<lim>
</lim>
<op>
</op>
<ll> " from {"
</ll> "}"
<ul> " to {"
</ul> "}"
<opd>
</opd>
<pr> " prod "
</pr>
<in> " int "
</in>
<sum> " sum "
</sum>
% limitation: eqn only does square roots!
<root> " sqrt {"
</root> "}"
<ar> + ".TS\n"
"center, tab(|) ;\n"
"[ca]." +
</ar> + ".TE" +
<arr> "\n"
</arr>
<arc> "|"
</arc>
<sup> " sup {"
</sup> "}"
<inf> " sub {"
</inf> "}"
<unl> "{"
</unl> "} under "
<ovl> "{"
</ovl> "} bar "
<rf> " bold{"
</rf> "}"
<v> "{"
</v> "} vec "
% limitation: no calligraphic characters, using helvetica italics instead. Is there a better font?
<fi> "\\fI"
</fi> "\\fP"
<phr> " roman }"
</phr> "}"
<tu> + ".br" +
</tu>
% figures
<figure> % + ".KF" +
</figure> % + ".KE" +
<eps> + ".if t .PSPIC [file].ps\n"
".if n .sp 4" +
</eps>
% Are TeX units properly handled by this translation of ph?
<ph> + ".sp [VSPACE]" +
</ph>
<caption> + ".sp\n.ce" +
</caption>
% tables
<table> + ".KF\n.R" +
</table> + ".KE" +
<tabular> + ".TS\n"
"center, tab(|) ; \n"
"[ca]." +
</tabular> + ".TE" +
<rowsep> "\n" +
</rowsep>
<colsep> "|"
</colsep>
%<hline> + "_" +
% gregh
<hline> + ".hl\n" +
</hline>
<slides> + ".nr PS 18" +
</slides>
<slide>
</slide> + ".bp\n\\&" +
% letters -- replacement for email, using mh format.
<letter> + ".nf" +
</letter> +
<from> + "From: "
<to> + "To: "
<address> + ".de Ad\n"
</address> + ".." +
<email> " <"
</email> ">"
<subject> + "Subject: "
<sref> + "Sref: "
<rref> + "In-Reply-To: "
<cc> + "cc: "
<opening> + ".fi\n.LP" +
<closing> + ".LP" +
<encl> + ".XP\n"
"encl: "
<ps> + ".LP\np.s."
% end of roff replacement file