Номер текущей страницы \n%
.
Чтобы интерполировать результат арифметического выражения, я думаю, вам нужно сначала поместить его в числовой регистр.
Вот макрос (, не прошедший исчерпывающую проверку ), который принимает выражение в качестве аргумента, присваивает результат (предположительно неиспользуемому )регистру с именем __
, а затем интерполирует содержимое регистра.
Current page is \n%.
.br
.\" EI - eval and interpolate
.\" $1 is an expression to evaluate
.\" $2 (optional) is a string to append to the interpolated expression,
.\" without any intervening whitespace
.de EI
.nr __ \\$1
\&\\n(__\\$2
..
.nr x 4
4 times 3 minus 5 is
'EI (\nx*3-5)
\&.
.br
Here there's no space before the period:
'EI (\nx*3-5).
.br
После запуска nroff:
Current page is 1.
4 times 3 minus 5 is 7.
Here there's no space before the period: 7.
Это кажется настолько обычным делом, что подобный макрос уже может быть в стандартных пакетах макросов, но я не знаю.