diff --git a/ja_JP.eucJP/man/man5/groff_tmac.5 b/ja_JP.eucJP/man/man5/groff_tmac.5 index 9bc65c49de..3601d98ba7 100644 --- a/ja_JP.eucJP/man/man5/groff_tmac.5 +++ b/ja_JP.eucJP/man/man5/groff_tmac.5 @@ -1,487 +1,1290 @@ -.ig / +. +.\" $FreeBSD$ +.\" WORD: typesetting system 清書システム +.\" WORD: naming 名称付け +.\" WORD: inclusion 取り込み +.\" WORD: convention 約束事 +.\" WORD: The Filesystem Hierarchy Standard ファイルシステム階層標準 +.\" WORD: diversion 転換 +.TH GROFF_TMAC 5 "1 May 2003" "Groff Version 1.19" +.SH 名称 +groff_tmac \- roff 清書システム内にあるマクロファイル +.SH 解説 +.\" The .SH was moved to this place to make `apropos' happy. +. +. +.\" -------------------------------------------------------------------- +.\" Legalize +.\" -------------------------------------------------------------------- +. +.ig groff_tmac.5 +File position: /man/groff_tmac.man + +Last update: 13 Mar 2003 + This file is part of groff, the GNU roff type-setting system. -Copyright (C) 2000, 2001 Free Software Foundation, Inc. -written by Bernd Warken +Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +written by Bernd Warken and Werner Lemberg + Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being this .ig-section and AUTHOR, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the Free Documentation License is included as a file called FDL in the main directory of the groff source package. -./ +.. . .\" -------------------------------------------------------------------- .\" Setup .\" -------------------------------------------------------------------- . +.mso www.tmac +. .if n \{\ . mso tty-char.tmac . ftr CR R . ftr CI I . ftr CB B .\} . -.\" text lines in macro definitions or bracketed sections \{...\} -.de text -. if 1 \&\\$*\& -.. +.ds Ellipsis \&.\|.\|.\&\" +. +.\" Global static variables for inter-macro communication +.rr @+Example_font . +.\" -------------------------------------------------------------------- +.\" setup for the macro definitions below +.\" +.\" naming: namespace:cathegory_macro.variable_name (experimental) +. +.\" -------------------------------------------------------------------- +.\" configuration of prompt for `.Shell_cmd'* macros +.ds groffer:Shell_cmd.prompt_text sh#\" prompt for shell commands +.ds groffer:Shell_cmd+.prompt_text >\" prompt on continuation lines +.ds groffer:Shell_cmd_base.prompt_font I\" font for prompts +. +.\" automatically determine setup from the configuration above +.als @f groffer:Shell_cmd_base.prompt_font\" +.als @t groffer:Shell_cmd.prompt_text\" +.als @t+ groffer:Shell_cmd+.prompt_text\" +.ds groffer:Shell_cmd.prompt \f[\*[@f]]\*[@t]\f[]\" needed +.ds groffer:Shell_cmd+.prompt \f[\*[@f]]\*[@t+]\f[]\" needed +.nr @w \w'\*[groffer:Shell_cmd.prompt]'\" +.nr @w+ \w'\*[groffer:Shell_cmd+.prompt]'\" +.ft \*[@f] +.\" Full prompt width is maximum of texts plus 1m +.nr groffer:Shell_cmd_base.prompt_width (\n[@w]>?\n[@w+]+1m)\" needed +.ft +.rm @f +.rm @f+ +.rm @t +.rm @t+ +.rr @w +.rr @w+ +. +.\"-------------------------------------------------------------------- +.\" Ignore all arguments like a comment, even after a .eo call. +.de c +.. +.c -------------------------------------------------------------------- .de BIR . ie (\\n[.$] < 3) \ . BI \\$@ . el \{\ -. ds @tmp@ \fB\\$1\fP\fI\\$2\fP +. ds @tmp@ \fB\\$1\f[]\fI\\$2\f[] . shift 2 -. text \\*[@tmp@]\fR\\$*\fP +. Text \\*[@tmp@]\fR\\$*\f[] . rm @tmp@ . \} .. +.c -------------------------------------------------------------------- +.c .Env_var ( []) +.c +.c Display an environment variable, with optional punctuation. +.c +.de Env_var +. nh +. SM +. Text \f[CB]\\$1\f[]\\$2 +. hy +.. +.c -------------------------------------------------------------------- +.c .Error (...) +.c +.c Print error message to terminal and abort. +.c +.de Error +. tm \\$* +. ab +.. +.c -------------------------------------------------------------------- +.de Example +. if r@+Example_font \ +. Error previous .Example was not terminated by a ./Example +. nr @+Example_font \\n[.f] +. nh +. nf +. RS +. ft CR +.. +.c -------------------------------------------------------------------- +.de /Example +. if !r@+Example_font \ +. Error no previous call to .Example +. ft \\n[@+Example_font] +. RE +. fi +. hy +. rr @+Example_font +.. . +.c -------------------------------------------------------------------- +.c .Shell_cmd ( [] ...) +.c +.c A shell command line; display args alternating in fonts CR and CI. +.c +.c Examples: +.c .Shell_cmd "groffer --dpi 100 file" +.c result: `sh# groffer --dpi 100 file' +.c with 'sh#' in font I, the rest in CR +.c +.c .Shell_cmd groffer\~--dpi\~100\~file +.c result: the same as above +.c +.c .Shell_cmd "groffer --dpi=" value " file" +.c result: sh# groffer --dpi=value file +.c with `groffer --dpi=' and `file' in CR; `value' in CI +.c +.c .Shell_cmd groffer\~--dpi= value \~file +.c result: the same as the previous example +.c +.de Shell_cmd +. groffer:Shell_cmd_base "\*[groffer:Shell_cmd.prompt]" \\$@ +.. +.c -------------------------------------------------------------------- +.c .Shell_cmd+ ( [] ...) +.c +.c A continuation line for .Shell_cmd. +.c +.de Shell_cmd+ +. groffer:Shell_cmd_base "\*[groffer:Shell_cmd+.prompt]" \\$@ +.. +.c -------------------------------------------------------------------- +.c .Shell_cmd_base ( [ [] ...]) +.c +.c A shell command line; display args alternating in fonts CR and CI. +.c Internal, do not use directly. +.c +.c Globals: read-only register @.Shell_cmd_width +.c +.de groffer:Shell_cmd_base +. if (\\n[.$] <= 0) \ +. return +. nr @+font \\n[.f]\" +. ds @prompt \\$1\" +. ft CR +. c gap between prompt and command +. nr @+gap \\n[groffer:Shell_cmd_base.prompt_width]-\\w'\\*[@prompt]'\" +. ds @res \\*[@prompt]\h'\\n[@+gap]u'\" +. shift +. ds @cf CR\" +. while (\\n[.$] > 0) \{\ +. as @res \\f[\\*[@cf]]\\$1\" +. shift +. ie '\\*[@cf]'CR' \ +. ds @cf I\" +. el \ +. ds @cf CR\" +. \} +. br +. ad l +. nh +. nf +. Text \\*[@res]\" +. fi +. hy +. ad +. br +. ft \\n[@+font] +. rr @+font +. rr @+gap +. rm @cf +. rm @res +.. +.c -------------------------------------------------------------------- +.c .Text (...) +.c +.c Treat the arguments as text, no matter how they look. +.c +.de Text +. if (\\n[.$] == 0) \ +. return +. nop \)\\$*\) +.. +.c -------------------------------------------------------------------- +.c .Topic ([]) +.c +.c A bulleted paragraph +.c +.de Topic +. ie (\\n[.$] = 0) \ +. ds @indent 2m\" +. el \ +. ds @indent \\$1\" +. TP \\*[@indent] +. Text \[bu] +. rm @indent +.. +.c -------------------------------------------------------------------- +.c .TP+ () +.c +.c Continuation line for .TP header. +.c +.de TP+ +. br +. ns +. TP \\$1 +.. +.c -------------------------------------------------------------------- .de 'char -. ds @tmp@ `\f(CB\\$1\fP' +. ds @tmp@ `\f(CR\\$1\f[]' . shift -. text \\*[@tmp@]\\$* +. Text \\*[@tmp@]\\$* . rm @tmp@ .. -. +.c -------------------------------------------------------------------- .de option -. ds @tmp@ \f(CB\\$1\fP +. ds @tmp@ \f(CB\\$1\f[] . shift 1 -. text \\*[@tmp@]\\$* +. Text \\*[@tmp@]\\$* . rm @tmp@ .. -. -.als shellcommand option -. +.c -------------------------------------------------------------------- .de argument -. ds @tmp@ \f(CI\\$1\fP +. ds @tmp@ \f(CI\\$1\f[] . shift 1 -. text \\*[@tmp@]\\$* +. Text \\*[@tmp@]\\$* . rm @tmp@ .. -. +.c -------------------------------------------------------------------- .de request -. ds @tmp@ \f(CB\\$1\fP +. ds @tmp@ \f(CB\\$1\f[] . shift 1 -. text \\*[@tmp@]\\$* +. Text .\\*[@tmp@]\\$* +. rm @tmp@ +.. +.c -------------------------------------------------------------------- +.de escape +. ds @tmp@ \f[CB]\\$1\f[] +. shift 1 +. Text \[rs]\\*[@tmp@]\\$* . rm @tmp@ .. -.\" $FreeBSD: doc/ja_JP.eucJP/man/man5/groff_tmac.5,v 1.4 2001/07/23 02:26:59 horikawa Exp $ -.\" WORD: typesetting system 清書システム -.\" WORD: naming 名称付け -.\" WORD: inclusion 取り込み -.\" WORD: convention 約束事 -.\" WORD: delayed command 遅延コマンド -.\" WORD: Filesystem Hierarchy Standard ファイルシステム階層標準 -.\" -------------------------------------------------------------------- -.\" Title -.\"-------------------------------------------------------------------- -.TH GROFF_TMAC 5 "6 August 2001" "Groff Version 1.17.2" -.SH 名称 -groff_tmac \- roff 清書システム内にあるマクロファイル .\" -------------------------------------------------------------------- -.SH 解説 +.\" SH DESCRIPTION .\" -------------------------------------------------------------------- +. .BR roff (7) -清書システムは、特殊な用途のドキュメントに適した -マクロパッケージを提供しています。それぞれのマクロパッケージは、 -そのパッケージの +清書システムは、特殊な用途の文書に適したマクロパッケージを提供しています。 +. +それぞれのマクロパッケージは、そのパッケージの .BR "tmac ファイル" -と呼ばれるファイル中にマクロおよび定義を格納しています。 +と呼ばれるファイル中に、マクロおよび定義を格納しています。 tmac という名前は、 -.RB ` T roff -.BR MAC ros' +.RB ` T\c +.IB roff MAC\c +.IR ros ' を縮めたものです。 -.LP -tmac ファイルは、普通の roff ソースドキュメントです。ただし、 -通常このファイルには定義および設定コマンドしか含まれておらず、 -テキストは入っていません。tmac ファイルはすべて +. +.P +tmac ファイルは、普通の roff で書かれたソースの文書です。 +ただし、通常このファイルには定義および設定コマンドしか含まれておらず、 +テキストは入っていません。 +. +tmac ファイルはすべて .B tmac ディレクトリという 1 つあるいは少数のディレクトリ内に 保管されています。 +. +. +.\" -------------------------------------------------------------------- +.SH "GROFF マクロパッケージ" +.\" -------------------------------------------------------------------- +. +.I groff +は、すべての古典マクロパッケージ、いくつかの完全パッケージ、 +そしていくつかの特殊な用途の補助パッケージを提供しています。 +. +主要なマクロパッケージは同時に複数個使用できないことに注意してください。 +例えば +. +.IP +.Shell_cmd "groff \-m man \-m ms foo" +. +.P +や +. +.IP +.Shell_cmd "groff \-m man foo \-m ms bar" +. +.P +は失敗します。 +. +. +.\" -------------------------------------------------------------------- +.SS "man\~ページ" +.\" -------------------------------------------------------------------- +. +.TP +.B man +UNIX マニュアルページ (man\~ページ) 用の古典マクロパッケージです。 +これはとても便利で使いやすいものです。 +.BR groff_man (7) +を参照してください。 +. +.TP +.B doc +.TP+ +.B mdoc +man\~ページ用のもう 1 つのマクロパッケージで、 +主に BSD システムで使用されています。 +これはたくさんの新しい機能を提供していますが、 +man\~ページの標準ではありません。 +.BR groff_mdoc (7) +を参照してください。 +. +. +.\" -------------------------------------------------------------------- +.SS "完全パッケージ" +.\" -------------------------------------------------------------------- +. +この節のパッケージは、どのような種類の文書 (本をまるごとでさえ) も +執筆できる完全なマクロの組を提供します。 +. +これらは機能的には類似しています。 +どれを使用するかは、好みの問題です。 +. +. +.TP +.B me +古典的な +.I me +マクロパッケージです。 +.BR groff_me (7) +を参照してください。 +. +. +.TP +.B mm +半古典的な +.I mm +マクロパッケージです。 +.BR groff_mm (7) +を参照してください。 +. +. +.TP +.B mom +新しい +.I mom +マクロパッケージです。 +これは groff でのみ利用できます。 +. +これは他のパッケージを元にしていないため、 +自由に設計することができます。 +. +したがって、これは非常によい、現代的なマクロパッケージになると +期待されています。 +. +.BR groff_mom (7) +を参照してください。 +. +. +.TP +.B ms +古典的な +.I ms +マクロパッケージです。 +.BR groff_ms (7) +を参照してください。 +. +. +.\" -------------------------------------------------------------------- +.SS "特殊パッケージ" +.\" -------------------------------------------------------------------- +. +この節のマクロパッケージは、単独で使用するように意図されたものではなく、 +他のマクロパッケージや素の groff に特殊な機能を追加するために +使用されるものです。 +. +. +.TP +.B papersize +このマクロファイルは既に起動時に +.B troff +が読み込み済なので、明示的に呼び出す必要はありません。 +. +コマンドラインオプション \f[B]\%\-dpaper=\f[]\f[I]size\f[] で +用紙サイズを設定するインタフェースを提供しています。 +. +.I size +に指定可能な値は、DESC ファイルでの定義済の +.B papersize +値 (小文字だけです。 +詳細は +.BR groff_font (5) +を参照してください) ですが +.BR a7 - d7 +は指定できません。 +. +文字 +.B l +(エル) を後に付けると、ランドスケープの向きを意味します。 +. +例: +.BR a4 , +.BR c3l , +.BR letterl +。 +. +.IP +ドライバ固有の DESC ファイルのデフォルト用紙長や向きに優先させるためには、 +ほとんどの出力ドライバで追加のコマンドラインスイッチ +.B \-p +および +.B \-l +が必要となります。 +. +例えば、ランドスケープの向きの A4 用紙に PS 出力を行う場合次のようにします: +. +.IP +.Shell_cmd "groff \-Tps \-dpaper=a4l \-P\-pa4 \-P\-l \-ms foo.ms > foo.ps" +. +. +.TP +.B pspic +このマクロでは、PostScript 画像を文書に取り込むために、1 個のマクロ +.BR PSPIC +が提供されています。 +. +PS 画像の取り込みをサポートする出力デバイス +.BR \-Tps , +.BR \-Tdvi , +.BR \-Thtml +でのみ意味があります。 +ファイルは自動的にロードされます。 +. +構文: +.RS +.IP +\&\fB.PSPIC\fP [\fB\-L\fP|\fB-R\fP|\fB\-I\fP \fIn\fP]\ \fI\|file\fP [\fIwidth\fP [\fIheight\fP]] +.RE +. +.IP +.I file +は画像を含むファイルの名前、 +.I width +と +.I height +は画像の望みの幅と高さです。 +. +.I width +と +.I height +の引数には、スケール指示子を付けられます。 +デフォルトのスケール指示子は +.BR i +です。 +. +このマクロは、x および y 方向に画像を一様にスケールしますので、画像は幅 +.I width +も高さ +.I height +も越えません。 +. +デフォルトで、画像は水平位置の中央に置かれます。 +. +.BI \-L +および +.BI \-R +のオプションは、それぞれ画像を左寄せおよび右寄せにします。 +. +.B \-I +オプションは、画像を +.I n +だけインデントします (デフォルトのスケール指示子は +.BR m +です)。 +. +.TP +.B tty-char +tty デバイス用に、troff の標準文字や groff のいくつかの文字の定義を +上書きします。 +. +貧弱な機器で処理できるようにするため、 +通常の tty 形式のものと比べて、見た目を意図的に落しています。 +. +. +.TP +.B www +インターネット (World Wide Web) ページで使用されている +HTML フォーマットで知られている要素を追加します。 +これには URL リンクやメールアドレスが含まれます。 +.BR groff_www (7) +を参照してください。 +. +. .\" -------------------------------------------------------------------- .SH 名称付け -.\"-------------------------------------------------------------------- -古くからある roff システムには、奇妙な名称付けの体系が -ありました。 -マクロパッケージの名称が +.\" -------------------------------------------------------------------- +. +古くからある roff システムには、 +オプションを解釈する部分の過度に単純化された設計のせいで +奇妙な名称付けの体系がありました。 +. +マクロパッケージは、常にオプション +.option -m +を用いて指定されていました。 +このオプションの後に、区切りの空白もなしに直接引数が続くと、 +1 つのマイナスに続く長い名前のオプションに見えます。 +これは、コンピュータの石器時代には驚くべきことでした。 +. +これをマクロパッケージの名前に対して実際に動くようにするため、 +すべての古典的なマクロパッケージには .'char m -で始まっている場合には、この文字は省略されました。例えば、 -マニュアルページ用のマクロパッケージ -.I man -は -.I an -と呼ばれ、そのパッケージのマクロファイルは +の文字で始まる名前がつけられており、 +この文字はマクロファイルの名前からは省略されていました。 +. +. +.P +例えば、man ページ用のマクロパッケージは +.IR man +と呼ばれますが、このマクロファイルは .IR tmac.an -と呼ばれました -(現在のバージョンの groff では、このファイルは代りに -.I an.tmac -と呼ばれることに注意してください)。 -.LP -似たような理由で、名称が +でした。 +したがって、これは引数 +.I an +をオプション +.option -m +に指定すること、もしくは短く +.option -man +と指定することで有効にできました。 +. +. +.P +同様の理由で、 .'char m -で始まらないマクロパッケージは、 +で始まらないマクロパッケージには、文書化の際や会話において、先頭に .'char m -をつけて表されることがよくありました。例えば、 +が付けられていました。 +例えば、 .I tmac.doc -に対応するパッケージは、 +に対応するパッケージでは、より適切な名前は +.IR doc +であるのに関わらず、文書中では .I mdoc -と呼ばれました。なぜなら、このパッケージをアクティブに -するためのコマンドラインは、次のように表されるからです。 -.RS -.LP -.BIR "troff\ \-m" doc -.RE -.LP -現在の -.BR groff(1) -のバージョンでは、パッケージ名に +と呼ばれていました。 +なぜなら、オプションとその引数との間の空白を省略すると、 +このパッケージを有効にするコマンドラインオプションは +.option "-mdoc" +と表されるからです。 +. +. +.P +すべての状況に対処するため、現在のバージョンの +.BR groff (1) +では、この虐げられてきたマクロパッケージに対して、先頭に .'char m -が付こうが付くまいが、この悩ましいマクロパッケージの名称付け体系を -どちらも提供しています。ですので、 +が付くものと付かないものの 2 つのマクロファイルを提供することによって、 +両方の名称付け体系をうまく扱うことができます。 +. +したがって .IR groff では、 .I man -マクロパッケージは、次のいずれでも指定可能です。 -.RS -.LP -.BIR "groff\ \-m\ " man -.br -.BIR "groff\ \-m" an -.br -.BIR "groff\ \-m" man -.br -.BIR "groff\ \-m " an -.RE -.LP -システムでどのマクロパッケージが利用可能であるかを判別するのに -最も簡単な方法は、 -.I tmac -ディレクトリ群の中身を調べることです。 +マクロパッケージは以下の 4 つの方法のうちの 1 つで指定することができます: +. +.IP +.Shell_cmd "groff\~\-m\~man" +.Shell_cmd "groff\~\-man" +.Shell_cmd "groff\~\-mman" +.Shell_cmd "groff\~\-m\~an" +. +. +.P +最近のパッケージで +.'char m +で始まらないものは、文書化の際に追加の +.'char m +を使用しません。 +. 例えば、 -.BI tmac. anything -または +.I www +マクロパッケージは次の 2 つの方法のうちの 1 つのみで指定できます: +. +.IP +.Shell_cmd "groff\~\-m\~www" +.Shell_cmd "groff\~\-mwww" +. +. +.P +明らかに +.I -mmwww +のようなものは意味をなしません。 +. +. +.P +古典的な troff の持つ 2 番目の奇妙な特徴は、マクロファイルに +.BIR tmac. name +のような名前を付けることです。 +現代的なオペレーティングシステムでは、ファイルの種類は接尾辞、 +つまりファイル名の拡張子によって指定されます。 +. +先ほどと同様に、groff は、 +.I anything +のみが指定された場合 .IB anything .tmac -と呼ばれるファイルは、 -.IR anything -という名前のマクロパッケージを決定しています。 -.LP +と +.BI tmac. anything +のどちらも検索することによって、この状況に対処します。 +. +. +.P +システムでどのマクロパッケージが利用可能であるかを調べる最も簡単な方法は、 +man\~ページ +.BR groff (1) +、もしくは +.I tmac +ディレクトリの内容を確認することです。 +. +. +.P .IR groff -では、マクロパッケージの大部分は、 -古くからあるパッケージに対して +では、マクロパッケージのほとんどは +.BR groff_\f[I]name\f[] (7) +という man ページで説明されています。 +古典的パッケージついては、先頭に .'char m -を先頭に付けた -.BR groff_ (7) -という名前のマニュアルページで説明がされています。 +がついています。 +. +. .\" -------------------------------------------------------------------- .SH 取り込み -.\"-------------------------------------------------------------------- -ドキュメント中でマクロパッケージを使うための方法はいくつかあります。 -実行時に、groff のオプション -.option \-m \ \c +.\" -------------------------------------------------------------------- +. +文書中でマクロパッケージを使用する方法はいくつかあります。 +. +古典的な方法は、実行時に troff/groff のオプション +.option \-m .argument name -を用いてマクロファイル -.IB name .tmac -内の定義を -.BR 名称付け -のセクションで述べたように利用可能にします。 -このファイルが見付からない場合、 -.BI tmac. name -が探されます。 -.LP -groff リクエスト -.request .so -あるいは -.request .mso -を用いてマクロファイルをドキュメントに取り込むことも可能です。 -.request .so -については、マクロファイルのフルパスでのファイル名を指定しなくては -いけません \(em そのマクロファイルが保存されているディレクトリを -含む必要があります。 -マクロファイルが tmac ディレクトリ群のどれか 1 つに格納されている場合、 -代わりに -.request .mso -を使用するほうが便利です。なぜなら、このリクエストは tmac パスを -探索してファイル名を見つけるからです。 -更に、インクルードされるファイルの名前が +を指定することです。 +これによってマクロパッケージ +.I name +の内容が有効になります。 +. +groff では、ファイル .IB name .tmac -という書式の場合でこれが見付からない場合、 -.request .mso -は代りに +は tmac パス内で検索されます。 +見つからなかった場合、代わりに .BI tmac. name -をオープンしようとします。また、この逆も行います。 -.LP -.request .so -および -.request .mso -リクエストを解決するために、roff プリプロセッサ -.shellcommand soelim -が呼ばれなくてはならないことに注意してください。 -ただし、インクルードされるファイルが前処理が必要な場合に限ります。 -これは、コマンドライン上でパイプラインから直接呼ぶか、または -.shellcommand groff -の +が検索されます。 +. +. +.P +別の方法として、文書中にリクエスト +.request so +.I filename +を追加することによって、マクロファイルを取り込むこともできます。 +引数は、存在するファイルの完全なファイル名でなくてはなりません。 +つまり、そのファイルのあるディレクトリをつけることが、おそらく必要です。 +. +groff では、これは同様のリクエスト +.request mso +.IR package +によって改善されました。 +これは、オプション +.option -m +がするように、tmac パス内を検索します。 +. +. +.P +取り込まれるファイルに前処理が必要な場合、 +.request so +や +.request mso +リクエストを解決するために、 +roff プリプロセッサ +.BR soelim (1) +が、呼び出される必要があることに注意してください。 +. +これは、直接コマンドライン上のパイプラインで、 +もしくは troff/groff オプション .option \-s -オプションを使うかすればできます。 -.LP -.BR 約束事 -のセクションで述べているように、 -プリプロセッサワード中に文字 -.'char s -を入れても良いです。 -.LP +のどちらでも行うことができます。 +. +.I man +は、soelim を自動的に呼び出します。 +. +. +.P 例えば、マクロファイルが .I /usr/share/tmac/macros.tmac に保存されており、 .IR docu.roff -という名前のドキュメントで使用されているとします。 -.LP -実行時において、このドキュメントに対するフォーマッタ呼び出しは -次のように行います。 -.RS -.LP -.ft CR -.shellcommand "groff\ \-m" -.argument macros -.argument docu.roff -.ft P -.RE -.LP -ドキュメント内に直接マクロファイルを取り込むには、 -.RS -.ft CR -\&\.mso macros.tmac -.ft P -.RE +と呼ばれる文書で使われるとします。 +. +. +.P +実行時において、この文書に対するフォーマッタの呼び出しは +次のようになります。 +. +.IP +.Shell_cmd "groff\~\-m\~" "macrofile\~document.roff" +. +. +.P +文書内にマクロファイルを直接取り込むには、 +. +.IP +.Example +. Text .mso macrofile.tmac +./Example +. +.P あるいは -.RS -.ft CR -\&\.so /usr/share/tmac/macros.tmac -.ft P -.RE +. +.IP +.Example +. Text .so /usr/share/tmac/macros.tmac +./Example +. +.P を使用します。 -.LP +. +. +.P どちらの場合でも、フォーマッタは -.ft CR -.RS -groff\ \-s docu.roff -.RE -.ft P +. +.IP +.Shell_cmd "groff\~\-s\~" docu.roff +. +.P を使用して呼び出されます。 . +. +.P +もし独自の groff マクロファイルを書きたい場合には、 +それを +.IB whatever .tmac +と名付けて tmac パスのどこかのディレクトリに置くとよいでしょう。 +.BR FILES +を参照してください。 +すると文書は、それを +.request mso +リクエスト、もしくはオプション +.option -m +を使用して取り込むことができます。 +. +. +.ig .\" -------------------------------------------------------------------- -.SH 約束事 -.\" -------------------------------------------------------------------- -.LP -最近の roff 清書システムの多くでサポートされている約束事があります。 -次に述べられているような -.B プリプロセッサワード -がそれです。 -.LP -ドキュメントの 1 行目がコメントである場合、 -最初の単語 (コメント文字および空白の後) は -.B プリプロセッサ -.BR ワード -で構成されます。 -これはつまり、このワードの文字が、ドキュメントを整形する際に -起動しなくてはならないプリプロセッサコマンドの省略形であると -解釈されるということです。 -ほとんどの場合、プリプロセッサのオプションに対応した文字だけが -認識されます。それは、 -.'char e , -.'char G , -.'char g , +.SH CONVENTION +.\" -------------------------------------------------------------------- +. +.\" This section does not fit into the framework of this document. +. +There is a convention that is supported by many modern roff +type-setters and +.BR man (1) +programs, the +.I preprocessor word +described in the following. +. +.P +If the first line in a document is a comment, the first word (after the +comment characters and a blank) constitutes the +.B preprocessor +.BR word . +That means that the letters of this word are interpreted as +abbreviations for those preprocessor commands that should be run +when formatting the document. +. +Mostly, only the letters corresponding to the options for the +preprocessors are recognized, +.'char e +(for +.BR eqn ), +.\" 'char G , +.\" 'char g , .'char p , -.'char R , -.'char s , +(for +.BR pic ), +.'char R +(for +.BR refer ), +.'char s +(for +.BR soelim ), +and .'char t -です -( -.BR roff (7) -を参照)。 -.LP -さらに、ユーザへの良き忘備録として書いておきますが、 -フォーマッタによっては ( +(for +.BR tbl ). +(see +.BR roff (7)). +. +. +.P +Besides being a good reminder for the user, some formatters (like the .BR man (1) -プログラムのように) プリプロセッサワードで指定されたプリプロセッサを -自動的に起動させることまでもできるものがあります。ただし、このことを -あてにしてはいけません。 +program) are even able to automatically start the preprocessors +specified in the preprocessor word, but do not bet on this. +. +. +.P +The +.I man +program handles some preprocessors automatically, such that in +man\~pages only the following characters should be used: +.'char e , +.'char p , +and +.'char t . +. +. +.. .\" -------------------------------------------------------------------- -.SH "マクロファイルを記述する" -.\"-------------------------------------------------------------------- -マクロファイルを記述するのは簡単です。マクロ、文字列、レジスタなどの -セットを設計してください。そしてそれを 1 つのファイルに -保存してください。 -記述したマクロを使用するドキュメントは、 -.B 取り込み -セクションで述べたように -.request .so -リクエストを使ってマクロを取り込みます。 -.LP -tmac の機能を使用するには、マクロファイル -.IB whatever .tmac -(または -.BI tmac. whatever\c -) を呼び出し、tmac パスのどれかのディレクトリにファイルを置きます。 -.BR 関連ファイル -セクションを参照してください。 -そうすると、ドキュメントは -.B 取り込み -セクションで述べたように -.request .mso -リクエストあるいは -.shellcommand "groff\ \-m" -オプションを使ってマクロファイルを取り込むことができます。 -.LP -もしあなたが書いたマクロが一般用途に使えるかもしれないものなら、 -groff メンテナに連絡を取って、そのマクロが groff の -.I contrib -ソースディレクトリに含まれるようにしてください。 -.LP -マクロを書く際には、いくつか一般的なガイドラインがあれば役に立つ -でしょう。 -.IP \(bu 2m -機能のあるバックスラッシュはすべて 2 重にします。 -.'char \e --> -.'char \e\e -.IP \(bu 2m -印字可能なバックスラッシュはすべて -.'char \ee -というように書かなくてはなりません。 -.IP \(bu 2m -ドットはすべてエスケープしてください。 -.'char . --> -.'char \e. -.IP \(bu 2m -テキスト部分には、印字できない文字 -.'char \e& -を広く使用するようにしてください。特に、 -.'char \e -の前や行頭で使用してください。ただし、遅延コマンドの前では -使用しないでください。 -.IP \(bu 2m -文字 -.'char @ -を一時的な変数名に使用してください。 -.IP \(bu 2m -あなたが書いたマクロをテキストおよびグラフィックデバイスに対して -テストしてください。例えば、 -.I latin1 +.SH "マクロの記述" +.\" -------------------------------------------------------------------- +. +.BR roff (7) +文書は、リクエストやエスケープシーケンス、文字列、数値レジスタ、 +マクロパッケージのマクロなどの定義済みフォーマット構造によって +拡充されたテキストファイルです。 +. +これらの要素は +.BR roff (7) +に説明されています。 +. +. +.P +文書を個人的なスタイルにしたい場合は、繰り返し行われることに対して +マクロを定義して、既存の要素を拡張するのが最も役に立ちます。 +これを行うのは、文書の最初に近いところ、もしくは別のファイルに +するのが最もよいでしょう。 +. +. +.P +引数のないマクロは、ちょうど文字列のようなものです。 +. +しかしマクロの本当の力は、マクロ呼び出しに引数が渡された時に現れます。 +. +マクロ定義内では、引数は次のエスケープシーケンスとして +利用することができます: +.BR $1 , +\*[Ellipsis], +.BR $9 , +.BR $[ \*[Ellipsis] ] , +.BR $* , +.BR $@ +。 +マクロが呼び出された時のマクロ名は +.BR $0 +に格納され、引数の数はレジスタ +.BR \n[.$] +に格納されています。 +.BR groff (7) +を参照してください。 +. +. +.\" -------------------------------------------------------------------- +.SS "コピーイン (copy-in) モード" +.\" -------------------------------------------------------------------- +. +groff がマクロを読む込むフェーズを、roff では +.I "コピーインモード" +と言います。 +. +これは、C\~言語でプログラムを開発する時の C\~プリプロセッサが処理を +行うフェーズに似ています。 +. +. +.P +このフェーズでは、groff はすべてのバックスラッシュを解釈します。 +これは、マクロ本体のすべてのエスケープシーケンスが解釈され、 +それぞれの値に置き換えられることを意味します。 +. +変化しない表現であれば、これは望まれた動作ですが、 +マクロ呼び出しのたびに変化するかもしれない文字列やレジスタは、 +値を評価しないように保護しなくてはなりません。 +. +これは、エスケープシーケンスの先頭にあるバックスラッシュを +二重にすることでとても容易に行うことができます。 +. +位置パラメータにとって、この二重化は最も重要です。 +. +例として、マクロに渡された引数の情報を端末に表示するには、 +例えば以下のような `.print_args' という名前のマクロを定義します。 +. +. +.P +.ds @1 \[rs]f[I]\[rs]\[rs]$0\[rs]f[]\" +.ds @2 arguments:\" +.Example +. Text .ds midpart was called with +. Text .de print_args +. Text .\~\~tm\~\*[@1]\~\[rs]\[rs]*[midpart]\~\[rs]\[rs]n[.$]\~\*[@2] +. Text .\~\~tm\~\[rs]\[rs]$* +. Text .. +./Example +.rm @1 +.rm @2 +. +. +.P +このマクロが次のように呼ばれると、 +. +.P +.Example +. Text .print_args arg1 arg2 +./Example +. +.P +以下のようなテキストが端末に表示されます: +. +.P +.Example +. Text \f[CI]print_args\f[] was called with the following 2 arguments: +arg1 arg2 +./Example +. +. +.P +では、マクロ定義中の各バックスラッシュを解析してみましょう。 +. +位置パラメータと引数の数は、各マクロ呼び出しで変化するので、 +先頭のバックスラッシュは二重化しなければなりません。 +よって、 +.I \[rs]\[rs]$* +と +.IR \[rs]\[rs][.$] +となります。 +同様にマクロ名にもこれを適用します。 +なぜなら、別名で呼ばれるかも知れないからです。 +したがって、 +.IR \[rs]\[rs]$0 +となります。 +. +. +.P +一方、 +.I midpart +は文字列定数であり変化しないので、 +.IR \[rs]*[midpart] +は二重化しません。 +.I \[rs]f +エスケープシーケンスは、テキスト中のフォントを設定する +定義済み groff 要素です。 +. +もちろん、この動作も変化しないので +.I \[rs]f[I] +と +.IR \[rs]f[] +は二重化しません。 +. +. +.\" -------------------------------------------------------------------- +.SS "ドラフトモード" +.\" -------------------------------------------------------------------- +. +エスケープ機構を一時的に無効にすると、マクロを記述するのは簡単になります。 +. +groff では、マクロ定義を +.B .eo と -.IR ps -がそうです。 +.B .ec +リクエストの組で囲むことで無効にすることができます。 +. +するとマクロ定義の本体は、通常の文書部分と同じようになります。 +ここで通常の文書部分とは、リクエストやマクロ、文字列、 +レジスタなどの呼び出しで拡張されたテキストのことです。 +. +例えば、上記のコードは以下のように簡単に書くことができます。 +. +. +.P +.ds @1 \[rs]f[I]\[rs]$0\[rs]f[]\" +.ds @2 arguments:\" +.Example +. Text .eo +. Text .ds midpart was called with +. Text .de print_args +. Text .\~\~tm\~\*[@1]\~\[rs]*[midpart]\~\[rs]n[.$]\~\*[@2] +. Text .\~\~tm\~\[rs]$* +. Text .. +. Text .ec +./Example +.rm @1 +.rm @2 +. +. +.P +よくないことに、ドラフトモードは常に使えるわけではありません。 +. +これは通常のマクロを定義するには十分ですが、ドラフトモードは +間接的に定義された文字列やレジスタなどの高度な応用には使えません。 +. +最もよい方法は、すべてのマクロをドラフトモードで定義してテストをし、 +そして最後の段階としてバックスラッシュを二重化することです。 +.I .eo +リクエストを外すのを忘れないようにしてください。 +. +. +.\" -------------------------------------------------------------------- +.SS "マクロ定義のための助言" +.\" -------------------------------------------------------------------- +. +.Topic +すべての行をドットで始めるようにします。 +例えば、テキスト行に groff リクエスト +.B .nop +を使用したり、先頭がドットのテキスト行も扱うあなた独自のマクロを書きます。 +. +.IP +.Example +. Text .de Text +. Text .\~\~if (\[rs]\[rs]n[.$] == 0)\~\[rs] +. Text .\~\~\~\~return +. Text .\~nop\~\[rs])\[rs]\[rs]$*[rs]\) +. Text .. +./Example +. +.Topic +コピーインモードでもドラフトモードでも動作するように、 +コメントマクロを記述するようにします。 +なぜなら、ドラフトモードではエスケープが無効になるので、 +通常のコメントが使用された時、問題が起こるかも知れないからです。 +. +例えば、以下のマクロは単に引数を無視するので、 +コメント行のように動作してしまいます。 +. +.IP +.Example +. Text .de\~c +. Text .. +. Text .c\~This\~is\~like\~a\~comment\~line. +./Example +. +.Topic +長いマクロ定義中では、コメント行や構造化のための空行を +たくさん使用するようにします。 +. +.Topic +読みやすくするために、リクエストやマクロ呼び出しに対して +groff のインデント機能を使用するようにします +(先頭のドットの後に、任意の空白を置けます)。 +. +. +.\" -------------------------------------------------------------------- +.SS "転換 (diversion)" +.\" -------------------------------------------------------------------- +. +転換は、非常に高度なプログラミング構造を実現するために使用されます。 +. +これらは C\~プログラミング言語における大きなデータ構造へのポインタに +似ていますが、その使用方法はとても異なっています。 +. +. +.P +過度に単純化された形式では、転換は複数行の文字列ですが、 +転換の能力は、それがマクロ中で動的に使用された時に現れます。 +. +転換内に保持された情報は、転換をちょうどマクロのように呼び出すことで +取り出すことができます。 +. +. +.P +転換に関して起こるほとんどの問題は、転換は常に完全な行を +扱うのだという事実を意識することで避けることができます。 +. +行バッファがフラッシュされてない時に転換が使用された場合、 +奇妙な結果が生成されます。 +このことを知らないと、多くの人が転換を使いものにならないと +思ってしまいます。 +. +転換が動作することを保証するには、 +改行を適切な場所で入れることが必要です。 +. +安全のために、転換に関するものはすべて、1 対の改行の間に入れます。 +例えば、 +.B .br +リクエストを多用します。 +. +この規則は、転換の定義の中と外の両方、 +そしてすべての転換の呼び出しに適用するのがよいでしょう。 +. +これは少しやりすぎですが、これでちゃんと動作します。 +. +. +.P +[もし現在行の途中までを無視して転換を行う必要がある時には、 +現在行の途中までを保存するのに環境を使用するか、または +.B .box +リクエストを使用するか、もしくはこの両方を使用します] +. +. +.P +転換の最も強力な特徴は、あるマクロ定義中で転換を開始し、 +他のマクロ中で転換を終えることです。 +. +すると、このマクロの組のそれぞれの呼び出しの間のすべてが +転換に格納され、マクロ中で操作することができます。 +. +. .\" -------------------------------------------------------------------- .SH 関連ファイル .\" -------------------------------------------------------------------- -tmac メカニズムを使用したいマクロ名はすべて、 +. +tmac の機構を完全に使用するためには、すべてのマクロの名前は .IB name .tmac -または +と名付けなければなりません。 +. +古典パッケージのように .BI tmac. name -の書式に従って名付けられなければなりません。 -.LP -マクロファイルは、 -.B tmac -.BR ディレクトリ群 -に保存されています。このディレクトリ群すべてが -.B tmac -.BR パス -を構成しています。 -.LP -マクロファイルを検索するパスの要素は (順番に) 次の通りです: -.IP \(bu 4 -troff に対応する groff の +も同様に可能ですが、使用しない方がよいでしょう。 +. +. +.P +マクロファイルは +.IR "tmac ディレクトリ" +に保持されています。 +.IR "tmac パス" +は、これらのコロン区切りのリストで構成されます。 +. +. +.P +マクロファイルの検索手順は以下のように (この順で) 行われます: +. +.Topic +troff/groff の .B \-M -コマンドラインオプションで指定されるディレクトリ -command line option -.IP \(bu 4 -.B GROFF_TMAC_PATH -環境変数で与えられるディレクトリ -.IP \(bu 4 -現在のディレクトリ ( +コマンドラインオプションで指定されたディレクトリ +. +.Topic +.Env_var $GROFF_TMAC_PATH +環境変数で与えられたディレクトリ +. +.Topic +カレントディレクトリ +(安全でないモードの時のみ。これは .B \-U -コマンドラインスイッチを使用して、安全ではないモードである場合のみ) -.IP \(bu 4 +コマンドラインスイッチで有効になります) +. +.Topic ホームディレクトリ -.IP \(bu 4 -サイト固有の (プラットフォーム非依存の) ディレクトリ、 -プラットフォーム固有ディレクトリ、 -そしてメイン tmac ディレクトリ: -.IP "" 6 -/usr/share/tmac -.br -/usr/share/tmac -.br -/usr/share/tmac +. +.Topic +プラットフォーム特有のディレクトリ。 +このインストールでは +.B /usr/share/tmac +です。 +. +.Topic +サイト特有 (プラットフォーム非依存) のディレクトリ。 +このインストールでは +.B /usr/share/tmac +です。 +. +.Topic +主要の tmac ディレクトリ。 +このインストールでは +.B /usr/share/tmac +です。 +. +. .\" -------------------------------------------------------------------- .SH 環境変数 .\" -------------------------------------------------------------------- +. .TP -.B GROFF_TMAC_PATH -コロン区切りの追加の tmac ディレクトリリストであり、 +.Env_var $GROFF_TMAC_PATH +追加された tmac ディレクトリのコロン区切りのリストで、 このリストからマクロファイルを探します。 -詳細については、前の節を参照してください。 -.\" -------------------------------------------------------------------- -.SH バグ -.\" -------------------------------------------------------------------- -groff ドキュメントは、現在発展中です。一時的に他のドキュメントとの間で -小さな食い違いができてしまう可能性があります。 +. +詳細は、前の節を参照してください。 +. +. .\" -------------------------------------------------------------------- .SH 作者 -.\"-------------------------------------------------------------------- -このドキュメントは groff、すなわち GNU roff 配布物の一部です。 -このドキュメントは Bernd Warken が書きました。 -.LP -このドキュメントは FDL (GNU Free Documentation License) バージョン -1.1 以降の条項のもとで配布されています。お使いのシステムには -FDL のコピーがあるはずです。また、 -.RS -.LP -.IR -.RE -からオンラインでも入手可能です。 +.\" -------------------------------------------------------------------- +. +Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +. +.P +この文書は、FDL (GNU Free Documentation License) バージョン 1.1 か +それ以降のものに基づいて配布されています。 +. +あなたは、システム上に FDL のコピーを受け取っているはずですが、 +これは +.URL http://\:www.gnu.org/\:copyleft/\:fdl.html "GNU copyleft site" +からもオンラインでも入手可能です。 +. +.P +この文書は +.IR groff +、すなわち GNU roff 配布物の一部です。 +. +これは +.MTO bwarken@mayn.de "Bernd Warken" +によって書かれ、 +.MTO wl@gnu.org "Werner Lemberg" +によって保守されています。 +. +. .\" -------------------------------------------------------------------- .SH "関連項目" .\" -------------------------------------------------------------------- -groff システムの詳細すべてについて信頼できる情報源は、groff の +. +groff システムのすべての部分の完全なリファレンスは、 +groff .BR info (1) -ファイルです。 -.LP -groff の概要については、 -.BR roff (7) -および groff ソースパッケージ中の -.I README -ファイルを参照してください。 -.LP -groff tmac マクロパッケージは、 +ファイル中にあります。 +. +.TP +.BR groff (1) +groff システムの全体像です。 +. +.TP .BR groff_man (7), -.BR groff_mwww (7), +.TP+ .BR groff_mdoc (7), -.BR groff_mdoc.samples (7), +.TP+ .BR groff_me (7), +.TP+ .BR groff_mm (7), -.BR groff_mmroff (7), -.BR groff_ms (7) -です。 -.LP -groff の言語については +.TP+ +.BR groff_mom (7), +.TP+ +.BR groff_ms (7), +.TP+ +.BR groff_www (7). +groff tmac マクロパッケージです。 +. +.TP .BR groff (7) -で、フォーマッタについては -.BR groff (1), -.BR troff (1) -で説明されています。 -.LP +groff 言語です。 +. +. +.P ファイルシステム階層標準 (FHS) は -.BR http://www.pathname.com/fhs/ -で入手可能です。 +.URL http://\:www.pathname.com/\:fhs/ "FHS web site" +から入手可能です。 . .\" Local Variables: .\" mode: nroff .\" End: