Annotation of 43BSDReno/share/doc/usd/25.trofftut/tt08, revision 1.1

1.1     ! root        1: .\"    @(#)tt08        6.1 (Berkeley) 5/23/86
        !             2: .\"
        !             3: .NH
        !             4: Introduction to Macros
        !             5: .PP
        !             6: Before we can go much further in
        !             7: .UL troff ,
        !             8: we need to learn a bit about the
        !             9: macro
        !            10: facility.
        !            11: In its simplest form, a macro is just a shorthand notation
        !            12: quite similar to a string.
        !            13: Suppose we want every paragraph to start
        !            14: in exactly the same way _
        !            15: with a space and a temporary indent of two ems:
        !            16: .P1
        !            17: ^sp
        !            18: ^ti +2m
        !            19: .P2
        !            20: Then to save typing, we would like to collapse these into
        !            21: one shorthand line,
        !            22: a
        !            23: .UL troff
        !            24: `command' like
        !            25: .P1
        !            26: ^PP
        !            27: .P2
        !            28: that would be treated by
        !            29: .UL troff
        !            30: exactly as
        !            31: .P1
        !            32: ^sp
        !            33: ^ti +2m
        !            34: .P2
        !            35: .BD .PP
        !            36: is called a
        !            37: .ul
        !            38: macro.
        !            39: The way we tell
        !            40: .UL troff
        !            41: what
        !            42: .BD .PP
        !            43: means is to
        !            44: .ul
        !            45: define
        !            46: it with the
        !            47: .BD .de
        !            48: command:
        !            49: .P1
        !            50: ^de PP
        !            51: ^sp
        !            52: ^ti +2m
        !            53: ^^
        !            54: .P2
        !            55: The first line names the macro
        !            56: (we used
        !            57: .BD .PP ' `
        !            58: for `paragraph',
        !            59: and upper case so it wouldn't conflict with
        !            60: any name that
        !            61: .UL troff
        !            62: might
        !            63: already know about).
        !            64: The last line
        !            65: .BD ..
        !            66: marks the end of the definition.
        !            67: In between is the text,
        !            68: which is simply inserted whenever
        !            69: .UL troff
        !            70: sees the `command'
        !            71: or macro call
        !            72: .P1
        !            73: ^PP
        !            74: .P2
        !            75: A macro
        !            76: can contain any mixture of text and formatting commands.
        !            77: .PP
        !            78: The definition of
        !            79: .BD .PP
        !            80: has to precede its first use;
        !            81: undefined macros are simply ignored.
        !            82: Names are restricted to one or two characters.
        !            83: .PP
        !            84: Using macros for commonly occurring sequences of commands
        !            85: is critically important.
        !            86: Not only does it save typing,
        !            87: but it makes later changes much easier.
        !            88: Suppose we decide that the paragraph indent is too small,
        !            89: the vertical space is much too big,
        !            90: and roman font should be forced.
        !            91: Instead of changing the whole document,
        !            92: we need only change the definition of
        !            93: .BD .PP
        !            94: to
        !            95: something like
        !            96: .P1
        !            97: ^de PP \e" paragraph macro
        !            98: ^sp 2p
        !            99: ^ti +3m
        !           100: ^ft R
        !           101: ^^
        !           102: .P2
        !           103: and the change takes
        !           104: effect everywhere we used
        !           105: .BD .PP .
        !           106: .PP
        !           107: .BD \e"
        !           108: is a
        !           109: .UL troff
        !           110: command that causes the rest of the line to be ignored.
        !           111: We use it here to add comments to the macro
        !           112: definition
        !           113: (a wise idea once definitions get complicated).
        !           114: .PP
        !           115: As another example of macros,
        !           116: consider these two which start and end a block of offset,
        !           117: unfilled text, like most of the examples in this paper:
        !           118: .P1
        !           119: ^de BS \e" start indented block
        !           120: ^sp
        !           121: ^nf
        !           122: ^in +0.3i
        !           123: ^^
        !           124: ^de BE \e" end indented block
        !           125: ^sp
        !           126: ^fi
        !           127: ^in \(mi0.3i
        !           128: ^^
        !           129: .P2
        !           130: Now we can surround text like
        !           131: .P1
        !           132: Copy to
        !           133: John Doe
        !           134: Richard Roberts
        !           135: Stanley Smith
        !           136: .P2
        !           137: by the commands
        !           138: .BD .BS
        !           139: and
        !           140: .BD .BE ,
        !           141: and it will come out as it did above.
        !           142: Notice that we indented by
        !           143: .BD .in\ +0.3i
        !           144: instead of
        !           145: .BD .in\ 0.3i .
        !           146: This way we can nest our uses of
        !           147: .BD .BS
        !           148: and
        !           149: .BD BE
        !           150: to get blocks within blocks.
        !           151: .PP
        !           152: If later on we decide that the indent
        !           153: should be 0.5i, then it is only necessary to
        !           154: change the definitions of
        !           155: .BD .BS
        !           156: and
        !           157: .BD .BE ,
        !           158: not the whole paper.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.