Provided by: manpages-ja_0.5.0.0.20210215+dfsg-1_all
名称
refer - groff のための参考文献目録プリプロセッサ
書式
refer [ -benvCPRS ] [ -an ] [ -cfields ] [ -fn ] [ -ifields ] [ -kfield ] [ -lm,n ] [ -pfilename ] [ -sfields ] [ -tn ] [ -Bfield.macro ] [ filename... ] コマンドラインオプションとパラメータの間に、空白を置くことが可能です。
解説
本ファイルでは groff ドキュメントフォーマッティングシステムの一部である GNU バージョンの refer について記述します。 refer は .[ と .] で囲まれた引用として解釈される行と、 .R1 と .R2 で囲まれた引用の処理方法を記述したコマンドとして解釈される行を除き、 filename... の内 容を標準出力にコピーします。 各々の引用では参考文献を指定します。 引用では、ある参考文献にのみ含まれるキーワードの集合 を与えることによって、 その参考文献を図書目録データベースから指定できます。 また、引用の中 でデータベースレコードを指定することによっても参考文献を 指定できます。 これらの方法を組み 合わせることも可能です。 各々の引用において refer はテキストの中にマークを作成できます。 このマークは色々な方法でテ キストや他のラベルから区別されるいくつかのラ ベルから構成されます。 各引用における参考文献 をマクロパッケージを使ってフォーマットして出力す るための groff コマンドを出力することもで きます。 そのためには refer の出力は適切なマクロパッケージを使って処理されなければなりませ ん。 -ms と -me はいずれも適切なマクロです。 引用の参考文献をフォーマットするコマンドを引 用の直後に出力することも、 参考文献を蓄積して後でコマンドを出力することもできます。 参考文 献を蓄積した時、同じ参考文献が複数から引用されている場合には、 参考文献は 1 つにまとめて フォーマットされます。 GNU refer の新しい機能として .R1 と .R2 の間の行はコマンドとして解釈されます。 この機能を 使用して作成されたドキュメントは、ドキュメントの先頭に .de R1 .ig R2 .. の行を追加することにより UNIX refer でも処理できます。 この指定によって troff は .R1 と .R2 の間をすべて無視します。 このオプションによっていくつかのコマンドと同等の効果を得るこ とができ ます。 これらのオプションは主に Unix refer との互換性のためにサポートされてい る ものです。 通常はコマンドを使った方が便利です。 refer は refer の出力を読むコマンドによって生成されるメッセージの中のファイル名と行番 号が 正しくなるように .lf 行を生成します。 入力が soelim (1) のようなコマンドによって前処理され ている場合でも、メッセージ中のファイ ル名と行番号と生成される .lf 行が正確になるように .lf で始まる行も解釈します。
オプション
ほとんどのオプションには同等なコマンドがあります (これらのコマンドについては コマンド セク ションの説明を参照して下さい)。 -b no-label-in-text; no-label-in-reference -e accumulate -n no-default-database -C compatible -P move-punctuation -S label "(A.n|Q) ', ' (D.y|D)"; bracket-label " (" ) "; " -an reverse An -cfields capitalize fields -fn label %n -ifields search-ignore fields -k label L~%a -kfield label field~%a -l label A.nD.y%a -lm label A.n+mD.y%a -l,n label A.nD.y-n%a -lm,n label A.n+mD.y-n%a -pfilename database filename -sspec sort spec -tn search-truncate n これらのオプションは以下のコマンドと同等です。ただし、通常の方法のか わりにコマンド行で指 定されるファイル名が bibliography コマンドへの引数であるように処理されます。 -B annotate X AP; no-label-in-reference -Bfield.macro annotate field macro; no-label-in-reference 以下のオプションには同等なコマンドはありません。 -v バージョン番号を表示します。 -R .R1 / .R2 で始まる行を認識しません。
使用法
図書目録データベース 図書目録データベースは 1 行以上の空白行で区切られたレコードからなるテ キストファイルです。 各レコードではフィールドは % で始まる行で開始します。 各フィールドには % に続く 1 文字の名 称があります。 フィールドの名称には大文字か小文字のみを使うのが最良の方法です。 フィールド の名称の後には正確に 1 つのスペースが続かなければなりませ ん。 空のフィールドは無視されま す。 各フィールドの慣例的な意味は次の通りです。 A 作者の名前。 名前の末尾に Jr. のような肩書が含まれる場合はコンマでラストネームと区 切られていなければ なりません。 A フィールドは複数回現れても構いません。 出現する順 番は意味を持ちます。 A フィールドか Q フィールドは常に指定するのが良いでしょう。 B ある本の一部である記事において、その本のタイトルです。 C 出版社の所在地 (都市) です。 D 出版された日付です。 出版年に略称を使用してはいけません。 もし出版月を指定する場合 は数字による月ではなく、月名を使わなければなり ませんが、最初の 3 文字を指定すれば 十分です。 D フィールドは常に指定するのが良いでしょう。 ただし、出版の日付が分から なければ in press や unknown のような値を使うこともできます。 E ある本の一部である記事において、その本の編集者の名前です。 出版作業が著者のない編集 だけのものであった場合、編集者の名前を A フィールドで指定し、 , (ed) または , (eds) を最後の著者の後に指定しなければなりません。 G 米国政府注文番号です。 I 出版者 (発行人) です。 J 定期刊行物の記事における、その刊行物の名称です。 K 検索に使われるキーワードです。 L ラベルです。 N 定期刊行物の発行番号です。 O その他の情報です。 これは通常参考文献の末尾に印刷されます。 P ページ番号です。 ページ番号の範囲は m - n で指定できます。 Q 著者が個人でない場合の著者の名称です。 これは A フィールドがない場合にのみ使用され ます。 Q フィールドは 1 つのみ使うことができます。 R 技術報告書番号です。 S シリーズの名称です。 T タイトルです。 本や定期刊行物中の記事ではこれは記事のタイトルとなります。 V 定期刊行物もしくは本のボリューム番号です。 X 注釈です。 A と E を除くすべてのフィールドで、あるレコードに複数の特定のフィールドがある 場合、最後の フィールドのみが使用されます。 アクセント文字列はアクセントをつける文字に引き続いて指定されなければな りません。これは AM マクロは -ms マクロとともに使用しなければならないことを意味します。 アクセント文字列は引用 符で囲んではいけません。 また、 \ は 2 つでなく 1 つのみ使って下さい。 引用 引用のフォーマットは .[opening-text flags keywords fields .]closing-text となります。 opening-text と closing-text と flags のコンポーネントは省略可能です。 keywords か fields のいずれか 1 つのコンポーネントを指定する必要があります。 keywords コンポーネントは keywords に含まれる全ての単語を含む参考文献を文献データベースか ら検索するために 指定します。 もし複数の参考文献が見つかった場合はエラーとなります。 fields コンポーネントは参考文献の中で指定されるものを置き換えるか付け加えるた めの追加 フィールドを指定します。 参考文献が蓄積される設定で、 keywords コンポーネントが空でなけれ ば、追加フィールドはある特定の参考文献が引用 されている最初の部分においてのみ指定されなけ ればならず、その参考文献を 引用している全ての部分に適用されます。 opening-text と closing-text コンポーネントは bracket-label コマンドにおいて指定される文字 列の代わりにラベルを囲むために使われる文 字列を指定します。 これらのいずれもが空でなけれ ば、 bracket-label コマンドで指定されている文字列は使われません。 この処理は [ と ] フラグ を使って置き換えることができます。 これらのコンポーネントの前と後につくスペースは意味を持 つことに注意し て下さい。 flags コンポーネントはここでの引用の扱いを変更するためのアルファベット以外の 文字のリスト です。 Unix refer はこれらのフラグをキーワードの一部として処理しますが、それ らはアルファ ベットでないため無視します。 以下のフラグが現在認識されるものです。 # これは short-label コマンドによって指定されるラベルを label コマンドで指定されるも のの代わりに使用することを指示します。 もしショートラベルが指定されなければ、通常の ラベルが使用されます。 普通はショートラベルは auther-date ラベルに使用され、日付と おそらくは 曖昧さが取り除かれた文字から構成されます。ここで、 # はラベルの数字によ るタイプを示唆するものと考えられます。 [ bracket-label コマンドの中で指定される最初の文字列が opening-text の前に置かれま す。 ] bracket-label コマンドの中で指定される 2 番目の文字列が closing-text の後に置かれま す。 opening-text と closing-text の中に括弧を含めるのではなく、 [ と ] フラグを使うことの 1 つ の利点は bracket-label コマンドで変更するだけでドキュメントの中で使っている括弧のスタイル を変 更できることです。 もう 1 つの利点として、これらのフラグを使うことによって引用のソー トとマー ジを禁止する必要がないことがあげられます。 もしラベルがテキスト中に挿入されるべきものであれば、それは .[ 行の前の行に挿入されます。 そのような行がない場合には .[ の前に余分の行が挿入されて警告が表示されます。 複数の参考文献に対する引用を作成する特別の表記法はありません。 ただ引用を 1 つの参考文献に つき 1 つずつ連続して使用します。 引用の間には何も入れないで下さい。 全ての引用に対するラ ベルは最初の引用の前の行に付加されます。 ラベルはまたソートしたり、マージしたりすることも できます。 ラベルの表記法 <> とコマンド sort-adjacent-labels と abbreviate-label-ranges の 説明を参照して下さい。 ラベルは引用に空でない opening-text か closing-text がある時には マージされません。 しかし、 opening-text が伴わず [ フラグを使った引用がその直後に続く、 closing-text を伴わない ] フラグを使った引用のラベルは最初の引用の opening-text か次の引用 の closing-text が空でない場合においても、ソートとマージを行なうことができます。 (もしこれ を行ないたくない場合は、最初の引用で closing-text を \& としてください。) コマンド コマンドは .R1 で始まる行と .R2 の間に指定されます。 これらの行は -R オプションを使うこと によって認識されないようにできます。 .R1 行が認識された時、すべての蓄積されている参考文献 は消去されます。 .R1 行と .R2 行およびこれらの間に指定されたものはすべて出力されません。 コマンドは改行か ; によって区切られます。 # からその行の最後まではコメントとなります (しか し、改行自身は改行としてあつかわれます)。 各コマンドはワードに分割されます。 ワードはス ペースかタブによって区切られます。 " で始まるワードは次の " (ただしもう 1 つの " が直後に ないもの) までがワードとして扱われます。 もし、次の " がない場合にはその行の最後までがワー ドとなります。 " で始まるワード中の " のペアはひとつの " として扱われます。 " の中では # と ; は認識されません。 行は末尾に \ をつけることによって継続できます。 ただし # の後の場 合は継続されません。 * でマークされた各コマンド name には name の効果を打ち消す否定コマンド no-name がありま す。 例えば、 no-sort コマンドは参考文献をソートしないことを指定します。 否定コマンドは引 数を取りません。 以下の説明で各引数はひとつのワードとなります。 field はフィールドの名前となる 1 文字の小文 字または大文字です。 fields はそのような文字のシーケンスです。 m と n は非負の数字です。 string は任意の文字列です。 filename はファイル名です。 abbreviate* fields string1 string2 string3 string4 fields のファーストネームを短縮形にします。 頭文字ともう 1 つの頭 文字の間には string1 が挿入されます。 ラストネームとの間には string2 が挿入され、その他のもの ( von や de のようなもの) との間 には string3 が挿入されます。これらのストリングのデフォルトはピリ オドにスペースが続 いたものとなります。 ハイフンで区切られた ファーストネームの中で、名前の最初の部分の頭文字は string4 (デ フォルトはピリオド) によってハイフンと分離されます。 省略形に起因 する曖昧さについては特に考慮していません。 名前はソートする前およ びラベルが構築される前に省略形にされます。 abbreviate-label-ranges* string 連続した参考文献を参照する 3 つ以上の隣接するラベルは、最初のラベ ル string 最後のラベルの順からなる 1 つのラベルに省略されます。 これは主に数字ラベルにおいて便利です。 string が省略された場合の デフォルトは - です。 accumulate* 各参考文献を出現するたびに書き出すのではなく、参考文献を蓄積して いきます。 蓄積された参考文献はすべての入力ファイルが処理され .R1 行が認識された後に、 .[ $LIST$ .] の形式の参照が指定された時に書き出されます。 annotate* field string field は注釈です。注釈は参考文献の最後に .string の行の後にパラグラフとして印刷されます。 macro が省略されるとデ フォルトの AP となります。もし、 field も省略されるとデフォルトの X となります。 注釈になれるフィールドは 1 つのみです。 articles string... string... は定冠詞もしくは不定冠詞であり、ソートされる時には フィールド T の最初では無視されなければなりません。 初期状態では the と a と an が冠詞として認識されます。 bibliography filename... 図書目録データベース filename... に含まれる全ての参考文献を書き 出します。 bracket-label string1 string2 string3 テキスト中で、各ラベルを string1 と string2 で囲みます。 string2 の直後に string1 が現れた場合は string3 に置き換えられます。 デ フォルトでは bracket-label \*([. \*(.] ", " となります。 capitalize fields fields を大文字とそれに続く小文字に変換します。 compatible* スペースや改行以外の文字が次に続く場合でも .R1 と .R2 を認識しま す。 database filename... 図書目録データベース filename... を検索します。 各々の filename について、もし indxbib(1) によって生成されたインデックス filename.i が存在すれば、それが代わりに検索されます。各インデック スは複数のデータ ベースをカバーできます。 date-as-label* string string はラベルを構成した後にフィールド D を置き換える文字列を指 定するラベル式です。 ラベル式の説明については ラベル式 の項を参照 して下さい。 このコマンドは参考文献リストの中で明示的なラベルは使 いたくないが、何ら かの方法で日付を修飾することによって曖昧さを取 り除きたい場合に便利です。 通常、テキスト中で使用されているラベル は作者と日付の組み合わせになります。 ほとんどの場合、 no-label- in-reference コマンドも使う必要があります。 例えば、 date-as-label D.+yD.y%a*D.-y は参考文献中のフィールド D の年の部分に曖昧さを取り除く文字を追加 します。 default-database* デフォルトのデータベースを検索します。 これはデフォルトの動作であ り、このコマンドの否定バージョンが有用です。 refer は検索を行なう 必要が最初に出てきた場合、デフォルトのデータベースを 検索するべき かどうかを決定します。 そのため no-default-database コマンドを有 効とするためには、それ以前に指定しておく必要があります。 discard* fields 参考文献が読み込まれた時、 fields を無効とします。 fields の文字 列の定義は出力されません。 初期状態では fields は XYZ となってい ます。 et-al* string m n ラベル式における式 @ の評価での et al の使い方を制御します。 著者 のシーケンスを明確にするために必要な著者の数を u 、著者の合計が t とすると、最後の t-u の著者が string によって置換され、 t-u が m より小さくなく、 t が n より小さくないようになります。 デフォルト では et-al " et al" 2 3 となります。 include filename filename をインクルードし、その内容をコマンドとして解釈します。 join-authors string1 string2 string3 これはどのように作者を連結するかを指定します。 ちょうど 2 人の作 者がある場合、 string1 によって連結されます。 2 人より多い作者が ある場合、最後の 2 人を除いた作者は string2 で連結され、最後の 2 人の作者は string3 で連結されます。 もし string3 が省略される と、デフォルトは string1 となります。 もし string2 も省略される と、デフォルトは string1 となります。 例えば、 join-authors " and " ", " ", and " は作者の連結をデフォルトの方法に戻します。 label-in-reference* 参考文献を出力する時に、文字列 [F を参考文献のラベルに定義しま す。 これはデフォルトの動作です。このコマンドの否定バージョンが有 用です。 label-in-text* 各参考文献においてテキスト中のラベルを出力します。 ラベルは bracket-label コマンドに記述されているようにそれを囲むテキストと 分離されます。 これはデフォルトの動作です。このコマンドの否定バー ジョンが有用です。 label string string はどのように各参考文献にラベルをつけるかを記述するラベル式 となります。 separate-label-second-parts string 2つの部分からなるラベルをマージする時、2 番目のラベルの 2 番目の 部分を string で最初のラベルと分離します。 ラベル式については <> のラベル式の説明を参照して下さい。 move-punctuation* テキストにおいてラベルの後の行末の句読点を移動します。 ラベルに肩 文字の数字を使っていなければ、このコマンドを使うといいでしょ う。 reverse* string 名前が string 中にあるフィールドを逆にします。 各フィールド名の後 にはいくつのフィールドが逆にされるかを示す数が指定さ れます。 フィールドにこの数が指定されなければ、そのフィールドは全て逆にな ります。 search-ignore* fields インデックスが存在しないデータベースでキーを検索している際に、 fields の内容を無視します。 初期状態ではフィールド XYZ が無視され ます。 search-truncate* n キーの最初の n 文字が与えられることのみを要求します。 実際にデー タベース中で与えられたキーを検索する時には n とキーの長さの大きい 方の長さに切られます。 初期状態では n は 6 です。 short-label* string string はラベルのもう 1 つの (通常は短縮形の) スタイルを指定する ラベル式です。 これは # フラグが引用で与えられている時に使われま す。 author-date スタイルのラベルを使う時、作者は文脈から明らかに 識別できる ことがあり、ラベルでは作者を省略したいことがあります。 通常、 short-label コマンドは日付と (多分) 明確な文字のみを含むラ ベルを指定するために使用 されます。 sort* string string に従って参考文献をソートします。 参考文献は自動的に累積さ れます。 string はフィールド名のリストであり、各フィールド名には ソートに使われる名前に いくつのフィールドがあるかを示す数字が続き ます。 + を名前のついた全てのフィールドを使うことを示すために使う ことができます。 また、 . を参考文献が (一時的な) ラベルを使って ソートされることを示すために使う こともできます。 ( ラベル式 のセ クションで一時的なラベルの概念について説明しています。) sort-adjacent-labels* 参考文献リスト中での位置に従って、テキスト中の隣接しているラベル をソー トします。 このコマンドは通常は abbreviate-label-ranges コ マンドが与えられている時か、ラベル式に <> 式が含まれている時に使 用するべきです。 これは参考文献が累積されていないと影響がありませ ん。 ラベル式 ラベル式は通常もしくは一時的に評価できます。 通常評価の結果は出力に使われます。 一時的評価 の結果は 一時的ラベル と呼ばれ、通常評価でラベルを明確にする必要がある情報を集めるために使 わ れます。 date-as-label と short-label コマンドで指定されるラベル式は一時的には評価され ません。 通常評価と一時的評価は @ と * と % の式を除いた全てのタイプの式で同じです。 以下 の説明は特に指定された場合を除き通常評価に適用されます。 field field n field の n 番めの部分です。 n が省略された場合はデフォルトは 1 となります。 'string' string 中の文字は文字通り解釈されます。 @ 全ての作者を join-authors コマンドで指定された通りに連結します。 各々の作者名の全体 が使用されます。 しかし参考文献が作者でソートされると (すなわち A+ で始まるソート仕 様)、 作者のラストネームが代わりに使用され (これは曖昧さを持ち込みません)、 また作 者の頭文字のシーケンスが全ての作者の代わりに使用されます (これも 曖昧さを持ち込みま せん)。 いくつかの参考文献の i番目 の作者にラストネームだけを使うのは他に参考文献が ある時には曖昧であると 考えられます。すなわち参考文献の最初の i-1 人の作者が同じ で、 i番目 の作者は同じでないが、 i番目 の作者のラストネームが同じであるような場合 です。 いくつかの参考文献の作者のシーケンスの適切な頭文字のサブシーケンスは、 適切 な頭文字のサブシーケンスとしてのサブシーケンスをもつ作者の別のシー ケンスをとる参考 文献がある場合には、曖昧であると考えられます。 作者の頭文字のサブシーケンスが使われ る場合、残りの作者は et-al コマンドで指定された文字列で置き換えられます。 このコマ ンドは頭文字のシーケンスを使うことができる以前に満たされる追加 の要求も指定できま す。 @ は一時的に作者の正式の表現に評価され、ソートのために同等かどうかを比較 する 作者は同じ表現となります。 %n %a %A %i %I 参考文献のシリアル番号は % が続く文字に従ってフォーマットされます。 参考文献のシリ アル番号はこの参考文献として同じ一時的ラベルをもつ先に現 れた参考文献の番号に 1 を 加えたものとなります。 これらの式は一時的に空の文字列に評価されます。 expr* この参考文献としての同じ一時的ラベルを持つもう 1 つの参考文献がある場合、 空の文字 列でなければ expr となります。 これは一時的に評価され、空の文字列になります。 expr+n expr-n expr の最初 (+) または末尾 (-) の n 文字の大文字か小文字か数字です。 troff の ( \('a のような) 特別文字は 1 文字としてカウントされます。 アクセント文字列は保持され ますが、合計にはカウントされません。 expr.l expr を小文字に変換したものです。 expr.u expr を大文字に変換したものです。 expr.c expr を大文字とそれに続く小文字に変換したものです。 expr.r expr をラストネームが最初に来るように逆にしたものです。 expr.a ファーストネームが略称になった expr です。 abbreviate コマンドによって指定された フィールドはラベルが評価される前に略称にされ ます。 このため、 .a は参考文献の中で はなくラベルの中でのみフィールドを略称にしたい時のみ有 用です。 expr.y expr の年の部分です。 expr.+y expr の年の前の部分、もしくはそれが年を含んでいなければ expr の全体となります。 expr.-y expr の年の後の部分、もしくは expr が年を含んでいなければ空の文字列となります。 expr.n expr のラストネームの部分となります。 expr1~expr2 expr1 となります。ただし、 expr1 の最後の文字が - である場合は expr2 に置き換えられ ます。 expr1 expr2 expr1 と expr2 の結合です。 expr1|expr2 expr1 が空でなければ expr1 となり、それ以外では expr2 となります。 expr1&expr2 expr1 が空でなければ expr2 となり、それ以外では空の文字列となります。 expr1?expr2:expr3 expr1 が空でなければ expr2 となりそれ以外では expr3 となります。 <expr> このラベルには 2 つの部分があり、 expr によって分離されています。 2 つの部分からな り、最初の部分が同じである 2 つの連続したラベルは最初 のラベルに次のラベルの 2 番目 の部分を追加し、 separate-label-second-parts コマンド (初期値ではスペースが続くコン マ) によって指定された文字列によっ て分離することによってマージされます。その結果の ラベルもまた 2 つの部 分からなるラベルとなり、最初の部分がマージ前の最初の部分とな ります。さ らに追加されるラベルはこれにマージされます。 最初の部分が空であっても差 し支えありません。これは short-label コマンドで使う式で使うことができます。 (expr) expr と同様です。 グルーピングを行なうために使われます。 上述の式は順位 (高いものが最初) の順にリストされます。 & と | は同じ優先順位となります。 マクロインタフェース 各参考文献はマクロ ]- の呼び出しで始まります。 文字列 [F は no-label-in-reference コマンド が与えられていないと、 この参考文献のラベルになるように定義されます。 その後一連の文字列の 定義が続きます。 定義は各フィールドに 1 つずつで、 文字列 [X はフィールド X に対応します。 数値レジスタ [P はフィールド P がページの範囲を含んでいれば 1 にセットされます。 [T と [A と [O の数値レジスタは、 .?! の文字のいずれかで終るフィールド T と A と O に対応して 1 に セットされます。 数値レジスタ [E は文字列 [E が複数の名前を含んでいれば 1 にセットされま す。 参考文献にはマクロ ][ への呼び出しが続きます。 このマクロの最初の引数には参考文献のタ イプを表す数を与えます。 もし参考文献がフィールド J を含んでいると、タイプ 1 として分類さ れます。 またフィールド B を含んでいるとタイプ 3、フィールド G か R を含んでいるとタイプ 4、フィールド I を含んでいるとタイプ 2となり、これら以外ではタイプ 0 となります。 2 番目の 引数はタイプ other, journal-article, book, article-in-book もしくは tech-report のシンボル 名です。 bibliography コマンドによって累積もしくは生成される参考文献のグループは ]< マクロ の呼び出しに先行し、 ]> マクロの呼び出しが続きます。
関連ファイル
/usr/share/dict/papers/Ind デフォルトのデータベースです。 file.i インデックスファイルです。
関連項目
indxbib(1), lookbib(1), lkbib(1)
バグ
ラベル表記法において <> 表記は .char 表記の中では無視されます。