Можно ли использовать числовой регистр в запросе groff? - PullRequest
0 голосов
/ 03 ноября 2018

Может кто-нибудь объяснить мне, почему встраивание литеральных значений (например, "1c") в запрос .po ("смещение страницы") работает, а ссылка на регистр чисел - нет?

.\" Set the dimensions of an A4 page.
.nr a4_width 21c
.nr a4_height 29.7c
.nr a4_margin_horizontal 1c
.nr a4_margin_vertical 1c
.nr a4_content (\n[a4_width] - (\n[a4_margin_horizontal] * 2))
.
.\" Page-offset and line-length
.po \n[a4_margin_horizontal]
.ll \n[a4_content]
.\" Uncomment the below two lines and everything works.
.\" .po 1c
.\" .ll 19c
.
.\" Start the document.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At
vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
no sea takimata sanctus est Lorem ipsum dolor sit amet.
.sp 

Ответы [ 2 ]

0 голосов
/ 03 ноября 2018

Когда вы пишете следующую строку:

.nr a4_margin_horizontal 1c

буква c является индикатором шкалы; таким образом, фактическое числовое значение, хранящееся в регистре, будет около 28346.

Когда пишешь позже:

.po \n[a4_margin_horizontal]

нет индикатора шкалы; таким образом, переводчик прибегает к показателю шкалы по умолчанию , который равен m в соответствии с разметкой строки (страница руководства).

Если вы хотите, чтобы это работало, добавьте индикатор u после запроса \n:

.po \n[a4_margin_horizontal]u
0 голосов
/ 03 ноября 2018

Забавно, как я целый час бьюсь головой о стену, а потом, когда я наконец задаю свой вопрос о StackOverflow, я это выясняю.

Из онлайн-руководства:

gtroff (как и многие другие программы) требует числовых параметров для указания различные измерения. Большинство числовых параметров9 могут иметь единицу измерения прилагается. Эти единицы указаны как один символ, который сразу следует за числом или выражением. Каждая из этих единиц понимается gtroff, чтобы быть кратным его основной единице. Таким образом, всякий раз, когда другой указана единица измерения, gtroff преобразует ее в свои основные единицы. это Базовая единица, представленная символом «u», является зависимым от устройства измерением, которое довольно маленький, в пределах от 1/75 до 1/72000 дюйма. Значения могут быть приведены в виде дробных чисел; однако дробные базовые единицы всегда округляются в целые числа.

Моя мера 1c (1 сантиметр) конвертировалась в 28346 «базовых единиц» (72 000 на дюйм), и запрос .po ожидался в качестве единицы измерения по умолчанию.

...