web-dev-qa-db-ja.com

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

習得と使用が簡単なため、groff manマクロを使用して汎用ドキュメント(実際にはmanページではありません)を作成しています。ただし、ポストスクリプトページヘッダーをフリーテキストとして制御したいのですが。

グロフマニュアル は言う:

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

大きい: .PT

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

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

1
johntait.org

言い回しはあいまいですが、man.localファイル自体を変更することをお勧めします。そのファイルにあるマクロをオーバーライドするのではなく、.

まずはドキュメントから始めましょう:5.21マクロの記述(GNU Troff Manual)。これは、マクロをdefineする方法を示しています。

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

/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])'
..

名前付き変数を最初のパラメーターとして.tlに渡します。 .tlが何であるか(grepはあなたの友達です)、そしてそれが何をするかを確認するには、いくつかの作業が必要です(言及 ここ ):

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

一方、groffのドキュメントは何年にもわたって改善されています。「。tl」は index にあります。

原則として、次のことがわかります。

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

マニュアルページを本として印刷することを目的とした変更されたマクロの使用方法についてのアイデアが必要な場合は、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に互換性がある限り、機能するはずです。

0
schily