⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tmac.groff_ms

📁 早期freebsd实现
💻 GROFF_MS
📖 第 1 页 / 共 3 页
字号:
\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 + -