.if
[!
]condition anythingIf condition is true, do anything. The presence of an !
negates the condition. If anything runs over more than one line, it must be delimited by \{
and \}
.
o | True if the page number is odd. |
e | True if the page number is even. |
n | True if the processor is nroff. |
t | True if the processor is troff. |
" str1" str2" | True if str1 is identical to str2. Often used to test the value of arguments passed to a macro. |
expr | True if the value of expression expr is greater than zero. |
Expressions typically contain number register interpolations and can use any of the following operators:
+ - | Addition, subtraction |
/ * | Multiplication, division |
% | Modulo |
< > | Less than, greater than |
<= >= | Less than or equal, greater than or equal |
= == | Equal |
! | Logical negation |
& | Logical AND |
: | Logical OR |
Note: expressions are evaluated left to right; there is no operator precedence. Parentheses may be supplied to force a particular evaluation order.
Inside a macro definition, set the spacing and print the second argument. (The extra backslashes are necessary in \\$2
. One backslash is stripped off when the macro is first read, so the second one is needed for it to be evaluated correctly when the macro is executed.)
.if t .nr PD 0.5v \" Set spacing between ms paragraphs .if !"\\$2"" \{ \" If arg 2 is non null, print it in bold \fB\\$2\fP\}