Правильно вставлять образцы кода в man-страницы

Я пытаюсь написать справочную страницу для программного обеспечения и хотел бы включить некоторые фрагменты кода. Я в настоящее время использую макросы .RS и .RE как часть пользовательского макроса .SAMPLE , но по какой-то причине это не работает. Вот страница man:

.TH MYMANPAGE 1 .de SAMPLE .br .RS .nf .nh .. .de ESAMPLE .hy .fi .RE .. .SH TEST SECTION HEADING This is a test section heading. .TP .B Test Paragraph Label This is some test paragraph text. This is some test paragraph text. This is some test paragraph text. This is some indented test code: .SAMPLE int main(void) { return 42; } .ESAMPLE This is more text after the test code. This is more text after the test code. 

Что происходит, так это то, что текст после .ESAMPLE не имеет отступов так же, как текст абзаца. Вместо этого он выстроен вместе с меткой абзаца. Что было бы правильным . [E] SAMPLE макроопределения, чтобы заставить их играть хорошо с .TP ?

One Solution collect form web for “Правильно вставлять образцы кода в man-страницы”

Параметр .RE восстанавливает уровень отступа по умолчанию, а не текущий уровень отпечатка .TP . Все, что вам нужно сделать, это сохранить и восстановить фактический отступ в игре, когда вызывается .RS . Исправление ниже предполагает, что вы не будете вставлять SAMPLE в SAMPLE s:

 .de SAMPLE .br .nr saveIN \\n(.i \" double the backslash when defining a macro .RS .nf .nh .. .de ESAMPLE .hy .fi .RE .in \\n[saveIN]u \" 'u' means 'units': do not scale this number .. $ man ./i [...] Test Paragraph Label This is some test paragraph text. This is some test paragraph text. This is some test paragraph text. This is some indented test code: int main(void) { return 42; } This is more text after the test code. This is more text after the test code. 
Interesting Posts

После установки Yum Remove Dependency

Как установить PATH при запуске команды ssh?

Механизм хранения паролей в судо

Связь между правами на выполнение в каталоге и его структурой inode

"Map: vt01 => fb0" – что это?

OpenLDAP: неверная синтаксическая ошибка при попытке добавить LDIF

Почему я могу подключиться к IP-интерфейсу сетевого интерфейса (на сервере с несколькими сетевыми интерфейсами) при удалении сетевого кабеля?

Без удаления при нажатии Delete в Gnome Flashback в Debian Jessie

Как установить несколько версий Java на linux

Установка проприетарных драйверов NVidia 304 на тестирование / растяжение Debian

Как я могу определить время последней активности harddisk / samba или zfs для ifplugd как действия?

Выполнить команду root после запуска сеанса пользователя

Есть ли простая команда для вывода столбцов с разделителями табуляции?

Интернет не работает, когда VPN поднят

Новое перегрузочное состояние ноутбука – концентратор

Linux и Unix - лучшая ОС в мире.