📄 mapping
字号:
% 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -