groff man マクロでヘッダーの内容を制御する方法

groff man マクロでヘッダーの内容を制御する方法

私は、習得しやすく使いやすいため、汎用ドキュメント (実際にはマニュアル ページではありません) を作成するために groff man マクロを使用しています。ただし、PostScript ページ ヘッダーをフリー テキストとして制御したいと考えています。

groff マニュアル言う:

man マクロのローカル拡張やスタイルの変更には、ファイル man.local を使用します。

大きい:.PT

ヘッダーの内容を制御します。通常、ヘッダーにはコマンド名とセクション番号が両側に印刷され、TH へのオプションの 5 番目の引数が中央に印刷されます。

これを実際に行うにはどうすればいいでしょうか?

答え1

文言はわかりにくいですが、man.localファイル内のマクロを上書きするのではなく、ファイル自体を変更することを推奨します。

まず、ドキュメントから始めるのが良いでしょう:5.21 マクロの記述(GNU Troffマニュアル)。定義するマクロ。

実際に学ぶマクロはバージョンに大きく依存します。Debianでは、PTマクロはパッケージ内にありますgroff-base

/usr/share/groff/1.21/tmac/an-old.tmac

として

.\" Redefine these to customize the header & footer
.
.de1 PT
.  tl '\\*[an-title](\\*[an-section])'\\*[an-extra3]'\\*[an-title](\\*[an-section])'
..

名前付き変数を最初のパラメータとして渡します。 が何であるか(grepが便利です)とそれが何をするか.tlを知るには、少し作業が必要です(前述の.tlここ):

.tl(タイトル) は左、中央、右の 3 つの部分から構成されていることをご存知ですか?

一方、groffのドキュメントは年々改善されてきました。「.tl」は索引

原則として、次のようになります。

  • これらのファイルを読むときに遭遇するマクロのほとんどは文書化されていない
  • マクロのリストをgrepで検索する(grep-wが役立ちます)ことが、特定のマクロを見つける唯一の方法です。
  • 一部のマクロには、汎用バージョンを上書きするデバイス固有のバージョンがあります。

答え2

マニュアル ページを本として印刷することを目的とした変更されたマクロの使用方法を知りたい場合は、Solaris マニュアル ブックを印刷するために使用されるマクロを確認してください。

https://sourceforge.net/p/schillix-on/schillix-on/ci/default/tree/usr/src/cmd/troff/troff.d/tmac.d/

「an」ファイルと「ansun」マクロ ファイルを比較します。後者は書籍の印刷に使用されます。

これらはオリジナルの troff 用のマクロ セットであり、troff クローンの「groff」用ではないことに注意してください。ただし、groff に互換性がある限り、動作するはずです。

関連情報