groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Groff] pointsize changes in .NH ms-macro


From: joerg van den hoff
Subject: Re: [Groff] pointsize changes in .NH ms-macro
Date: Fri, 10 Sep 2004 09:17:42 +0200
User-agent: Mozilla Thunderbird 0.8 (Macintosh/20040902)

Keith MARSHALL wrote:

Earlier today, I wrote:

Here's a modified definition of SHEAD, which should do the trick ...

   .de SHEAD
   .\"inputs: $1: NH-level, $2: title
   .\"------
   .br
   .nr incps (4-\\$1)*3
   .if \\n[incps]<0 .nr incps 0  \"just in case ...
   .ne 3v+\\n[incps]p+\\n[\\n[.ev]:PD]u+\\n(.Vu
   .nr incps \\n[incps]/3
   .nr PS +\\n[incps]
   .nr VS +\\n[incps]
   .NH \\$1
   \\$2
   .nr PS -\\n[incps]
   .nr VS -\\n[incps]
   ..


Or, slightly simpler, since the bottom of page trap will reset the
line height to \n(VSp anyway, when it is sprung ...

    .de SHEAD
    .\"inputs: $1: NH-level, $2: title
    .\"------
    .br
    .nr incps 4-\\$1
    .if \\n[incps]<0 .nr incps 0  \"just in case ...
    .vs +\\n[incps]p
    .ne 3v+\\n[\\n[.ev]:PD]u+\\n(.Vu
    .nr PS +\\n[incps]
    .nr VS +\\n[incps]
    .NH \\$1
    \\$2
    .nr PS -\\n[incps]
    .nr VS -\\n[incps]
    ..

Best regards,
Keith.

Keith,
thank you very much for your help. my problems are solved in this respect.


as a follow up question (to everyone):

is there a straightforward way to get the current section title _and_ section number into the page header under all conditions? I have attached an example, showing what I have managed to get: always the correct (current) section title. what I do _not_ get is the correct section number if the new section starts at the top of a new page (in the example this happens on page 3).

if someone cares to have a look, the logic is as follows:

the macro SHEAD sets a string register \*(xx which is inserted by a modified PT macro in the page header (along with a horizontal line). (page 1 is intentionally treated different, i.e. no page header is created). moreover the value of \n[SN] is inserted in the page header. in additon, table of content entries are collected.

this works fine if the current section extents across the page break. if not so (i.e. if new header starts at top of page) the SN register has still it's old value (i.e. it seems updated only after the bottom of page trap is triggered by .SH). in the example, page 2 and 4 are ok, page 3 is not.


regards,

joerg


PS: of course it would be even nicer not to get title and number of the _current_ section into the page header but rather the section number and title of that section which starts _anywhere_ further down on the page (as in every decent book). in the example, page 4 should in this case have a different page header. is this possible to achieve with a one-pass-formatter?

.pl 29.7c
.ll 21c-2i
.   nr PO 1.25i
.   po    1.25i       \"enforce PO on first page without additional .bp
.   nr HM 1.0i
.   nr FM 1.0i
.   if !rLL .nr LL \n[.l]u  \"stolen from a4.tmac...
.   nr LT \n(LL
.   nr PS 13
.   nr VS \n(PS+4\
.\"
.ND
.ds CH
.ds PAGENUMBER \fI%\fP
.ds LINENUMBERS
.ds xx                      \"prevent 'xx not defined' complaints
.ds SN                      \"prevent 'SN not defined' complaints
.\"
.\"-----------------------------------------------------------------------------------------
.de SHEAD
.ds xx \\$2
.br
.\"inputs: level, title
.\"------
.\"try some scheme for different heading sizes.
.\"the definition of 'incps' below uses a value
.\"'increment by "value minus NH level or zero if negative" 
.\"
.\"
.nr incps 4-\\$1
.if \\n[incps]<0 .nr incps 0  \"just in case ...
.\"enforce sufficiently early springing of the page trap:
.vs +\\n[incps]
.ne 3v+\\n[\\n[.ev]:PD]u+\\n(.Vu  \"from the .SH macro in s.tmac
.nr PS \\n(PS+\\n[incps]
.nr VS \\n(VS+\\n[incps]
.NH \\$1
\\$2
.nr PS \\n(PS-\\n[incps]
.nr VS \\n(VS-\\n[incps]
.\"
.\"just for fun, compute hierachical increment in the TOC entries from
.\"the NH level: 
.nr tmp 1
.ds tabs
.while !'\\n[tmp]'\\$1' \{\
.   nr tmp  \\n[tmp]+1
.   \"there is something like a invisible tab character...:
.   \"  ds tabs \\*[tabs]       \"these really are tabs
.   ds tabs \\*[tabs]\0\0\"and these are digit width white spaces
\}
.nr tmp (25-(\\$1*\\$1))/3
.XS
.ta 1c 2c 3c 4c 5c 6c 7c 8c
.ps 11
.vs 13
.\"sp \\n[tmp]p \"insert NH level dependent vertical space in TOC
.\"""\\*[tabs]\\*[SN]    \\$2
\\*[SN]\\*[tabs]\0\\$2
.\"\\*[tabs]\\*[SN]\0\\$2
.XE
..
.\"-----------------------------------------------------------------------------------------
.de PT  \"from the groff ms-macros and modified...
.      ds LH
.      if !'\\*(xx'' .ds LH \fI\\*[SN]
.      ie !'\\*(LH'' .ds LH \\*(LH      \\*(xx\fP
.      el            .ds LH \fI\\*(xx\fP
.      ie !'\\*(LH'' \{\
.         ds RH \\*[PAGENUMBER]
.         ds CF \
       \}
.      el \{\
.         ds CF \\*[PAGENUMBER]
.         ds RH \
       \}
.      ie \\n%=1 .if \\n[pg*P1] .tl \\*[pg*OH]
.      el \{\
.             ie o .tl \\*[pg*OH]
.             el .tl \\*[pg*EH]
.             \"
.             sp -\\n(.vu*75u/100u         \"aufwaerts um diesen .v bruchteil
.             if !'\\*(xx'' \l'\n(LTu'     \"linie zeichnen
       \}
..
.\"-----------------------------------------------------------------------------------------
.SHEAD 1 "the first heading
.LP
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
.SHEAD 2 "the second heading
.LP
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
.SHEAD 3 "the third heading
.LP
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
.SHEAD 2 "the fourth heading
.LP
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
lot of text lot of text lot of text lot of text lot of text lot of text lot of 
text lot of text
.ds xx
.bp
.PX

reply via email to

[Prev in Thread] Current Thread [Next in Thread]