ソフトウェアのマニュアルページを作成しようとしていますが、いくつかのコードスニペットを含めたいと思います。私は現在、カスタムメイドの。SAMPLEマクロの一部として。RSおよび。REマクロを使用していますが、何らかの理由で使用していません動作しません。これが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?
.RE
は、現在の.TP
インデントレベルではなく、デフォルトのインデントレベルを復元します。 .RS
が呼び出されたときに、実際のインデントを保存して復元するだけです。以下の修正は、SAMPLE
sを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.