mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-23 10:11:53 +00:00
a13eaf219a
programmer's guide (\raggedbottom etc.). Also, omit "\usepackage{t1enc}", so that bullets work now.
657 lines
12 KiB
Plaintext
657 lines
12 KiB
Plaintext
% 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
|