mstd(7)

Date: 1998/4/30
Source: TOYODA Eizi

名前

mstd - 標準 htroff マクロパッケージ

説明

標準マクロパッケージにはすべての htroff(1) アプリケーションで利用されるべきマクロや初期化設定があります。 ここではユーザが知っておくべき (利用してもよい) 特徴について記述します。 変更される可能性がある実装の詳細については記述されません。

フック

^http://
^ftp://
^file:
行頭に http:// ftp:// などがある場合、これらは URL とみなされ、ハイパーリンクに変換されます。
<URL:[^>]+>
任意の位置にある <URL:anything> という文字列です。 これらも URL とみなされ、ハイパーリンクに変換されます。
^relative:
これは相対パスを記述しなければならない場合のために用意された記法で、 先頭の relative: を除去したハイパーリンクに変換されます。
^\\s+
行頭に空白のある行は <BR> タグを生成します。
^\s*$
空行は <P> タグを生成します。 (このフックの実装は htroff.pl 内部にあります)

リクエスト

意味のあることをするマクロまたはエイリアス

.ad [alignment]
このマクロは元祖 troff 組み込みリクエストの手抜きな模倣をします。 引数 alignment が `r' の場合、以下のテキストは右寄せに組まれます。 `c' の場合、以下のテキストは中央寄せで組まれます。 それ以外の場合 (`b' を使う実例があるので、これを推奨します) 以下のテキストは左寄せに戻ります。 これらの実装はそれぞれ <DIV ALIGN=RIGHT> <DIV ALIGN=CENTER> </DIV> を生成することによって行われています。 手抜きなので開きタグと閉じタグの整合性はチェックされていません。 したがって、 .ad r または .ad c の呼び出しと同じ数の .ad b がなければなりません。
.cleanup
このリクエストは htroff(1) が最後のファイルを読み終えた直後に特別に呼び出されるものです。 標準マクロパッケージによって .cleanup .stdcleanup のエイリアスとなります。 このマクロは文書末尾に <HR> に引き続き文書が htroff によって清書された旨とその日付を表示します。 hooter 文字列レジスタに何か設定しておくと <HR> の直後に挿入されます。
.if condition line
htroff(1) の条件分岐機能は元祖 troff と互換性がありませんが、 これは作者がその構文を美しくないからと考えたというよりは、 むしろその正しい構文を知らないため実装しようがなかったからです。 このマクロはせめてもの罪滅ぼしのため .if の出来の悪い模倣をします。 第 1 引数 condition が真と解釈されるときは残りの引数 line があたかも入力行であったかのように解釈されます。 condition は現在以下のものがサポートされています:
h
(実験の結果、元祖 troff/nroff では常に偽と評価されるようである) htroff では真となります。
n
(既存の troff/nroff マクロなどを読む限り nroff を意味するらしい) 真となります。
t
(既存の troff/nroff マクロなどを読む限り troff を意味するらしい) 偽となります。
'left'right'
単引用符 (') を3つ含む場合。 left right が同じ文字列の場合真となります。
.ei および .el リクエストはサポートされません。 このマクロを積極的に利用することは推奨されません。
.opened
このリクエストは htroff(1) がファイルを開いた直後に特別に呼び出されるものです。 標準マクロパッケージによって .opened .stdopened のエイリアスとなります。 このマクロは最初の呼び出しのときだけ <HTML> から <BODY> までのタグを生成します。 <TITLE> タグの中には \*< すなわち現在開かれているファイル名が入ります。
.TE
表のおわりを示します。
.ti
元祖 troff では臨時のインデント幅 (temporary indent) を指定するものですが、 現在はインデント幅の明示的指定はサポートされないので、 .br へのエイリアスになっています。
.ti0
元祖 troff ではリクエスト名は 2 文字に限られており、htroff が リクエスト名の 3 文字目以降と解釈するところは引数とみなされます。 このことを利用して .ti 0 と記述すればよいものを .ti0 などと 記述されているマニュアルページを見たことがあるので、 とりあえずこのようなものを作ってみました。
.TS
表のはじめに書いてください。以下 .TE が現れるまで、すべての行に マッチするフックが作られ、そこから呼び出されるマクロが UNIX の tbl(1) の動作を模倣します。 模倣は不完全で、文字列の alignment は制御できませんし、 多くの行や列にまたがるセルを作ることもできません。 また、<TABLE> タグを使う以上やむを得ないことではありますが、 罫線が必ずすべてのセルの周囲に書かれてしまいます

なにもしないエイリアス

互換性のためにとりあえずなにもしない実装をしたリクエストがあります。 これらはおそらく将来もサポートされないでしょう。

.di .ft .hc .hy .in .ne .nh .ta

文字定義

\(em
em dash というダッシュ。 最大限の移植性を考慮して "---" を生成します。
\(en
en dash というダッシュ。 最大限の移植性を考慮して "-" を生成します。
\(bu
blot と呼ばれる記号。 最大限の移植性を考慮して "*" を生成します。

参照

htroff(1), ms(7), man(7),
RFC1942: `HTML Tables'.
HTML generated using htroff at 28 October 2011 9:12:53.