📄 tmac.groff_ms
字号:
\D'l -(u;\\n[.l]-\\n[.i]) 0'\\D'l 0 -|\\n[par*box-top]u'. br. sp -1. in \\n[par*box-in]u. ll \\n[par*box-ll]u. vpt \\n[par*box-vpt].\}.el \!.par*box-draw \\$1 \\$2...de @SH.par@finish.\" Keep together the heading and the first two lines of the next paragraph..ne 3v+\\n[\\n[.ev]:PD]u+\\n(.Vu.sp 1.ft B...\" TL, AU, and AI are aliased to these in cov*ab-init..de par@TL.par@finish.sp 1.ft B.ps +2.vs +3p.ce 9999...de par@AU.par@finish.sp 1.ft I.ce 9999...de par@AI.par@finish.sp .5.ce 9999...\" In paragraph macros..de NL.ps \\n[\\n[.ev]:PS]...de SM.ps -2...de LG.ps +2...de R.ft R...\" par*define-font-macro macro font.de par*define-font-macro.de \\$1.ie \\\\n[.$] \{\. nr par*prev-font \\\\n[.f]\&\\\\$3\f[\\$2]\\\\$1\f[\\\\n[par*prev-font]]\\\\$2.\}.el .ft \\$2\\.....par*define-font-macro B B.par*define-font-macro I I.par*define-font-macro BI BI.par*define-font-macro CW CR.\" underline a word.de UL\Z'\\$1'\v'.25m'\D'l \w'\\$1'u 0'\v'-.25m'\\$2...\" box a word.de BX.nr par*bxw \w'\\$1'+.4m\Z'\v'.25m'\D'l 0 -1m'\D'l \\n[par*bxw]u 0'\D'l 0 1m'\D'l -\\n[par*bxw]u 0''\\Z'\h'.2m'\\$1'\\h'\\n[par*bxw]u'...\" The first time UX is used, put a registered mark after it..ds par*ux-rg \(rg.de UX\s[\\n[.s]*8u/10u]UNIX\s0\\$1\\*[par*ux-rg].ds par*ux-rg...ds par@sup-start \v'-.9m\s'\En[.s]*7u/10u'+.7m'.als { par@sup-start.ds par@sup-end \v'-.7m\s0+.9m'.als } par@sup-end.\" footnote paragraphs.\" FF is the footnote format.nr FF 0.\" This can be redefined. It gets a second argument of `no' if the first.\" argument was supplied by the user, rather than automatically..de FP.br.if !d par*fp!\\n[FF] \{\. @error unknown footnote format `\\n[FF]'. nr FF 0.\}.ie '\\$2'no' .par*fp!\\n[FF]-no "\\$1".el .par*fp!\\n[FF] "\\$1"...de par*fp!0.@PP\&\\*[par@sup-start]\\$1\\*[par@sup-end]\ \c...de par*fp!0-no.@PP\&\\$1\ \c...de par*fp!1.@PP\&\\$1.\ \c...de par*fp!1-no.@PP\&\\$1\ \c...de par*fp!2.@LP\&\\$1.\ \c...de par*fp!2-no.@LP\&\\$1\ \c...de par*fp!3.@IP "\\$1." (u;\\n[\\n[.ev]:PI]*2)...de par*fp!3-no.@IP "\\$1" (u;\\n[\\n[.ev]:PI]*2)...\" ***************************.\" ******** module nh ********.\" ***************************.\" Numbered headings..\" nh*hl is the level of the last heading.nr nh*hl 0.\" numbered heading.de @NH.ie '\\$1'S' \{\. shift. nr nh*hl 0. while \\n[.$] \{\. nr nh*hl +1. nr H\\n[nh*hl] 0\\$1. shift. \}. if !\\n[nh*hl] \{\. nr H1 1. nr nh*hl 1. @error missing arguments to .NH S. \}.\}.el \{\. nr nh*ohl \\n[nh*hl]. ie \\n[.$] \{\. nr nh*hl 0\\$1. ie \\n[nh*hl]<=0 \{\. nr nh*ohl 0. nr nh*hl 1. \}. el \{\. if \\n[nh*hl]-\\n[nh*ohl]>1 \. @warning .NH \\n[nh*ohl] followed by .NH \\n[nh*hl]. \}. \}. el .nr nh*hl 1. while \\n[nh*hl]>\\n[nh*ohl] \{\. nr nh*ohl +1. nr H\\n[nh*ohl] 0. \}. nr H\\n[nh*hl] +1.\}.ds SN.nr nh*i 0.while \\n[nh*i]<\\n[nh*hl] \{\. nr nh*i +1. as SN \\n[H\\n[nh*i]]..\}.SH\\*[SN]...\" ****************************.\" ******** module toc ********.\" ****************************.\" Table of contents generation..de @XS.da toc*div.ev h.ie \\n[.$] .XA "\\$1".el .XA...de @div-end!toc*div.XE...de XA.ie '\\n(.z'toc*div' \{\. if d toc*num .toc*end-entry. ie \\n[.$] \{\. ie '\\$1'no' .ds toc*num. el .ds toc*num "\\$1. \}. el .ds toc*num \\n%. LP. na. ll -8n. in (n;0\\$2).\}.el .@error XA without XS...de XE.ie '\\n(.z'toc*div' \{\. if d toc*num .toc*end-entry. ev. di.\}.el .@error XS without XE...de toc*end-entry\\a\\t\\*[toc*num].br.rm toc*num...de PX.1C.if !'\\$1'no' \{\. ce 1. ps \\n[PS]+2. ft B\\*[TOC]. ft. ps.\}.nf.char \[toc*leader-char] .\h'1m'.lc \[toc*leader-char].ta (u;\\n[.l]-\\n[.i]-\w'000') (u;\\n[.l]-\\n[.i])R.sp 2.toc*div.par@reset...\" print the table of contents on page i.de TC.P1.pg@begin 1 i.PX \\$1...\" ****************************.\" ******** module eqn ********.\" ****************************.\" Eqn support..de EQ...de EN...de @EQ.br.ds eqn*num "\\$2.ie '\\$1'L' .nr eqn*type 0.el \{\. ie '\\$1'I' .nr eqn*type 1. el \{\. nr eqn*type 2. if !'\\$1'C' .ds eqn*num "\\$1. \}.\}.di eqn*div.in 0.nf...de @div-end!eqn*div.@EN...\" Note that geqn mark and lineup work correctly in centered equations..de @EN.ie !'\\n(.z'eqn*div' .@error-recover mismatched EN.el \{\. br. di. nr eqn*have-num 0. if !'\\*[eqn*num]'' .nr eqn*have-num 1. if \\n[dl]:\\n[eqn*have-num] \{\. sp \\n[DD]u. par@reset. ds eqn*tabs \\n[.tabs]. nf. ie \\n[dl] \{\. ds@need \\n[dn]u-1v+\n[.V]u. chop eqn*div. ie \\n[eqn*type]=0 \{\. ta (u;\\n[.l]-\\n[.i])R\\*[eqn*div]\t\\*[eqn*num]. \}. el \{\. ie \\n[eqn*type]=1 .ta \\n[DI]u \(u;\\n[.l]-\\n[.i])R. el .ta (u;\\n[.l]-\\n[.i]/2)C \(u;\\n[.l]-\\n[.i])R\t\\*[eqn*div]\t\\*[eqn*num]. \}. \}. el \{\. ta (u;\\n[.l]-\\n[.i])R\t\\*[eqn*num]. \}. sp \\n[DD]u. fi. ta \\*[eqn*tabs]. \}.\}...\" ****************************.\" ******** module tbl ********.\" ****************************.\" Tbl support..nr tbl*have-header 0.de TS.\" The break is necessary in the case where the first page has not yet begun..br.sp \\n[DD]u.if '\\$1'H' .di tbl*header-div...de tbl@top-hook.if \\n[tbl*have-header] \{\. ie \\n[.t]-\\n[tbl*header-ht]-1v .tbl*print-header. el .sp \\n[.t]u.\}...de tbl*print-header.ev nf.tbl*header-div.ev.mk #T...de TH.ie '\\n[.z]'tbl*header-div' \{\. nr T. 0. T#. br. di. ie \\n[dn]+\\n[FM]+\\n[HM]+2v>=\\n[.p] \{\. @error ridiculously long table header. ds@need \\n[dn]. tbl*print-header. \}. el \{\. nr tbl*header-ht \\n[dn]. ds@need \\n[dn]u+1v. tbl*print-header. nr tbl*have-header 1. \}.\}.el .@error-recover .TH without .TS H...de @div-end!tbl*header-div.TH.TE...de TE.ie '\\n(.z'tbl*header-div' .@error-recover .TS H but no .TH before .TE.el \{\. nr tbl*have-header 0. sp \\n[DD]u.\}.\" reset tabs.TA...de tbl@bottom-hook.if \\n[tbl*have-header] \{\. nr T. 1. T#.\}...de T&...\" ****************************.\" ******** module pic ********.\" ****************************.\" Pic support..\" PS height width.de PS.br.sp \\n[DD]u.ie \\n[.$]<2 .@error bad arguments to PS (not preprocessed with pic?).el \{\. ds@need (u;\\$1)+1v. in +(u;\\n[.l]-\\n[.i]-\\$2/2>?0).\}...de PE.par@reset.sp \\n[DD]u+.5m...\" ****************************.\" ******** module ref ********.\" ****************************.\" Refer support..de ]-.rm [A [B [C [D [E [G [I [J [N [O [P [Q [R [S [T [V.rm ref*string...\" Other.ds ref*spec!0 Q A T1 S V N P I C D O.\" Journal article.ds ref*spec!1 Q A T2 J S V N P I C D O.\" Book.ds ref*spec!2 Q A T1 S V P I C D O.\" Article within book.ds ref*spec!3 Q A T2 B E S V P I C D O.\" Tech report.ds ref*spec!4 Q A T2 R G P I C D O.\" ][ type.de ][.if r [T \{\. als [T1 [T. als [T2 [T.\}.ie d ref*spec!\\$1 .ref*build \\*[ref*spec!\\$1].el \{\. @error unknown reference type `\\$1'. ref*build \\*[ref*spec!0].\}.ref*print.rm ref*string.rm [F [T1 [T2...\" start of reference number.ds [. \\*[par@sup-start].\" end of reference number.ds .] \\*[par@sup-end].\" period before reference.ds <. ..\" period after reference.ds >. \" empty.\" comma before reference.ds <, ,.\" comma after reference.ds >, \" empty.\" start collected references.de ]<.als ref*print ref*end-print.SH\&\\*[REFERENCES].par@reset...\" end collected references.de ]>.par@finish.als ref*print ref*normal-print...de ref*normal-print.ie d [F .FS "\\*([.\\*([F\\*(.]".el .FS \&\\*[ref*string].FE...de ref*end-print.ie d [F .IP "\\*([F.".el .XP\\*[ref*string]...als ref*print ref*normal-print.de ref*build.rm ref*string ref*post-punct.nr ref*suppress-period 1.while \\n[.$] \{\. if d [\\$1 \{\. ie d ref*add-\\$1 .ref*add-\\$1. el .ref*add-dflt \\$1. \}. shift.\}.\" now add a final period.ie d ref*string \{\. if !\\n[ref*suppress-period] .as ref*string .. if d ref*post-punct \{\. as ref*string "\\*[ref*post-punct]. rm ref*post-punct. \}.\}.el .ds ref*string...de ref*add-T1.ref*field T , "\fI" "" "\fP".if r [T .nr ref*suppress-period \\n([T...de ref*add-T2.ref*field T , "\\*Q" "" "\\*U".if r [T .nr ref*suppress-period \\n([T...de ref*add-P.ie \\n([P>0 .ref*field P , "pp. ".el .ref*field P , "p. "...de ref*add-J.ref*field J , \fI "" \fP...de ref*add-D.ref*field D "" ( )...de ref*add-E.ref*field E , "ed. "...de ref*add-G.ref*field G "" ( )...de ref*add-B.ref*field B "" "in \fI" "" \fP...de ref*add-O.ref*field O ..ie r [O .nr ref*suppress-period \\n([O.el .nr ref*suppress-period 1...de ref*add-A.ref*field A ,.if r [A .nr ref*suppress-period \\n([A...de ref*add-dflt.ref*field \\$1 ,...\" First argument is the field letter..\" Second argument is the punctuation character to use to separate this field.\" from the previous field..\" Third argument is a string with which to prefix this field..\" Fourth argument is a string with which to postfix this field..\" Fifth argument is a string to add after the punctuation character supplied.\" by the next field..de ref*field.if d ref*string \{\. ie d ref*post-punct \{\. as ref*string "\\$2\\*[ref*post-punct] \". rm ref*post-punct. \}. el .as ref*string "\\$2 \".\}.as ref*string "\\$3\\*([\\$1\\$4.if \\n[.$]>4 .ds ref*post-punct "\\$5.nr ref*suppress-period 0...\" ****************************.\" ******** module acc ********.\" ****************************.\" Accents and special characters..ds Q \(lq.ds U \(rq.ds - \(em.\" Characters.\" The idea of this definition is for the top of the 3 to be at the x-height..if !c\[yogh] .char \[yogh] \Z'\v'\w'x'*0-\En[rst]u'\s[\En[.s]*8u/10u]\\v'\w'3'*0+\En[rst]u'3\s0'\h'\w'\s[\En[.s]*8u/10u]3'u'.\" Accents.de acc*over-def.ds \\$1 \Z'\v'(u;\w'x'*0+\En[rst]-\En[.cht])'\\h'(u;-\En[skw]+(-\En[.w]-\w'\\$2'/2)+\En[.csk])'\\$2'...de acc*under-def.ds \\$1 \Z'\v'\En[.cdp]u'\h'(u;-\En[.w]-\w'\\$2'/2)'\\$2'...de acc*slash-def.ds \\$1 \Z'\h'(u;-\En[.w]-\w'\\$2'/2)'\\v'(u;\En[.cdp]-\En[.cht]+\En[rst]+\En[rsb]/2)'\\$2'...de acc*prefix-def.ds \\$1 \Z'\h'(u;\w'x'-\w'\\$2'/2)'\\$2'...acc*prefix-def ' \'.acc*prefix-def ` \`.acc*prefix-def ^ ^.acc*prefix-def , \(ac.acc*prefix-def : \(ad.acc*prefix-def ~ ~.\" improved accent marks.de AM.acc*over-def ' \'.acc*over-def ` \`.acc*over-def ^ ^.acc*over-def ~ ~.acc*over-def : \(ad.acc*over-def v \(ah.acc*over-def _ \(a-.acc*over-def o \(ao.acc*under-def , \(ac.acc*under-def . \s[\En[.s]*8u/10u]\v'.2m'.\v'-.2m'\s0.acc*under-def hook \(ho.acc*slash-def / /.char \[hooko] o\\\\*[hook].ds q \[hooko].ds 3 \[yogh].ds D- \(-D\" Icelandic uppercase eth.ds d- \(Sd\" Icelandic lowercase eth.ds Th \(TP\" Icelandic uppercase thorn.ds th \(Tp\" Icelandic lowercase thorn.ds 8 \(ss\" German double s.ds Ae \(AE\" AE ligature.ds ae \(ae\" ae ligature.ds Oe \(OE\" OE ligature.ds oe \(oe\" oe ligature.ds ? \(r?\" upside down ?.ds ! \(r!\" upside down !...\" Make sure that no blank lines creep in at the end of this file.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -