Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/netbsd-1-5]: src/distrib/notes/common Pull up revision 1.10 (requested b...
details: https://anonhg.NetBSD.org/src/rev/bb92118f540a
branches: netbsd-1-5
changeset: 491682:bb92118f540a
user: he <he%NetBSD.org@localhost>
date: Sun May 06 22:30:49 2001 +0000
description:
Pull up revision 1.10 (requested by he):
Add .Bc/.Ec macros for coloumnarized unfilled displays.
diffstat:
distrib/notes/common/macros | 135 +++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 134 insertions(+), 1 deletions(-)
diffs (149 lines):
diff -r fd501cb7a3f5 -r bb92118f540a distrib/notes/common/macros
--- a/distrib/notes/common/macros Sun May 06 22:28:02 2001 +0000
+++ b/distrib/notes/common/macros Sun May 06 22:30:49 2001 +0000
@@ -1,4 +1,4 @@
-.\" $NetBSD: macros,v 1.4.8.1 2000/11/01 03:47:58 tv Exp $
+.\" $NetBSD: macros,v 1.4.8.2 2001/05/06 22:30:49 he Exp $
.\"
.\" Copyright (c) 1999, 2000 The NetBSD Foundation, Inc.
.\" All rights reserved.
@@ -171,6 +171,139 @@
.Ux -like
..
.
+.\" .Bc/.Ec; begin/end two-column mode. This may not work in all
+.\" cases, but was designed for common/donations. There is no
+.\" support for more than two pages, nor for right-margins.
+.\" Usage:
+.\" .Bc [ncol]
+.\" Dependances:
+.\" macro CF page trap macro for bottom of column
+.\" macro CZ code duplication; handling of diversion interpolation.
+.\" macro CC diversion trap macro for subdividing into pages.
+.\" macro Bc Begin columns
+.\" macro Ec End columns
+.\" reg cl current column number
+.\" reg CI saved indent
+.\" reg CL saved line-length
+.\" reg CO saved page offset
+.\" reg CN number of columns
+.\" reg CA max height of columnized text
+.\" reg CB save available space on page
+.\" reg CE column spacing
+.\" str C0 entire columnization region [if crosses page boundary]
+.\" str C1 columnization region for page 1
+.\" str C2 columnization region for page 2
+.
+.de CF
+.if \\n(Db .tm page trap (column bottom) at \\n(nlu.
+.\"TRAP2 \" debugging: here's where the trap is.
+.ie \\n+(cl<\\n(CN \{
+.rt \" return to the mk
+.po +\\n(CEu \" space to next column
+.ns
+\}
+.el \{\
+.ll \\n(CLu \" restore linelength
+.in \\n(CIu \" restore indent
+.po \\n(COu \" restore offset
+.\}
+..
+.de CZ
+.mk \" Save position
+.if \\n(Db .tm Saved column top is \\n(nlu.
+.nr cl 0 1 \" This is column #0
+.nr CL \\n(.l \" Save the linelength
+.nr CI \\n(.i \" Save the indent
+.nr CO \\n(.o \" Save the offset
+.nf
+.\" .ll 20n \" this doesn't work in nf-mode.
+.if \\n(Db .tm Page trap placed at \\n(CDu; next trap at \\n(nlu+\n(.tu.
+.wh \\n(CDu CF \" set the bottom of column trap
+.if \\n(Db .tm CZ: \\$1 starts at \\n(nlu; trap in \\n(.tu.
+.\\$1 \" throw in the diverted text
+.if \\n(Db .tm CZ: \\$1 ends at \\n(nlu; trap in \\n(.tu.
+.if !\\n(CN==\\n(cl .sp \" If we didn't finish, space to force a trap.
+.ch CF \" remove trap
+.if \\n(Db .tm CZ: before .ne we are at \\n(nlu with \\n(.tu to go.
+.ne 3V \" space for two lines after
+.if \\n(Db .tm CZ: after .ne we are at \\n(nlu.
+..
+.de CC
+.if \\n(Db .tm diversion trap (page break) at \\n(nlu.
+.\"TRAP1 \" debugging
+.di \" close first-page (C1) diversion
+.di C2 \" open second-page (C2) diversion
+..
+.de Bc
+.in +\n(Dsu \" Indent to match Bd
+.nr CN 2 \" Number of columns
+.if !"\\$1"" .nr CN \\$1
+.ne 2v \" we need at least two lines of space on the page.
+.ev 2
+.di C1 \" divert the text
+.nf
+..
+.de Ec
+.di \" end diversion
+.ev
+.nr CA \\n(dnu/\\n(CN \" save max height of columnized text
+.nr CB \\n(.t-(\\n(.v*3) \" save available space on page
+.nr CE \\n(.lu/\\n(CN
+.\" .tm The diversion is \\n(dnu high and \\n(dlu wide. At \\n(CN columns,
+.\" .tm the max height would be \\n(CAu high, if they fit on the same page.
+.\" .tm The page length is \\n(.p, and the current vposition is \\n(nl, not to
+.\" .tm be confused with the page offset of \\n(.o.
+.\" .tm So we have \\n(CBu of space on this page.
+.ie \\n(CA>=\\n(CB \{
+.rn C1 C0 \" put original in C0
+.ev 2
+.di C1 \" Divert the first page into new C1
+.\" Diversion trap location in solid kludgite. If notCRT, we need
+.\" extra v-height. go figure.
+.ie \\n(cR==0 .dt \\n(CBu*\\n(CNu+2v CC
+.el .dt \\n(CBu*\\n(CNu CC
+.C0
+.di
+.ev
+.nf
+.fi
+.\" Trap at bottom of page
+.if \\(Db .tm page trap set at \\n(nlu+\\n(.tu-2v)
+.nr CD \\n(nlu+\\n(.tu-2v) \" trap right before next trap
+.\}
+.el \{\
+.\" Trap at the bottom of the text. All on one page.
+.nr CD \\n(CAu+\\n(nlu
+.\}
+.CZ C1
+.\" The .if dxxx construct is groff-specific
+.if dC2 \{
+.if \\(Db .tm max height of text is \\n(dnu/\\n(CN.
+.if \\(Db .tm breakpoint (for page trap) is 1u+\\n(CAu+\\n(nlu.
+.nr CA \\n(dnu/\\n(CN \" save max height of columnized text
+.nr CD \\n(CAu+\\n(nlu
+.CZ C2
+.\}
+.rm C2 \" nuke it otherwise it might pop up later.
+.\" These should already be restored. But sometimes we don't hit
+.\" the last page trap [??]
+.ll \\n(CLu \" restore linelength
+.in \\n(CIu \" restore indent
+.po \\n(COu \" restore offset
+.fi \" fill again.
+.in -\n(Dsu \" revert prior indent
+..
+.\" Unfortunately, none of the above works with -mdoc2html; so we'll
+.\" just replace columns with a regular Bd -unfilled -offset indent.
+.if rHTML \{
+.rm Bc
+.rm Ec
+.de Bc
+.Bd -unfilled -offset indent
+..
+.als Ec Ed
+.\}
+.
.\" -------------------- MISC --------------------
.
.\" set the unused target number registers to 0, so that we can turn on all
Home |
Main Index |
Thread Index |
Old Index