  coreutils の日本語版 info マニュアルのインストール方法と
使用法を簡単に説明します。コマンドラインから "info coreutils-ja" と
打ち込むと、日本語 info が読めるようなら、coreutils-ja.info がすでに
きちんとインストールされています。「1 インストール」の項目を飛ばして、
「2 使用法」に進んでください。

目次
====
  1 インストール
    1.1 インストール、あるいは dir への登録
    1.2 アンインストール
    1.3 /usr/share/info ディレクトリ以外へのインストール
    1.4 info ファイルの作成 (おまけ 1)
    1.5 html ファイルの作成 (おまけ 2)
  2 使用法
    2.1 日本語 info マニュアルの呼び出し方
    2.2 info マニュアルにおける基本的なキー操作
    2.3 g コマンドのちょっと複雑な使用法


1 インストール
===============

1.1 インストール、あるいは dir への登録
---------------------------------------

  インストール方法と言うより、coreutil-ja を info のトップレベル・
メニューに登録して、"info coreutils-ja" や "info cat-ja" などで 
info マニュアルが読めるようにする方法です。

  たとえば、coreutils-ja.info がカレントディレクトリにあるなら、

    info -f ./coreutils-ja.info

と打ち込むことで、coreutis-ja を読むことができます。しかし、これでは
不便でしょう。"info ls-ja" や "info cat-ja" で、誰でも  ls や cat の
マニュアルが読めた方が便利です。そこで、coreutils-ja.info を info の
トップレベル・メニューに登録します。

  作業は、root ユーザになって行います。info のトップレベル・メニューが
記載されているファイルは、標準では /usr/share/info/dir です。
coreutils-ja.info を /usr/share/info ディレクトリにコピーしてください。

    cp coreutils-ja.info /usr/share/info
    cd /usr/share/info

  info ファイルは、gzip などで圧縮することができます。

  GNU の install-info コマンドで coreutils-ja.info を dir ファイルに
登録します (注 1)。install-info の書式はこうです。

    install-info [OPTION]... [INFO-FILE [DIR-FILE]]
 
  カレントディレクトリが /usr/share/info なら、具体的なコマンドは、
こうなります。

    install-info coreutils-ja.info dir

    注 1: debian のようにディストリビューション独自の install-info 
          コマンドが入っていることがあります。その場合は、マニュアルで
          使用法を調べてください。

  圧縮ファイルの場合でも ".gz" まで指定する必要はありません。もちろん、
付けても構いません。これで、インストール完了です。"info dd-ja" などで
日本語マニュアルが読めるはずです。

1.2 アンインストール
--------------------

  coreutils-ja.info をアンインストールしたい場合は (登録から削除したい
場合は）、次のように --delete オプションを使います。

    install-info --delete coreutils-ja.info dir

  そして、coreutils-ja.info (または、coreutils-ja.info.gz) を消去します。

    rm coreutils-ja.info

1.3 /usr/share/info ディレクトリ以外へのインストール
----------------------------------------------------

  coreutils-ja.info は、一応 /usr/share/info にコピーすることを想定して、
作ってありますが、/usr/local/share/info のような、info のサーチパスにある
ディレクトリなら、そこにコピーしても、たぶん問題なく使用できます。

  その場合、install-info コマンドの引数の dir には、/usr/share/info/dir を
指定してもよく、coreutils-ja.info をコピーしたディレクトリ中の dir 
(たとえば、/usr/local/share/info/dir) を指定してもよいでしょう。
後者の場合、info コマンドが、実行時に両方の dir を統合して、トップ
レベルのメニューを作ってくれます。

  info コマンドのサーチパスは、info 実行中に h または ? キーを押せば、
見ることができます。また、環境変数 INFOPATH によって設定することが
できます。

  coreutils-ja.info を /usr/share/info/ja といった、info のサーチパスに
ないディレクトリにコピーする場合は、環境変数 INFOPATH を利用すればよい
でしょう。その場合、そのディレクトリの中に dir を作っておけばよいと
思います。他にも方法がありますが、説明は省略します。

1.4 info ファイルの作成 (おまけ 1)
----------------------------------

  coreutils-ja.info の配布には、texi ファイルも含まれているかもしれ
ません。coreutils-ja.info が既に存在する場合、以下を実行する必要は
ありませんが、texi ファイルを修正して、自家特製の info ファイルを
作りたいこともあるかもしれません。そこで、念のため、texi ファイルから 
info ファイルを作成する方法を書いておきます。

  同一バージョンの次の 6 ファイルを一つのディレクトリに集めます。

    constants.texi           (英語日本語共通)
    fdl.texi                 (同上)
    version.texi             (同上)
    coreutils-ja.texi        (日本語に翻訳したもの)
    parse-datetime-ja.texi   (同上)
    perm-ja.texi             (同上)

  そのディレクトリで、makeinfo コマンドを実行します。

    makeinfo --no-split coreutils-ja.texi

  --no-split オプションを付けずに makeinfo を実行すると、複数に分割
された info ファイルが生成されます。しかし、この分割された info 
ファイルを info コマンドで表示すると、ページによっては白黒が反転して
しまうことがあります。ですから、makeinfo は --no-split を付けて実行した
方がよいでしょう。

1.5 html ファイルの作成 (おまけ 2)
----------------------------------

  info 形式のマニュアルの閲覧法は、あまり直感的とは言えません。
そこで、html 形式に変換したくなるかもしれません。それには、texi2html 
プログラムを使用します。

  texi2html がすでにインストールされているとします。たとえば、各章を 
1 ファイルにした html ファイルを作るには、次のようにします。

  まず、必要な texi ファイルがあることを確認してください。必要な texi 
ファイルは、info ファイルを作成する場合と同じで、次の 6 個です。

    constants.texi
    fdl.texi  
    version.texi
    coreutils-ja.texi
    parse-datetime-ja.texi
    perm-ja.texi

  上記の texi ファイルのあるディレクトリの直下に html ディレクトリを
作って移動し、texi2html コマンドを実行します。

    mkdir html
    cd html
    texi2html --split chapter ../coreutils-ja.texi

  texi2html の詳しい使い方については、"man texi2html" で調べてください。

  なお、makeinfo に --html オプションを付けても、texi ファイルから html 
ファイルを作ることができます。こちらについての詳細は、"info texinfo" の
"Generating HTML" をご覧ください。

2 使用法
=========
  
2.1 日本語 info マニュアルの呼び出し方
---------------------------------

  coreutils-ja.info のインストールが済んでいるなら、コマンドラインから、

    info coreutils-ja    (coreutils マニュアルの最初のページ)
    info chmod-ja        (chmod の info マニュアル)

のように打ち込めば、日本語マニュアルを開くことができます。英語版の
マニュアルを読むには、"info coreutils" や "info chmod" とタイプします。

  info プログラムを引数なしで実行すると (注 2)、info マニュアルの
トップレベル・メニューが開きます。このとき、m キーを押してから、
コマンド名に -ja を付けて打ち込み、リターンキーを押すと、日本語の
マニュアルが表示されます。たとえば、m に続けて chmod-ja なら、
日本語版の chmod コマンドのマニュアルが、chmod だけなら、英語版の
マニュアルが表示されます。

    注 2: Emacs の info リーダーを呼び出す場合は、C-h i、または 
          M-x info とタイプします。古めの Emacs (たとえば、Emacs22) を
          ご使用の場合は、日本語が文字化けして、読めないかもしれません。
          Emacs23 なら、たぶん大丈夫です。 

  coreutils-ja、chmod-ja などと -ja を付けるのは、info プログラムを
起動するときと、info のトップレベル・メニューにいるときだけです。
coreutils-ja であれ、dd-ja であれ、すでに日本語版の coreutils 
マニュアルのどれかを開いている場合は、-ja をコマンド名の後ろに付ける
必要がありません。と言うより、付けてはいけません。

  coreutils-ja の内部では、コマンドのメニューがあるページなら
(スクロールしないとメニューが見えませんが、coreutils-ja の最初の
ページもその一つです)、m に chmod などとコマンド名を続けて、リターンキー
を押すだけで、たいていの場合、そのコマンドのマニュアルが開きます (注 3)。
また、g キーでノード (ほぼ章や節や項に当たります) に直接飛ぶ場合も、
g に chmod invocation などとノード名を続けて、リターンキーを押せば、
そのノードが開きます (注 4)。メニューにリストされている項目のノード名は、
たいていメニュー項目名 (英語) と同じです (注 5)。m の場合はタブや
スペースで、g の場合はタブで、文字列の補完ができます。

    注 3: 厳密な言い方をすると、m にはメニュー項目名を指定します。
          ただし、メニュー項目名の先頭から、他の項目と区別するのに
          必要なだけの部分を指定すれば充分です。ですから、メニュー
          項目名が chmod invocation なら、chmod というコマンド名
          だけでよいことになります。とは言え、sort、comm、tr、dir、
          rm コマンドのような例外もあります。たとえば、coreutils-ja 
          の最初のページでは、sort で始まるメニュー項目名が二つあるので 
          (sort invocation と Sorting the output)、m に sort と続けた
          だけでは足りません。sort に続けて、さらにスペースを二回押して
          ください。それで sort invocation と補完されるはずです。

    注 4: ノード名はメニュー項目名と違って、省略を受付けません。
          そこで、g では、タブによる補完を多用することになります。

    注 5: メニュー項目名とノード名が違う場合もあります。たとえば、
          引数なしで info を実行したときに表示されるトップレベル・
          メニューでは、日本語 cat マニュアルのメニュー項目名は 
          cat-ja ですが、ノード名は (coreutils-ja.info ファイルの) 
          cat invocation です。
 
2.2 info マニュアルにおける基本的なキー操作
-------------------------------------------

  info プログラムではキー操作をコマンドと言います。スペースを押すのも、
q や n キーを押すのもコマンドの実行です。

  スペースで先へ進み、バックスペースで後へ戻ることができます 
(スクロールします)。矢印キーで上下左右にカーソルが動きます。
メニューの項目やクロスリファレンスにカーソルを合わせて、リターン
キーを押すと、その項目に飛びます。q キーを押すと、info が終了します。
それに m, g, n, p, l コマンドを知っていれば、たいてい用が足ります
(こうしたコマンドの動作については、下記を参照してください)。Emacs の 
info リーダーのキー操作も、ほとんど同じです。

  ああ、二つ書き忘れました。C-l (Ctrl と l (エル) を同時に押します) と 
C-g も重要です。info プログラムは、日本語の行末の表示が上手ではない
ので、行末にゴミが入ることがあります。そういうときは、C-l を押して
画面を再描画すると、表示が正常になります。

  C-g の方は、コマンドを途中でキャンセルするときに使います。

  info 中でのキー操作の詳細は、"info info" や "info info-stnd" を
実行して、マニュアルを読んでください (残念ながら、英語です)。
ここでは、基本的なコマンドのみを挙げておきます。なお、info 中で 
h または ? キーを押すと、キー操作の簡単な説明表が表示されます。 
説明表を抜けて、マニュアルの本文に戻るには、l キーを押します。

    Space:           1 画面スクロール (最下部の 2 行が最上部に残る)。
    Backspace:       1 画面スクロールバック。
    矢印キー:        カーソルが上下左右に移動する。
    Return:          メニューやクロスリファレンスで、カーソル位置にある
                     項目へ飛ぶ。
    q:               info 終了。

    C-l:             画面の再描画。
    C-g:             コマンドのキャンセル。
    h または ?:      コマンドの簡単な説明 (Emacs の info リーダでは、
                     h で「info の使用法」が開く)。

    n:               同一レベルの次のノードへ進む。
    p:               同一レベルの前のノードへ戻る。
    ]:               レベルが違っても、ドキュメントの次のノードに進む。
    [:               レベルが違っても、ドキュメントの前のノードに戻る。

    mメニュー項目名: 指定したメニュー項目に飛ぶ。
    gノード名:       指定したノードに飛ぶ。
    u:               一つ上のレベルのノードに移動する。
    t:               トップノードに飛ぶ。 
    d:               info マニュアル全体のトップレベル・メニューに飛ぶ。
    b:               現在のノードの先頭に戻る。

    l:               元のページ (すなわち、直前に読んでいたノード) に戻る。

    s または /:      指定した文字列を検索する (現在のところ、info 
                     プログラムでは日本語の検索ができないようだ。
                     Emacs の info リーダーでは / は使えないが、
                     s による日本語の検索はできる)。
    C-s:             インクリメンタル検索をする (info プログラムでは
                     日本語の検索が不安定である。成功することもあるが、
                     "Unknown command" で失敗することも多い。Emacs の 
                     info リーダーでは日本語の検索も問題なくできる)。
    C-r:             逆方向のインクリメンタル検索 (問題点は上と同じ)。

    f または r:      クロスリファレンスをたどる (Emacs の info リーダーでは
                     クロスリファレンスをたどるのは f だけであり、r は l の
                     反対の動作をする)。
    i:               指定した文字列をインデックス中で探して、その説明に
                     飛ぶ (coreutils-ja のインデックスは日本語化されて
                     いない。従って、日本語によるインデックス検索は、
                     今のところできない。英語によるインデックス検索は
                     可能である)。
    ,:               i コマンドでインデックス検索をしているとき、i で
                     指定した文字列にマッチする次のインデックス項目の
                     説明に飛ぶ。
    ESC C-f:         脚注があるとき、ウインドウを分割して、下のウインドウに
                     脚注を表示する (Emacs の info リーダーでは使えない)。
                     脚注のウインドウを消すには、本文のウインドウにカーソル
                     があることを確認して、C-x 1 とキーを押す (Ctrl と x の
                     同時押し。そして 1 (いち))。

2.3 g コマンドのちょっと複雑な使用法
------------------------------------

  "info ls-ja" を実行して、ls の日本語マニュアルを読んでいるとします。
そのとき、原文が読みたくなったら、どうしますか。info を一度終了して、
"info ls" を実行する。d コマンドでトップレベル・メニューに戻り、
m に続けて ls とタイプする。別の端末エミュレータから、"info ls " を
実行する。もちろんどれも正解です。特に 3 番目は、原文と翻訳を並べて
見ることができますから、有用な方法だと思います。

  しかし、日本語マニュアルを表示している現在の info から、ls の英語版
マニュアルに直接飛ぶこともできます。g コマンドをこんなふうに使います。

    g(coreutils)ls invocation

  g コマンドの正式の使用法は、次のようなものです。

    g(ファイル名)ノード名

  上の書式中、同じマニュアル中での移動ならば (たとえば、coreutils-ja 
中のあるコマンドの説明から、他のコマンドの説明に飛ぶのならば)、
ファイル名は省略できます。また、他のマニュアル中のノードに飛ぶとしても、
そのマニュアルが /usr/share/info のような info のサーチパスの下にある
ファイルならば (注 6)、そのサーチパスを基点とする相対パスで、ファイル名を
指定することができます (たとえば、/usr/share/info/ja/something.info.gz 
ならば、ja/something.info.gz)。しかも、info や info.gz のような拡張子は
省略できます。そこで、日本語マニュアルから ls の英語マニュアルに飛ぶ
コマンドは、

    g(coreutils)ls invocation" 

でよいことになります。英語版 ls マニュアルから日本語版に戻るには、
l コマンドを使えば済みます。"g(coreutils-ja)ls invocation" と
打ち込んでもよいでしょう。

  なお、g コマンド書式中のファイル名は、絶対パスやカレントディレクトリ
からの相対パスで指定することもできます。

    注 6: 現在のサーチパスは、info コマンド実行中に h または ? キーを
          押すと、見ることができます。

2014-03-03 訳者

