|
|
1.1 ! root 1: .\" @(#)tt13 6.1 (Berkeley) 5/23/86 ! 2: .\" ! 3: .NH ! 4: Environments ! 5: .PP ! 6: As we mentioned, there is a potential problem ! 7: when going across a page boundary: ! 8: parameters like size and font ! 9: for a page title may well be different from those ! 10: in effect in the text when the page boundary occurs. ! 11: .UL troff ! 12: provides a very general way to deal with this and ! 13: similar situations. ! 14: There are three `environments', ! 15: each of which has independently settable versions of ! 16: many of the parameters associated with processing, ! 17: including size, font, line and title lengths, ! 18: fill/nofill mode, tab stops, and even partially collected lines. ! 19: Thus the titling problem may be readily solved by processing the main text ! 20: in one environment and titles in a separate one ! 21: with its own suitable parameters. ! 22: .PP ! 23: The command ! 24: .BD .ev\ n ! 25: shifts to environment ! 26: .BD n ; ! 27: .BD n ! 28: must be 0, 1 or 2. ! 29: The command ! 30: .BD .ev ! 31: with no argument returns to the ! 32: previous environment. ! 33: Environment names are maintained in a stack, so calls ! 34: for different environments may be nested and unwound consistently. ! 35: .PP ! 36: Suppose we say that the main text is processed in environment 0, ! 37: which is where ! 38: .UL troff ! 39: begins by default. ! 40: Then we can modify the new page macro ! 41: .BD .NP ! 42: to process titles in environment 1 like this: ! 43: .P1 2 ! 44: ^de NP ! 45: ^ev 1 \e" shift to new environment ! 46: ^lt 6i \e" set parameters here ! 47: ^ft R ! 48: ^ps 10 ! 49: \&... any other processing ... ! 50: ^ev \e" return to previous environment ! 51: ^^ ! 52: .P2 ! 53: It is also possible to initialize the parameters for an environment ! 54: outside the ! 55: .BD .NP ! 56: macro, ! 57: but the version shown keeps all the processing in one place ! 58: and is thus easier to understand and change.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.