186 lines
3.2 KiB
Plaintext
186 lines
3.2 KiB
Plaintext
|
.\" -*- mode: nroff -*-
|
|||
|
.ig
|
|||
|
|
|||
|
hdmisc.tmac
|
|||
|
|
|||
|
This file is part of groff, the GNU roff type-setting system.
|
|||
|
|
|||
|
Copyright (C) 2005-2014 Free Software Foundation, Inc.
|
|||
|
written by Joachim Walsdorff <Joachim.Walsdorff@urz.uni-heidelberg.de>.
|
|||
|
|
|||
|
groff is free software; you can redistribute it and/or modify it under
|
|||
|
the terms of the GNU General Public License as published by the Free
|
|||
|
Software Foundation, either version 3 of the License, or
|
|||
|
(at your option) any later version.
|
|||
|
|
|||
|
groff is distributed in the hope that it will be useful, but WITHOUT
|
|||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|||
|
for more details.
|
|||
|
|
|||
|
You should have received a copy of the GNU General Public License
|
|||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
|
|||
|
..
|
|||
|
.if d t*getarg \
|
|||
|
.nx
|
|||
|
.de t*getarg
|
|||
|
.ds \\$1
|
|||
|
.ds args
|
|||
|
.if (\\n[.$] < 2) \
|
|||
|
.return
|
|||
|
.ds $1 \\$1
|
|||
|
.shift
|
|||
|
.length * \\*[$1]
|
|||
|
.while \\n[.$] \{\
|
|||
|
.ds * "\\$1
|
|||
|
.ds ** "\\$1
|
|||
|
.length ** \\*[**]
|
|||
|
.shift
|
|||
|
.if (\\n[*] > \\n[**]) \{\
|
|||
|
.as args " "\\*[**]"
|
|||
|
.continue
|
|||
|
.\}
|
|||
|
.substring * 0 (\\n[*] - 1)
|
|||
|
.ie !"\?\\*[$1]\?"\?\\*[*]\?" \{\
|
|||
|
.as args " "\\*[**]"
|
|||
|
.continue
|
|||
|
.\}
|
|||
|
.el \{\
|
|||
|
.ie "\?\\*[**]\?"\?\\*[$1]\?" \
|
|||
|
.ds \\*[$1] \\*[$1]
|
|||
|
.el \{\
|
|||
|
.ie "\?\\*[**]\?"\?\\*[$1]=\?" \
|
|||
|
.ds \\*[$1] =
|
|||
|
.el \{\
|
|||
|
.substring ** (\\n[*] + 1) -1
|
|||
|
.ds * \\*[**]
|
|||
|
.substring * 0 0
|
|||
|
.if "\?\\*[*]\?"\?'\?" \{\
|
|||
|
.substring ** 1 -1
|
|||
|
.ds * \\*[**]
|
|||
|
.substring * -1 -1
|
|||
|
.ie "\?\\*[*]\?"\?'\?" \
|
|||
|
.substring ** 0 -2
|
|||
|
.el \{\
|
|||
|
.as \\*[$1] \\*[**]
|
|||
|
.while 1 \{\
|
|||
|
.ds ** \\$1
|
|||
|
.ds * \\$1
|
|||
|
.shift
|
|||
|
.substring * -1 -1
|
|||
|
.if "\?\\*[*]\?"\?'\?" \{\
|
|||
|
.substring ** 0 -2
|
|||
|
.break
|
|||
|
.\}
|
|||
|
.as \\*[$1] \\*[**]
|
|||
|
.\}
|
|||
|
.\}\}
|
|||
|
.as \\*[$1] \\*[**]
|
|||
|
.\}
|
|||
|
.as args " \\$@
|
|||
|
.\}\}
|
|||
|
.return
|
|||
|
.\}
|
|||
|
..
|
|||
|
.de t*index
|
|||
|
.if "\\$2"" \{\
|
|||
|
.nr t*index -999
|
|||
|
.return
|
|||
|
.\}
|
|||
|
.length ** \\$1
|
|||
|
.length $2 \\$2
|
|||
|
.nr * 0-1 1
|
|||
|
.while (\\n+[*] < \\n[**]) \{\
|
|||
|
.ds * \\$1
|
|||
|
.substring * \\n[*] (\\n[*] + \\n[$2] - 1)
|
|||
|
.if "\?\\*[*]\?"\?\\$2\?" \
|
|||
|
.break
|
|||
|
.\}
|
|||
|
.ie (\\n[*] == \\n[**]) \
|
|||
|
.nr t*index 0
|
|||
|
.el \
|
|||
|
.nr t*index (\\n[*] + 1)
|
|||
|
..
|
|||
|
.de t*SP
|
|||
|
.if (\\n[nl] < 0) \
|
|||
|
.br
|
|||
|
.nr * \\n[.p]
|
|||
|
.ie "\\$1"" \
|
|||
|
.pl +1
|
|||
|
.el \
|
|||
|
.pl +\\$1
|
|||
|
.nr ** (\\n[.p] - \\n[*])
|
|||
|
.pl \\n[*]u
|
|||
|
.if ((\\n[nl] - \\n[tH]) & (\\n[nl] - \\n[<<]) : \\n[.k]) \{\
|
|||
|
.ie ((\\n[.d] - \\n[M#]) : \\n[.k]) \{\
|
|||
|
.sp \\n[**]u
|
|||
|
.nr S# \\n[**]
|
|||
|
.\}
|
|||
|
.el \{\
|
|||
|
.if (\\n[**] - \\n[S#]) \{\
|
|||
|
.sp (\\n[**]u - \\n[S#]u)
|
|||
|
.nr S# \\n[**]
|
|||
|
.\}\}
|
|||
|
.nr M# \\n[.d]
|
|||
|
.\}
|
|||
|
..
|
|||
|
.de t*P1
|
|||
|
.while \\n[.$] \{\
|
|||
|
.nop \\$1
|
|||
|
.shift
|
|||
|
.\}
|
|||
|
..
|
|||
|
.de t*pv
|
|||
|
.br
|
|||
|
.if \\n[.$] \
|
|||
|
.ps (\\n[t*s]u * \\$1z / 1z)
|
|||
|
.ie (\\n[.$] - 1) \
|
|||
|
.vs (\\n[t*v]u * \\$2p / 1p)
|
|||
|
.el \{\
|
|||
|
.vs (\\n[t*v]u * \\$1p / 1p)
|
|||
|
.return
|
|||
|
.\}
|
|||
|
.if !""\\$3" \
|
|||
|
.hy \\$3
|
|||
|
.if !""\\$4" \{\
|
|||
|
.nr t*v \\n[.v]
|
|||
|
.nr t*s \\n[.ps]
|
|||
|
.nr t*hy \\n[.hy]
|
|||
|
.\}
|
|||
|
..
|
|||
|
.de *pop
|
|||
|
.ie "\\$1"pops" \
|
|||
|
.ds \\$2 \\$4
|
|||
|
.el \
|
|||
|
.nr \\$2 \\$4
|
|||
|
.ds $3 \\$3
|
|||
|
.shift 4
|
|||
|
.ds \\*[$3] "\\$@
|
|||
|
..
|
|||
|
.de pop
|
|||
|
.*pop \\$0 \\$1 \\$2 \\*[\\$2]
|
|||
|
..
|
|||
|
.als popr pop
|
|||
|
.als pops pop
|
|||
|
.de t*DI
|
|||
|
.nr * \\n[.u]
|
|||
|
.nf
|
|||
|
.\\$1
|
|||
|
.rm \\$1
|
|||
|
.if \\n[*] \
|
|||
|
.fi
|
|||
|
..
|
|||
|
.de t*EM
|
|||
|
.if !"\\*[t*kept]"" \{\
|
|||
|
.tm1 "hdtbl: Not all tables have been printed.
|
|||
|
.tm1 " Add `.bp' at the end of your document.
|
|||
|
.\}
|
|||
|
.if !"\\*[t*held]"" \{\
|
|||
|
.tm1 "hdtbl: There are held tables which haven't been printed.
|
|||
|
.tm1 " Add `.t*free' at the end of your document.
|
|||
|
.\}
|
|||
|
.if \\n[t*#] \
|
|||
|
.tm hdtbl: Missing `.ETB' macro; last .TBL in \\*[t*FN] at line \\*[t*LN].
|
|||
|
..
|