\input texinfo @c -*- mode: texinfo; coding: iso-2022-7bit -*-
@c %**start of header
@setfilename emacs-w3m-ja.info
@settitle Emacs-w3m -- an Emacs interface to w3m --
@c %**end of header
@documentlanguage ja
@include version.texi
@synindex pg cp
@iftex
@usedvipdfmx
@end iftex

@copying
Copyright @copyright{} 2000-2014 @w{TSUCHIYA Masatoshi}

@quotation
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU General Public License, Version 2 or any
later version published by the Free Software Foundation.

この文書を、フリーソフトウェア財団によって発行された GNU 一般公衆利用許
諾契約書第 2 版またはそれ以降の版のうちどれかの定める条件の下で複製、配
布、あるいは変更することを許可します。

This document is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.

この文書は有用であることを願って頒布されますが、@emph{全くの無保証} です。
@emph{商業可能性} の保証や @emph{特定の目的への適合性} は、言外に示され
たものも含め全く存在しません。詳しくは GNU 一般公衆利用許諾契約書をご覧
ください。

You should have received a copy of the GNU General Public License along
with this document; see the file COPYING.  If not, write to the Free
Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.

あなたはこの文書と共に、GNU 一般公衆利用許諾契約書の複製物を一部受け取っ
たはずです。COPYING ファイルを参照してください。もし受け取っていなければ、
フリーソフトウェア財団まで請求してください (宛先は the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA)。
@c 日本語訳は八田さんの文章 <http://www.opensource.jp/gpl/gpl.ja.html>
@c を参考にしました。
@end quotation
@end copying

@dircategory GNU Emacs Lisp
@direntry
* Emacs-w3m-ja: (emacs-w3m-ja).  An Emacs interface to w3m (Japanese)
@end direntry

This file documents emacs-w3m, an Emacs interface to w3m.

このファイルは Emacs で動く w3m のインタフェースである emacs-w3m に関す
る説明書です。

This edition is for emacs-w3m version @value{VERSION}.

この版は emacs-w3m バージョン @value{VERSION} に対応します。

@finalout
@titlepage
@sp 10
@title Emacs-w3m ユーザマニュアル
@subtitle An Emacs interface to w3m for emacs-w3m version @value{VERSION}
@author Emacs-w3m 開発チーム
@page

@vskip 0pt plus 1filll
@insertcopying
@end titlepage

@contents

@node Top
@top Emacs-w3m ユーザマニュアル

@flushright
Emacs-w3m 開発チーム
@end flushright

この文書は emacs-w3m バージョン @value{VERSION} に対応します。

@ifnottex
@insertcopying
@end ifnottex

@menu
* Introduction::                はじめに
* Getting Started::             Emacs-w3m を使い始めるのはとっても簡単
* Basic Usage::                 基本的な使い方
* Pretty Good Features::        たくさんのすぐれもの
* Customizable Variables::      デフォルトのままでも結構良いと思うけれど
* Hooking into MUAs::           メール/ニュースリーダーで使う
* Frequently Asked Questions::  必ず答があるとは限らない
* Known Problems::              あなたならきっと解決できる
* Shimbun Library::             ウェブ上の新聞を読むための道具
* Tips::                        Emacs-w3m を使う洒落た小物たち
* Mailing List::                メーリングリスト、バグリポート
* Emacs-w3m Functions::         Emacs-w3m の関数の詳しい説明
* External Packages::           お仲間のパッケージたち
* Authors::                     このマニュアルを書いた人たち
* Index::                       索引

@detailmenu
 --- 項目の詳細なリスト ---

Getting Started

* Required Emacs Version::      どんなバージョンの Emacs で使えるの?
* You Need w3m::                w3m を使います: emacs-w3m が速いわけ
* Other Requirements::          Emacs-w3m を動作させるのに必要なもの
* Installing Emacs-w3m::        Emacs-w3m をインストールする
* Non-UNIX-like systems::       非 UNIX 系環境でのインストール
* Minimal Settings::            設定しなければならない最低限のもの

Basic Usage

* Browsing Web Pages::          ネットサーフィンしよう!
* Inline Images::               画像表示を ON/OFF する
* Tracing History::             時空を遡る
* Managing Bookmarks::          ぼくの/わたしのお気に入り
* Using Tabs::                  みんなタブが好きだよね
* Working with buffers::        バッファを作る/消す/移動する
* Downloading::                 ファイルをダウンロードする
* Submitting Forms::            HTML フォームに記入する
* HTML File Information::       ウェブページ作りとハックのお手伝い

Pretty Good Features

* Using Search Engines::        使いやすいウェブ検索
* Grouping URLs::               一つの URL で複数のウェブページを見る
* Weather Information::         明日の天気は晴れでしょう
* Using Antenna::               アンテナを張り巡らそう
* Showing Directory Tree::      ディレクトリの木構造を表示する
* Viewing Perl Documents::      Perl のドキュメントを見る
* Using Namazu::                Namazu でファイルを検索する
* Octet::                       application/octet-stream データを見る
* Frame Local Buffers::         多数のセッションをフレームでグループ分けする
* Session Manager::             セッションの保存と読みこみ

Customizable Variables

* General Variables::           一般的な変数
* Image Variables::             画像に関連した変数
* Form Variables::              フォームに関連した変数
* Cookie Variables::            クッキーに関連した変数
* Bookmark Variables::          ブックマークに関連した変数
* Search Variables::            ウェブ検索に関連した変数
* Weather Variables::           天気予報に関連した変数
* Dtree Variables::             dtree に関連した変数
* Antenna Variables::           アンテナに関連した変数
* Perldoc Variables::           Perldoc に関連した変数
* Namazu Variables::            Namazu に関連した変数
* Octet Variables::             Octet に関連した変数
* Session Manager Variables::   セッションマネージャに関連した変数
* Hooks::                       フック
* Other Variables::             その他の変数

Hooking into MUAs

* Gnus::                        Gnus で HTML メールを読む
* Mew::                         Mew で HTML メールを読む
* SEMI MUAs::                   @acronym{SEMI} MUA で HTML メールを読む
* VM::                          VM (vieW maiL) は Wanderlust にあらず

Frequently Asked Questions

* General FAQ::                 一般的な質問
* Trouble FAQ::                 トラブル
* Shimbun FAQ::                 Shimbun に関する質問

Known Problems

Shimbun Library

* Nnshimbun::                   Gnus をウェブブラウザにする!
* Mew Shimbun::                 Mew で新聞を読む
* Shimbun with Wanderlust::     Wanderlust で新聞を読む
* Shimbun local mode::          新聞の取得にシェルスクリプトを使う
* Shimbun Sites::               新聞が読めるサイト
* Shimbun Basics::              新聞モジュールの作り方

Tips

Mailing List

Emacs-w3m Functions

@end detailmenu
@end menu

@node Introduction
@chapter はじめに
@cindex Introduction

@uref{http://www.cs.indiana.edu/elisp/w3/docs.html, Emacs/W3} は、かつて
は Emacs 上で動作する最もポピュラーな web ブラウザーでした。しかし動作が
非常に遅かったので、私たちはそれに代わる速いものを欲しました。一方、
@uref{http://w3m.sourceforge.net/, w3m} というページャーがありました。そ
れはページャーでしたが、テキストモード WWW ブラウザーとして使うことがで
きたので、私たちは w3m への Emacs インターフェースの開発を始めました。

すばらしい w3m プログラムを開発してくれた伊藤彰則さんと w3m チームのみな
さんに、格段の感謝を捧げます。さらにコメント、提案およびバグの修正をして
くれたすべての人々に感謝します。たとえ問題があっても、責任はすべて私た
ち (emacs-w3m 開発チーム) にあります。もっとも、保証はまったくありません
が。Emacs-w3m は 2000年6月に土屋雅稔によって創始されました。

@uref{http://emacs-w3m.namazu.org/, Emacs-w3m の公式ページ} も併せてご覧
ください。

@node Getting Started
@chapter Emacs-w3m を使い始めるのはとっても簡単
@cindex Getting started
@cindex Starting up

ひょっとすると、あなたのシステムには emacs-w3m がすでにインストールされ
ているかもしれません。その場合、あなたはこの項を読み飛ばして、直ちに使い
始めることができます。そんな幸運に恵まれなかったならば、emacs-w3m のイン
ストールの仕方を会得するために、読み続けてください。

@menu
* Required Emacs Version::      どんなバージョンの Emacs で使えるの?
* You Need w3m::                w3m を使います: emacs-w3m が速いわけ
* Other Requirements::          Emacs-w3m を動作させるのに必要なもの
* Installing Emacs-w3m::        Emacs-w3m をインストールする
* Non-UNIX-like systems::       非 UNIX 系環境でのインストール
* Minimal Settings::            設定しなければならない最低限のもの
@end menu

@node Required Emacs Version
@section どんなバージョンの Emacs で使えるの?
@cindex Possible Emacs versions

以下に挙げたいろいろなバージョンの Emacsen で emacs-w3m を動作させること
ができます。

@table @samp
@item Emacs 21.1 以上
追加のパッケージは不要です。

@item XEmacs 21.x
第一に、emacs-w3m は XEmacs 21.4.17 以上、および XEmacs 21.5-b19 以上だ
けをサポートすることに注意してください。加えて、@file{timer-funcs.el} を
含む最新の xemacs-base パッケージをインストールしておく必要があります。

@acronym{APEL} パッケージと @samp{gifsicle} プログラムが必要です。さらに、
@samp{mailto} url を解析するための @file{rfc2368.el} モジュールをインス
トールしておいた方が良いでしょう (@pxref{Other Requirements})。

@item Emacs 20.x, Emacs 19.34 (含 Mule 2.3)
これらの Emacs を emacs-w3m はサポートしません。
@end table

GNU Emacs の開発版を使っているのであれば、おそらく CVS 版の emacs-w3m を
使わなければならないでしょう。その場合には、メーリングリストに参加するこ
とを強く勧めます (@pxref{Mailing List})。

@node You Need w3m
@section w3m を使います: emacs-w3m が速いわけ
@cindex w3m

Emacs-w3m は外部コマンド w3m を、ウェブコンテンツを取得するためのバック
エンドとして、または HTML の描画エンジンとして使用します。非同期動作によっ
て高速な Emacs ウェブブラウザを実現することができたのは w3m のおかげです。

あなたは最新の w3m をインストールしなければなりません。それは以下の場所
で取得できます:

@uref{http://prdownloads.sourceforge.net/w3m/}

@node Other Requirements
@section Emacs-w3m を動作させるのに必要なもの
@cindex @acronym{APEL} package
@cindex Gifsicle program
@cindex ImageMagick package
@cindex @acronym{FLIM} package
@cindex Mule-UCS package
@cindex codepage-ex
@cindex rfc2368.el

使用している Emacs のバージョンによっては、サードパーティのパッケージが
必要になることがあります。この項では、それらを見つけてインストールするた
めの資料を提供します。

@table @samp
@item @acronym{APEL}
XEmacs に不可欠です。Emacs-w3m を構築する前に @acronym{APEL} をインストー
ルしなければなりません。@acronym{APEL} は以下の場所にあります:

@uref{http://kanji.zinbun.kyoto-u.ac.jp/~tomo/lemi/dist/apel/}

@acronym{APEL} XEmacs パッケージ (SUMO に含まれています) のバージョ
ン 1.32 より古いものは使えないことに注意してください。もしすでにそのよう
な版のパッケージがインストールされているならば、それを更新するか、または
上記のリンクで示した @acronym{APEL} で置き換えるために、以下の命令を使っ
てください (新規に @acronym{APEL} をインストールする場合も同じ命令を使う
ことができます):

@example
% rm -fr /usr/local/lib/xemacs/xemacs-packages/lisp/apel
% cd apel-10.7
% make install-package XEMACS=xemacs-21.4.x\
  PACKAGEDIR=/usr/local/lib/xemacs/xemacs-packages
@end example

@item gifsicle
XEmacs に不可欠です。すべての XEmacs 21.x には、オプティマイズされたアニ
メーション gif が正常に表示されなかったり、ある種のインターレース gif を
表示しようとするとクラッシュしてしまう既知のバグがあります。
Emacs-w3m は gif データを XEmacs 21.x で扱える形式に変換するため
に、@samp{gifsicle} プログラムを使います。これは次の場所から入手すること
ができます:

@uref{http://www.lcdf.org/gifsicle/}

@item ImageMagick
ImageMagick パッケージに含まれている @samp{convert} プログラムがあれば、
emacs-w3m は画像サイズの変更や @samp{favicon} 画像を Emacs が扱えるフォー
マットに変換するためにそれを使います。Emacs-w3m は ImageMagick が無くて
も動作するでしょうが、インストールすることによってあなたのネットサーフィ
ンが豊かなものになるでしょう。ImageMagick パッケージは、以下の場所から手
に入れることができます:

@uref{ftp://ftp.imagemagick.org/pub/ImageMagick/}

@samp{favicon} 画像を操作するために、バージョン 5.4.0-5 以降のものを使う
ことを推奨します。以前のバージョンも動くかもしれませんが、それらは完全に
チェックされていません。

@item @acronym{FLIM}
@samp{Shimbun} ライブラリを使うためには @acronym{FLIM} パッケージが必要
です。@samp{Shimbun} ライブラリはウェブ上の新聞を読むための道具類のコレ
クションで、Gnus、Mew または Wanderlust とともに使うことができま
す。@xref{Shimbun Library}.

使っている Emacs のバージョンにかかわらず、@acronym{FLIM} パッケージに
は @acronym{APEL} パッケージが必要であることに注意してください。したがっ
て @samp{shimbun} ライブラリを使うには、
@acronym{APEL} と @acronym{FLIM} の両方をインストールしなければなりませ
ん。@acronym{FLIM} パッケージは以下の場所にあります:

@uref{http://kanji.zinbun.kyoto-u.ac.jp/~tomo/lemi/dist/flim/flim-1.14/}

@item Mule-UCS
XEmacs 21.4 を使うか、または Emacs 21 を使って中国語、日本語、韓国語など
のテキストを読む必要があるならば、emacs-w3m が (Unicode システムの代表的
な coding system である) UTF-8 でエンコードされたページを表示できるよう
にするために、Mule-UCS Emacs Lisp パッケージをインストールすることを勧め
ます。Emacs 21 が Unicode システムを部分的に (例えばラテン・テキストのた
めに) サポートし、Emacs 22 以上がそれを完全にサポートすることに注意して
ください。Mule-UCS Emacs Lisp パッケージは以下の場所から取得してください:

@uref{http://unit.aist.go.jp/itri/itri-gist/ftp.m17n.org/pub/mule/Mule-UCS/test/Mule-UCS-current.tar.gz}

(Mule-UCS の公式ページは近い将来 @uref{http://www.meadowy.org/} でオープ
ンします。)

Emacs-21.2 で利用する場合は、
Mule-UCS に @uref{http://www.m17n.org/mlarchive/mule/200203/msg00000.html,
このパッチ} を適用したほうがいいでしょう。

XEmacs 21.4 ユーザ向けには、ここにコンパイル済みのパッケージがあります:

@uref{ftp://ftp.xemacs.org/xemacs/packages/mule-ucs-1.14-pkg.tar.gz}

(Mule SUMO に含まれているので、加えてさらにこれをインストールする必要は
ありません。)

@item codepage-ex
ヨーロッパのいくつかの web サイトは、@samp{charset=ISO-8859-1} をテキス
トのエンコードに指定しているのにもかかわらず、実際に
は @code{windows-1252} を使います。それらをデコードするの
に @code{iso-8859-1} は不十分なので、emacs-w3m は利用可能な
ら @code{windows-1252} を @code{iso-8859-1} のスーパーセットとして使用し
ます。Emacs 22 から @code{windows-1252} coding system は組み込まれていま
すが、@code{codepage-ex} というモジュールを使うことによって、Emacs 21 で
もそれを使えるようにすることができます。以下のページを参照してください。

@uref{http://nijino.homelinux.net/emacs/codepage-ex.html}

@item rfc2368.el
XEmacs 上で動作させる emacs-w3m が、適切に @samp{mailto} url を解析でき
るようにしたい場合にインストールしてください。XEmacs で使うことができ
る @file{rfc2368.el} モジュールは、emacs-w3m の配布の @file{attic} ディ
レクトリにあります。インストールするには @file{rfc2368.el} ファイル
を @code{load-path} が通っているディレクトリにコピーして、以下のコマンド
を実行してください:

@example
% xemacs -batch -vanilla -f batch-byte-compile rfc2368.el
@end example
@end table

@node Installing Emacs-w3m
@section Emacs-w3m をインストールする
@cindex Installing emacs-w3m

Emacs-w3m の取得に関しては公式ペー
ジ @uref{http://emacs-w3m.namazu.org/} を参照してください。すべて準備で
きましたか?  では始めましょう。

非 UNIX 系のシステム (@samp{configure} を実行できないか @samp{make} コマ
ンドが無い、何らかのシステム) に emacs-w3m をインストールするには、この
項を飛ばして次の項 @ref{Non-UNIX-like systems} に行ってください。

@enumerate
@item
最初に、配布された emacs-w3m の tarball を以下のように適当な場所で展開し
て、先頭のディレクトリに入ってください:

@example
% tar zxf emacs-w3m-@value{VERSION}.tar.gz
% cd emacs-w3m-@value{VERSION}
@end example

Emacs-w3m を CVS で取得したのならば、@samp{configure} スクリプトを生成す
るために (引数無しで) @samp{autoconf} を実行しなければなりません。

@item
@samp{configure} スクリプトを実行します。

@example
% ./configure
@end example

@emph{Gnus ユーザへの重要なお知らせ}:

複数のバージョンの Gnus がインストールされている場合 (リリース版と開発版
の Gnus があるかもしれません) は、@code{load-path} にあなたが使うバージョ
ンがインストールされているディレクトリ (@file{gnus.elc} ファイルを調べま
しょう) を含むようにしてください。以下のように @samp{--with-addpath} オ
プションを使うことによって、これを確実に行なうことができます:

@example
% ./configure --with-addpath=/usr/local/share/emacs/site-lisp/gnus
@end example

@acronym{APEL}、@acronym{FLIM} または他の何かを、デフォルト
の @code{load-path} 以外の標準ではないディレクトリにインストールしてある
場合は、以下のように @samp{--with-addpath} オプションを使ってそれらを指
定しなければなりません (さらに、それに @samp{:} で分けられた Gnus のディ
レクトリを含めても構いません):

@example
% ./configure --with-addpath=/opt/share/apel:/opt/share/flim
@end example

デフォルトではインストーラ (つまり @samp{make install}) は gzip によって
インストールされる Lisp のソースファイルと info ファイルを圧縮します。も
しそれらのファイルが圧縮されることを望まないのであれば、configure オプショ
ンの {--without-compress-install} を使ってください。

@item
単に @samp{make} と @samp{make install} を実行します。XEmacs を使ってい
る場合は、さらに次の段落も見てください。

@example
% make
% make install
@end example

すべての Lisp ファイルと info ファイルが適切なディレクトリにインストール
されるでしょう。

さて、あなたはどんなファイルがどこに行くか分かりますか?  それを前もって
知るためには、これを使ってください:

@example
% make what-where
@end example

画像を表示することができる Emacs または XEmacs を使っているならば、アイ
コン画像のファイルをインストールした方が良いでしょう。それを行なうには:

@example
% make install-icons
@end example

@noindent
または

@example
% make install-icons30
@end example

@noindent
後者はちょっと大きなアイコン画像を使うためのものです。

@item
以下のように @samp{make install} の代わり
に @samp{make install-package} を使うことによって、
emacs-w3m を XEmacs パッケージとしてインストールすることもできます:

@example
% make
% make install-package
@end example

この場合 @samp{make install-icons} または @samp{make install-icons30} を
実行する必要はありません。

パッケージ・ディレクトリを指定するには二つの方法があります:

@itemize @bullet
@item
@samp{configure} オプションの @samp{--with-packagedir=} を使います。例で
す:

@example
% ./configure --with-packagedir=/opt/xemacs/xemacs-packages
% make what-where
% make
% make install-package
@end example

@item
変数 @samp{PACKAGEDIR} を使います。例です:

@example
% ./configure
% make what-where PACKAGEDIR=/opt/xemacs/xemacs-packages
% make
% make install-package PACKAGEDIR=/opt/xemacs/xemacs-packages
@end example
@end itemize
@end enumerate

@node Non-UNIX-like systems
@section 非 UNIX 系環境でのインストール
@cindex Installing on non-UNIX-like systems

あなたのシステムで @samp{configure} スクリプトを実行することができないか、
@samp{make} コマンドが利用できない場合は、以下の文句を唱えてください。

@example
% emacs -batch -q -no-site-file -l w3mhack.el NONE -f w3mhack-nonunix-install
@end example

@acronym{APEL}、@acronym{FLIM} (または他の何か) が普通の場所にインストー
ルされていないと、インストーラはそれらを無視してしまうでしょう。そんな場
合は、以下に示すように、それらの場所をインストーラに告げる必要があります:

@example
% emacs -batch -q -no-site-file -l w3mhack.el //c/share/apel://c/share/flim -f w3mhack-nonunix-install
@end example

@node Minimal Settings
@section 設定しなければならない最低限のもの

この項では基本的な emacs-w3m の設定のいくつかを説明します。きめ細かな設
定をしたいならば、たくさんのカスタマイズ可能な変数を @ref{Customizable
Variables} で見つけることができるでしょう。

@table @samp
@item Autoloads
@cindex Adding autoload settings
Emacs-w3m を XEmacs パッケージとしてインストール (@pxref{Installing
Emacs-w3m}) してあれば @file{w3m/auto-autoloads.el} ファイルが自動ロー
ド (autoload) の面倒を見てくれるので、これは必要ありません。

それ以外のすべての場合、以下の行を @file{~/.emacs} ファイルに入れてくだ
さい:

@lisp
(require 'w3m-load)
@end lisp

@item Startup File
@cindex Startup file
@vindex w3m-init-file
Emacs-w3m のいろんな変数をいじる必要があるときは、@file{~/.emacs-w3m} ファ
イル (これは @code{w3m-init-file} という変数のデフォルト値です) の利用を
推奨します。このファイルは @file{~/.emacs} と似ていますが、こちら
は emacs-w3m が起動するときに読み込まれます。@code{w3m-command} など幾つ
かのオプションは、このファイルでは変更できないことに注意してください。

@item Proxy Gateway
@cindex Firewall
@cindex Proxy gateways
@cindex Proxy servers
@vindex w3m-command-arguments
@vindex w3m-no-proxy-domains
あなたが防火壁 (firewall) の中から proxy ゲートウェイを通してインターネッ
トに接続している場合は、それを使うように w3m に指示する必要があります。

これにはいくつかの方法があります。一つは環境変
数 @code{http_proxy} を shell 上で、こんなふうにグローバルに設定すること
です:

@example
setenv http_proxy http://proxy.hogege.com:8000/
@end example

他に、変数 @code{w3m-command-arguments} をカスタマイズして、@samp{-o} お
よび @samp{http_proxy=http://PROXY_SERVER_NAME:PORT/} を追加する方法があ
ります。これは @file{~/.emacs-w3m} ファイルで以下のように行なうこともで
きます。

@lisp
(setq w3m-command-arguments
      (nconc w3m-command-arguments
             '("-o" "http_proxy=http://proxy.hogege.com:8000/")))
@end lisp

Proxy ゲートウェイを通すべきではないホスト (イントラネットのサイトな
ど) を指定するには、環境変数 @code{no_proxy} (@code{no-proxy} ではないこ
とにご注意) にコンマで区分けされたホスト名のリストを設定してください。あ
るいは以下のように、変数 @code{w3m-no-proxy-domains} にドメイン名 (ホス
ト名ではない) のリストを設定することもできます:

@lisp
(setq w3m-no-proxy-domains '("local.com" "neighbor.com"))
@end lisp

@code{no_proxy} ホストの設定にどうやって正規表現を使うかの説明は、変
数 @code{w3m-command-arguments-alist} のドキュメントを見てください。
@end table

@node Basic Usage
@chapter 基本的な使い方

@menu
* Browsing Web Pages::          ネットサーフィンしよう!
* Inline Images::               画像表示を ON/OFF する
* Tracing History::             時空を遡る
* Managing Bookmarks::          ぼくの/わたしのお気に入り
* Using Tabs::                  みんなタブが好きだよね
* Working with buffers::        バッファを作る/消す/移動する
* Downloading::                 ファイルをダウンロードする
* Submitting Forms::            HTML フォームに記入する
* HTML File Information::       ウェブページ作りとハックのお手伝い
@end menu

@node Browsing Web Pages
@section ネットサーフィンしよう!

すべてのウェブ・ブラウズの操作は、キーで行うことができます。Emacs-w3m は
デフォルトで @samp{Lynx-like} キーマップ (@pxref{Key Binding}) というも
のを使います。もちろんマウスを使うこともできます。

@menu
* Key Binding::                 二つのキーバインド
* Launching and Jumping::       とにかく動かしてみよう
* Moving in a page::            ページ内を飛びまわる
* Moving over pages::           ページ間を渡り歩く
* Browsing With Mouse Operations:: マウスを使ってサーフィン
* Going back to daily hacking and/or daily writing:: 普段の生活に戻るには
@end menu

@node Key Binding
@subsection 二つのキーバインド
@cindex Key binding
@cindex Lynx-like keymap
@cindex Info-like keymap
@vindex w3m-key-binding

Emacs-w3m は Emacs ウェブ・ブラウザの歴史の中では後発のブラウザなので、
ユーザが新しいウェブ・ブラウザに容易に慣れることができるようにするために、
二種類のキーバインドを用意しました。一つは @samp{Lynx-like} キーマップと
呼ばれ、もう一つは @samp{Info-like} キーマップです。これらの名前から、そ
れらが何を意味するかは分かりますね?  前者はテキスト版のウェブ・ブラウザ
である @samp{Lynx} のものに似ています。そして後者は  GNU の公式ドキュメ
ント・ブラウザである @samp{Info} のものに似ています。デフォルトで
は @samp{Lynx-like} キーマップが使われます。@samp{Info-like} キーマップ
を使いたいのならば、

@example
@w{@kbd{M-x customize-option @key{RET} w3m-key-binding @key{RET}}}
@end example

@noindent
とタイプして @samp{Info-like} キーマップを選び、変更をセーブしてください。
あるいは以下の断片を @file{~/.emacs} ファイル (@file{~/.emacs-w3m.el} ファ
イルではありません) に加えてください:

@lisp
(setq w3m-key-binding 'info)
@end lisp

キーバインドを一つずつ変更するには、@file{~/.emacs-w3m.el} ファイルで以
下のように @code{w3m-mode-map} 変数をいじってください:

@lisp
(define-key w3m-mode-map [up] 'previous-line)
(define-key w3m-mode-map [down] 'next-line)
(define-key w3m-mode-map [left] 'backward-char)
(define-key w3m-mode-map [right] 'forward-char)
@end lisp

@node Launching and Jumping
@subsection とにかく動かしてみよう

以下に挙げる三つの違うコマンドを使って emacs-w3m を起動することができま
す。それらのコマンドの一つを試してください。ウェブページが ``*w3m*'' と
いう名前の Emacs のバッファ (emacs-w3m のバッファのこと) に表示されます。
おそらく気付くでしょうけれども、emacs-w3m のバッファのメジャーモード
は @code{w3m-mode} です。他にマイナーモード (@pxref{Managing
Bookmarks}) もあります。

ここでは、それらのコマンドの最も基本的な使い方だけを説明します。それらに
ついてもっと詳しく知りたい場合は、@ref{Emacs-w3m Functions} を参照してく
ださい。また、emacs-w3m の動作をカスタマイズするために使うことができる変
数群を、@ref{Customizable Variables} で参照してください。

@table @code
@item w3m
@findex w3m
@vindex w3m-home-page
@vindex w3m-quick-start
@cindex Using emacs-w3m as a batch command
Emacs-w3m を起動して、@code{w3m-home-page} という変数で指定されたホーム
ページを表示します。@code{w3m-home-page} のデフォルトの値
は ``about:'' です。Emacs-w3m を起動したときに毎回 URL を入力できるよう
にしたい場合は、変数 @code{w3m-quick-start} の値を @code{nil} にしてくだ
さい (@pxref{Customizable Variables})。

これは Emacs を起動するときに引数として使うこともできます。例です:

@example
% emacs -f w3m
@end example

URL を指定して、このように使うこともできます:

@example
% emacs -f w3m http://emacs-w3m.namazu.org/
@end example

@item w3m-find-file
@findex w3m-find-file
ローカルファイル名をミニバッファで入力して、それを emacs-w3m で表示しま
す。

@item w3m-browse-url
@findex w3m-browse-url
URL をミニバッファで入力して、それを emacs-w3m で表示します。このコマン
ドは、どちらかと言えば他のアプリケーションプログラムから emacs-w3m を起
動するために用意されています。
@end table

あなたがすでに Emacs のユーザならば、emacs-w3m のバッファの中で移動する
のに苦労は無いでしょう。多くの標準のキーがそのまま使えるのですから。例え
ば @kbd{C-n}、@kbd{C-v} それに @kbd{C-s} は emacs-w3m バッファで有効なキー
です (これらは一行下降、一ページ送り、または後方単語検索として共通に使わ
れます)。

リンクをたどるには @kbd{@key{RET}} キーを使ってください。それにはポイン
トをリンクの場所に移動しなければなりません。リンクは普通のテキストとは違っ
て表示されているので、簡単に見分けることができます。それらは下線付き、ま
たは違う色になっているはずです。それらの見栄えは @code{w3m-anchor} とい
うフェースによって決まります (@pxref{Customizable Variables})。

@table @asis
@item @kbd{@key{RET}}
@itemx @kbd{@key{right}} (Lynx-like キーマップのみ)
@kindex @key{RET}
@kindex @key{right} (Lynx-like キーマップ)
@findex w3m-view-this-url
現在位置のリンクが指し示すページを表示します (@code{w3m-view-this-url})。

このコマンドの振る舞いは、厳密には現在位置のリンクの性質によって、または
接頭引数を与えるかどうかに依存します。詳細
は @ref{Emacs-w3m Functions} を参照してください。
@end table

前述のように、変数 @code{w3m-quick-start} の値を @code{nil} に設定するこ
とによって、@w{@kbd{M-x w3m}} コマンドを使ったときに URL を指定すること
が可能です。Emacs-w3m のバッファでは、入力した新しい URL のページに行く
ための一般的な方法が、さらに以下の二つあります。

@table @asis
@item @kbd{@key{RET}}
@kindex @key{RET}
@findex w3m-view-this-url
Emacs-w3m のバッファにおいて、ヘッダラインに表示されている URL の位置に
ポイントを移動させてから @kbd{@key{RET}} を叩くことによって、ミニバッファ
から URL を入力して、そのページを表示させることができます。Mozilla など
の GUI ベースのウェブブラウザに慣れている人にとって、この機能はおなじみ
ですよね。これに関する詳しい説明が @ref{Emacs-w3m Functions} で見つかる
はずです (@code{w3m-view-this-url})。

@item @kbd{g}
@kindex g
@findex w3m-goto-url
ミニバッファで URL の入力をうながして、emacs-w3m にそのページを表示させ
ることができます (ポイントの位置とは無関係です)。このキーの割り当ては、
すでに Gnus や Mew を利用している人にはおなじみでしょ
う (@code{w3m-goto-url})。

@item @kbd{G}
@kindex G
@findex w3m-goto-url-new-session
ミニバッファで URL の入力をうながして、それを新しいセッションで表示しま
す。これはちょうど @kbd{g} (@w{@key{M-x w3m-goto-url}}) のように動作しま
すが、新しいセッションを開くところが違います。文字端末で emacs-w3m を使っ
ているのでない限り、新しいセッションを開くということは、そのページを新し
いタブで表示することを意味します。タブについてのもっと詳しいことは、
@ref{Using Tabs} を参照してください (@code{w3m-goto-url-new-session})。

@item @kbd{c} (Lynx-like キーマップ)
@itemx @kbd{y} (Info-like キーマップ)
@kindex c (Lynx-like キーマップ)
@kindex y (Info-like キーマップ)
@findex w3m-print-current-url
表示しているページの URL をエコーエリアに表示するとともに、
@code{kill-ring} に URL を挿入します (@code{w3m-print-current-url})。

@item @kbd{u} (Lynx-like キーマップ)
@itemx @kbd{Y} (Info-like キーマップ)
@kindex u (Lynx-like キーマップ)
@kindex Y (Info-like キーマップ)
@findex w3m-print-this-url
現在位置のリンクが指し示す対象の URL をエコーエリアに表示するとともに、
@code{kill-ring} に URL を挿入します (@code{w3m-print-this-url})。
@end table

さて、あなたが読んでいるページが今日の時事ニュースかだれかの日記だったら、
それを取り込んだ後で新しい内容で置き換えられているかもしれません。次のコ
マンドを使うと、同じページの最新の内容に更新することができます。(このコ
マンドは、ページが壊れているように見える場合に、全画面の再描画を強制させ
るためにも役立てることができます。)

@table @asis
@item @kbd{R}
@itemx @kbd{C-S-l} (Info-like キーマップのみ)
@kindex R
@kindex C-S-l (Info-like キーマップ)
@findex w3m-reload-this-page
ページを読み込み直します (@code{w3m-reload-this-page})。
@end table

@node Moving in a page
@subsection ページ内を飛びまわる
@cindex Moving in a page

Emacs で移動用に割り当てられている馴染み深いキーがウェブページの閲覧中に
使えることは、おそらくすでにあなたを魅了しているでしょう。信じてもらえな
いかもしれませんが、もっとあるのです!  私たちはあなたの時間を大切にした
いので、ポイントの移動、ページのスクロール、あるいはとても速いやり方でリ
ンクを見つけるためのキーを追加しました。それらをマスターすれば、それらが
どんなに便利かを分かってもらえるでしょう。

Emacs の標準キーバインドに比べて @code{w3m-mode} では、より短いキースト
ロークでスクロールコマンド群を呼び出せるようにキーが割り当てられています。
ウェブページ内でテキストを入力できる個所はかなり特別なの
で (@pxref{Submitting Forms})、たいていのキーは特別な意味を持っていて、
そこでは @code{self-insert-command} に割り当てられていません。

@c スクロール
@table @asis
@item @kbd{@key{SPC}}
@kindex @key{SPC}
@findex w3m-scroll-up-or-next-url
下に向かってスクロールします。@samp{more} や @samp{less} コマンド、ある
いは Emacs の @code{view-mode} を使ったことがあれば、覚えるまでもないキー
ですよね (@code{w3m-scroll-up-or-next-url})。

@item @kbd{@key{DEL}}
@itemx @kbd{b}
@itemx @kbd{@key{backspace}}
@itemx @kbd{S-@key{SPC}}
@itemx @kbd{C-?}
@kindex @key{DEL}
@kindex b
@kindex @key{backspace}
@kindex S-@key{SPC}
@kindex C-?
@findex w3m-scroll-down-or-previous-url
上に向かってスクロールします。@samp{less} コマンド
や Emacs の @code{view-mode} に馴れ親しんでいるあなたの手は、自然にこの
キーを叩くでしょう (@code{w3m-scroll-down-or-previous-url})。

@item @kbd{>}
@kindex >
@findex w3m-scroll-left
@vindex w3m-horizontal-scroll-columns
左にスクロールします。スクロールの量
は @code{w3m-horizontal-scroll-columns} で与え、デフォルト値は 10 で
す (@code{w3m-scroll-left})。

@item @kbd{<}
@kindex <
@findex w3m-scroll-right
@vindex w3m-horizontal-scroll-columns
右にスクロールします。スクロールの量
は @code{w3m-horizontal-scroll-columns} で与え、デフォルト値は 10 で
す (@code{w3m-scroll-right})。

@item @kbd{.} (Lynx-like キーマップ)
@itemx @kbd{S-@key{left}} (Info-like キーマップ)
@kindex . (Lynx-like キーマップ)
@kindex S-@key{left} (Info-like キーマップ)
@findex w3m-shift-left
@vindex w3m-horizontal-shift-columns
左にシフトします (小刻みな水平スクロール)。シフトの量
は @code{w3m-horizontal-shift-columns} で与え、デフォルト値は 2 で
す (@code{w3m-shift-left})。

@item @kbd{,} (Lynx-like キーマップ)
@itemx @kbd{S-@key{right}} (Info-like キーマップ)
@kindex , (Lynx-like キーマップ)
@kindex S-@key{right} (Info-like キーマップ)
@findex w3m-shift-right
@vindex w3m-horizontal-shift-columns
右にシフトします (小刻みに水平スクロールです)。シフトの量
は @code{w3m-horizontal-shift-columns} で与え、デフォルト値は 2 で
す (@code{w3m-shift-right})。

@item @kbd{M-l}
@kindex M-l
@findex w3m-horizontal-recenter
現在ポイントがある位置のテキストが、水平方向に関して中心になるように
スクロールします (@code{w3m-horizontal-recenter})。
@end table

@c 移動
@code{w3m-mode} メジャーモードでは、いろいろな種類の移動コマンドが定義さ
れています。すなわち、リンク、フォーム、それに画像 (それが表示されていて
もいなくても) です。

簡単な例を挙げてみます。広く知られている Google 検索エンジンで単語を調べ
たいのだとしましょう。ステップ１:
emacs-w3m で @uref{http://www.google.com} を開きます。ステップ２: いった
んページが読み込まれたら @kbd{]} を叩いてください。
ぐわしっ! @footnote{普通そんな音はしないけれどね。英語版の Tadaa! は漫画
などで使われる擬音で、その状況に応じていろいろに訳されます。} ポイントが
ページの最初の入力フォームに移動しましたね。今や @kbd{@key{RET}} を叩い
てそこに何かを入力して、@w{@kbd{C-c C-c}} で送ることができます。このコマ
ンド無しでは、そのページに @kbd{C-n} や @kbd{C-f} などを打ち込んで移動し
なければならなくて、まったく骨折りなことだったでしょう。

@table @asis
@item @kbd{@key{TAB}}
@itemx @kbd{@key{down}} (Lynx-like キーマップのみ)
@kindex @key{TAB}
@kindex @key{down} (Lynx-like キーマップ)
@findex w3m-next-anchor
次のリンク (emacs-w3m の用語では ``アンカー'') へポイントを移動します。
より厳密には、順方向で最も近いアンカーへ移動します。

@item @kbd{M-@key{TAB}}
@itemx @kbd{S-@key{TAB}}
@itemx @kbd{@key{backtab}}
@itemx @kbd{@key{up}} (Lynx-like キーマップのみ)
@kindex M-@key{TAB}
@kindex S-@key{TAB}
@kindex @key{backtab}
@kindex @key{up} (Lynx-like キーマップ)
@findex w3m-previous-anchor
前のアンカーへポイントを移動します。より厳密には、逆方向で最も近いアンカー
へ移動します (@code{w3m-previous-anchor})。

@item @kbd{]}
@kindex ]
@findex w3m-next-form
次のフォームへポイントを移動します。より厳密には、順方向で最も近いフォー
ムへ移動します (@code{w3m-next-form})。

@item @kbd{[}
@kindex [
@findex w3m-previous-form
前のフォームへポイントを移動します。より厳密には、逆方向で最も近いフォー
ムへ移動します (@code{w3m-previous-form})。

@item @kbd{@}}
@kindex @}
@findex w3m-next-image
次の画像へポイントを移動します。より厳密には、順方向で最も近い画像へ移動
します (@code{w3m-next-image})。

@item @kbd{@{}
@kindex @{
@findex w3m-previous-image
前の画像へポイントを移動します。より厳密には、逆方向で最も近い画像へ移動
します (@code{w3m-previous-image})。
@end table

@node Moving over pages
@subsection ページ間を渡り歩く

この項ではページからページに移動するやり方を説明します。リンクをたどった
り URL を入力する方法はここにはありません (それら二つの方法
は @ref{Launching and Jumping} で説明されています)。

ここには、以前に訪問したページの履歴を後ろに、および前に移動する (他のブ
ラウザでは「戻る」「進む」としておなじみの) コマンドと、仮にもブラウザた
るものが義務として提供すべき「ホームページへ移動する」機能があります。あ
らかじめ @ref{Tracing History} の項を読んでおいた方が、たぶん理解しやす
いでしょう。

@table @asis
@item @kbd{B} (Lynx-like キーマップ)
@itemx @kbd{@key{left}} (Lynx-like キーマップ)
@itemx @kbd{l} (Info-like キーマップ)
@itemx @kbd{p} (Info-like キーマップ)
@kindex B (Lynx-like キーマップ)
@kindex @key{left} (Lynx-like キーマップ)
@kindex l (Info-like キーマップ)
@kindex p (Info-like キーマップ)
@findex w3m-view-previous-page
以前に訪問したページの履歴を１ページ戻りま
す (@code{w3m-view-previous-page})。数の引数 N が与えられると N ページ戻
ります。これは過去に戻るためのお勧めの方法です。

@item @kbd{N} (Lynx-like キーマップ)
@itemx @kbd{n} (Info-like キーマップ)
@kindex N (Lynx-like キーマップ)
@kindex n (Info-like キーマップ)
@findex w3m-view-next-page
以前に訪問したページの履歴を１ページ進みます (@code{w3m-view-next-page})。
もちろん @kbd{B} (@samp{Info-like} キーマップの場合は @kbd{l}) で履歴を
戻った後でなければ働きません。数の引数 N が与えられると N ページ進みます。
このコマンドは、まさに back to the future を実現します!

@item @kbd{H}
@kindex H
@findex w3m-gohome
@vindex w3m-quick-start
ホームページへ移動します (@code{w3m-gohome})。ホームページ
の URL は @code{w3m-home-page} という変数で指定しま
す (@pxref{Customizable  Variables})。@code{w3m-home-page} のデフォルト
の値は ``about:'' です。
@end table

以下のコマンドは、他には無い emacs-w3m の特長です。私たちはそれらの特許
を得ることができました。従って、他のいかなる場所でも見つからないでしょう。
そのため、今日それらを使うことを学ばなければなりません! (真に受けないで
くださいね。ただの冗談ですから。)

@table @asis
@item @kbd{^}
@itemx @kbd{u} (Info-like キーマップのみ)
@kindex ^
@kindex u (Info-like キーマップ)
@findex w3m-view-parent-page
現在表示されているページの親ディレクトリへの移動を試みます。例えば、
``http://foo/bar/baz'' が表示されている場合は ``http://foo/bar/'' に移動
しようとします。この機能は次の観察に基づいて実装されました: ウェブブラウ
ザのユーザは、しばしば一段階上のディレクトリに移動しなければなりません。
彼らが捜している情報が、現在のページに表示されないから (それが削除された
ので、あるいは検索エンジンが間違っているページに連れて行ったため) です。

他のウェブブラウザを使う場合、一般には、URL から @kbd{@key{DEL}} キー等
を複数回使って、手作業で末尾のコンポーネントを削除する手間が必要です。
Emacs-w3m では、この操作を @kbd{^} のたった一押し! で行なうことができま
す。

また、``2 ^'' と数字を付けてコマンドを実行すると、その数字の分だけ親のディ
レクトリに移動します。``0 ^'' と ``0'' を付けて実行するとそのサイトの最
上位まで移動します。
@end table

@table @asis
@item @kbd{@key{SPC}}
@kindex @key{SPC}
@findex w3m-scroll-up-or-next-url
現在のポイント位置がバッファの末尾付近にあり、下方向にスクロールできない
場合に @kbd{@key{SPC}} を押すと「次」のページへ移動しま
す (@code{w3m-scroll-up-or-next-url})。ここで「次のページ」とは、現在読
んでいるページのヘッダ内の特別な ``next'' フィールドが指し示しているペー
ジのことです。この機能は訪問したページの履歴とは関係ありません。

一度に巨大なコンテンツを転送するのを待つことが、ユーザにとって快適ではな
いなどの理由で、いくつかのウェブサイトがそれらのコンテンツを小さな複数の
ページに分割していることに、おそらく気付いているでしょう。例えば、検索エ
ンジンの検索結果は、しばしばそのように現われます。そんなサイトでは、ユー
ザはすべての情報にアクセスするために、しばしば一つのページから次のページ
に、手動でリンクをたどらなければなりません。

Emacs-w3m は、可能であればこのリンクを明示的にたどる操作をスクロール操作
と統合して、複数のページに分割されて提供されるコンテンツを、できれば一枚
のウェブページとして閲覧できるよう試みます。

それはこうして働きます: そのようなウェブサイトでは、分割したウェブページ
間のつながりをページのヘッダ内の ``next''、``prev'' あるい
は ``previous'' フィールドに記載してある場合があります。Emacs-w3m は何を
たどるかを知るために、このフィールドを利用しています。

二つの操作 (リンクをたどる + スクロール) が Emacs-w3m 上でどのように統合
されているのかを、再び Google を例に説明しましょう。
@uref{http://www.google.com} を開き、ある単語を検索します。もし、あまり
にもありふれた単語 (例えば「牛丼」) を検索すると、大量の検索結果を得るこ
とになるでしょう。Google は、その基準を使ってソートした検索結果を複数の
ウェブページに分割した上で、まず最初のページを返します。
@kbd{@key{SPC}} を使って最初のページをスクロールさせながら眺めてください。
そして、そのページの最後がそのウィンドウで見えるまで、スクロールし続けて
ください。そこでは、あなたをびっくりさせるしかけが待っています。
Emacs-w3m 以外のブラウザを使って残りの検索結果を見たいと思ったならば、

@example
Gooooooogle
@end example

の下にならぶ数字のどれか

@example
1 2 3 4 5 6 7 8...
@end example

をクリックする必要があります。しかし emacs-w3m ならば、単
に @kbd{@key{SPC}} を押すというスクロールと同じ操作で、リンクをたどるこ
とができるのです。

@item @kbd{@key{DEL}}
@itemx @kbd{b}
@itemx @kbd{@key{backspace}}
@itemx @kbd{S-@key{SPC}}
@itemx @kbd{C-?}
@kindex @key{DEL}
@kindex b
@kindex @key{backspace}
@kindex S-@key{SPC}
@kindex C-?
@findex w3m-scroll-down-or-previous-url
ポイント位置がバッファの先頭付近にあり、上方向にスクロールできない場合
に @kbd{@key{DEL}} を押すと、「前」のページへ移動しま
す (@code{w3m-scroll-down-or-previous-url})。ここで「前」のページとは、
現在表示されているページのヘッダ内の ``prev'' あるいは ``previous'' フィー
ルドに指定されているページのことです。この機能は訪問したページの履歴とは
関係ありません。@kbd{@key{SPC}} (@code{w3m-scroll-up-or-next-url}) と同
様、ただし逆の動きになります。
@end table

@node Browsing With Mouse Operations
@subsection マウスを使ってサーフィン

Emacs-w3m の開発者達は、Emacs ギーク@footnote{英語版の Info では Emacs
otaku} でない普通の人にも emacs-w3m を使ってもらえるように、少し骨を折り
ました。例えば URL やフォームのテキストの入力を除くほとんどのウェブブラ
ウズ操作を、マウスだけで行なうことができます。それでもなお修飾キーとして
シフトキーが必要になる場合があることに注意してください。Emacs-w3m の開発
者がみんな Emacs ギークなので@dots{}

ウェブ閲覧の最初の基本となる「リンクをたどる操作」には @kbd{mouse-2} を
使ってください。Emacs 22.1 以上では、@kbd{mouse-1} で
も @code{mouse-1-click-follows-link} の値に応じた、リンクをたどる操作を
行なうことができます。

@table @kbd
@item mouse-2
@kindex mouse-2
@findex w3m-mouse-view-this-url
マウスカーソルの下にあるリンクをたどりま
す (@code{w3m-mouse-view-this-url})。

@item S-@key{mouse-2}
@kindex S-@key{mouse-2}
@findex w3m-mouse-view-this-url-new-session
新しいセッション (@pxref{Tracing History}) のもとでマウスカーソルの下に
あるリンクをたどります (@code{w3m-mouse-view-this-url-new-session})。
@end table

Emacs-w3m のスクロールバー、メニュー及びツールバーは、マウスを使う場合に
役立ちます。ただし Emacs がそれらをサポートしていることが必要で、かつそ
れらを有効にしていなければなりません。言うまでもないですが、スクロールバー
を動かして表示をスクロールさせることができます。Emacs フレームの一番上に
ある「w3m」メニューから、この info ドキュメントで紹介してい
る emacs-w3m の様々な機能を呼び出すことができます。主要な機能については
メニューアイテムを選ぶまでもないことに注意してください。代わりにツール
バー・アイコンを使うことができます。

タブ (@pxref{Using Tabs}) を使って emacs-w3m のバッファを切り替えるには、
ウィンドウのてっぺんの行を @kbd{mouse-2} で直接クリックするか、または
「w3m」メニューの一つおいて隣にある「Tab」メニューから一つを選んでくださ
い。

@node Going back to daily hacking and/or daily writing
@subsection 普段の生活に戻るには

思い出してください。おそらくあなたはウェブを見るために Emacs を始めたの
ではありません。エディタの内蔵インタープリタを scheme に置き換えたり、ソ
フトウェアの info ドキュメントを作成したり、ソフトウェアの特許に対する自
分の考えを印刷したり@dots{}するためだったのではありませんか?  Emacs を使っ
ていた間に、仕事のためにウェブを見る必要に迫られ、しかしたまた
ま Emacs から離れずにウェブを見ることができてしまったのです。

さぁ、本来の作業に戻る時が来ました。あなたががんばらないと世界は変りませ
ん!  すぐにまたウェブを閲覧する必要があるかもしれないなら @kbd{q} を、し
ばらく emacs-w3m に戻ってくるつもりがないなら @kbd{Q} を使ってください。

@table @kbd
@item q
@kindex q
@findex w3m-close-window
Emacs-w3m のウィンドウと閉じて、他のバッファを選択しま
す (@code{w3m-close-window})。

@item Q
@kindex Q
@findex w3m-quit
Arrived URLs (閲覧履歴, @pxref{Tracing History} 参照) のリストとクッ
キー (@pxref{Cookie Variables}) をディスクに保存して、本当
に emacs-w3m を終了します (@code{w3m-quit})。
@end table

@node Inline Images
@section 画像表示を ON/OFF する
@cindex Displaying images

あなたが使っているバージョンの Emacs がバッファに画像を表示することがで
きるならば、あたかも Mozilla のような「グラフィカル」ブラウザのように、
emacs-w3m はウェブページにそれらを表示することができます。下記のコマンド
のどれかを使おうとする前に、あなたの Emacs が正しく画像表示に使えること
を確かめてください (@pxref{Required Emacs Version})。

現在のバッファにおける画像の表示を切り替えるには @kbd{T}
(@samp{Info-like} キーマップの場合は @kbd{I}) を使ってください。それによっ
て emacs-w3m はサーバから画像を取ってきて、しかる後にそれらを「グラフィ
カル」ブラウザとしてそうなるであろうバッファの位置に表示します。もう一度
キーを叩くと、画像はバッファから消え去ります。

デフォルトでは emacs-w3m は画像を表示しませんが、その振る舞いを変更して
常に画像表示することを選ぶのは可能で、それには変
数 @code{w3m-default-display-inline-images} をカスタマイズして、その値
を @code{nil} から @code{t} に変更する必要があります。
@xref{Customizable Variables}.

さらに emacs-w3m には、画像の拡大縮小、ファイルへのセーブ、または外部ビュー
ワで見る、といった気の利いた機能が付属しています。

@table @asis
@item @kbd{T} (Lynx-like キーマップ)
@itemx @kbd{I} (Info-like キーマップ)
@kindex T (Lynx-like キーマップ)
@kindex I (Info-like キーマップ)
@findex w3m-toggle-inline-images
現在のバッファにあるすべてのインライン画像の表示をトグルで切り替えま
す (@code{w3m-toggle-inline-images})。
@code{transient-mark-mode} が on で、かつ領域が設定されている場合に限っ
て、その領域内にある画像だけが on になります。

注1: 初めて訪れたページで最初からインライン画像を表示するかどうかは、前
述の通り変数 @code{w3m-default-display-inline-images} の値で制御されま
す (デフォルトは off です)。しかし、そのバッファを起点にして訪れるバッファ
で画像を表示するかどうかは、
@code{w3m-toggle-inline-images-permanently} が @code{nil} ではない値 (デ
フォルトは @code{t}) だった場合は、そのバッファで画像を表示していたかど
うかの最後の状態を継承します。
@code{w3m-toggle-inline-images-permanently} が @code{nil} だったら、常
に @code{w3m-default-display-inline-images} がそれを制御します。

注2: このコマンドは領域を不活性にします。したがって、再び特定の領域にあ
る画像だけを表示したいならば、もう一度その領域を設定しなければなりません。

@item @kbd{t} (Lynx-like キーマップ)
@itemx @kbd{i} (Info-like キーマップ)
@kindex t (Lynx-like キーマップ)
@kindex i (Info-like キーマップ)
@findex w3m-toggle-inline-image
カーソルの場所にある単一の画像の表示をトグルで切り替えま
す (@code{w3m-toggle-inline-image})。@code{transient-mark-mode} が on で、
かつ領域が設定されている場合に限って、その領域内にある画像だけが on にな
ります。@samp{Info-like} キーマップについては、もし Emacs が画像表示をサ
ポートしないならば、このキーは外部ビューワを起動するコマン
ド (@code{w3m-view-image}) にバインドされます。

@item @kbd{M-S-t} (Lynx-like キーマップ)
@itemx @kbd{M-S-i} (Info-like キーマップ)
@kindex M-T (Lynx-like キーマップ)
@kindex M-I (Info-like キーマップ)
@findex w3m-turnoff-inline-images
現在のバッファにあるすべてのインライン画像の表示を取り止めます。
(@code{w3m-turnoff-inline-images})。

@item @kbd{I} (Lynx-like キーマップ)
@kindex I (Lynx-like キーマップ)
@findex w3m-view-image
@cindex Viewing images
ポイントの下にある画像を外部ビューワで見ます (@code{w3m-view-image})。

@item @kbd{M-i}
@kindex M-i
@findex w3m-save-image
@cindex Saving images
ポイントの下にある画像を外部ファイルにセーブします。デフォルトの名前はそ
の画像の元の名前です。それ故に、ほとんどの場合
に @w{@kbd{M-i @key{RET}}} は正しい名前で画像をセーブするでしょ
う (@code{w3m-save-image})。

@cindex Zooming images
@item @kbd{M-[}
@kindex M-[
@findex w3m-zoom-out-image
ポイントの下にある画像を縮小 (zoom out) しま
す (@code{w3m-zoom-out-image})。

@item @kbd{M-]}
@kindex M-]
@findex w3m-zoom-in-image
ポイントの下にある画像を拡大 (zoom in) します (@code{w3m-zoom-in-image})。
@end table

@node Tracing History
@section 時空を遡る
@cindex Browsing history
@cindex Arrived URLs

Emacs-w3m には、以前に訪問したすべてのページのリストを提示するための、
2つの方法があります。第一の方法は「emacs-w3m の履歴」
(emacs-w3m history) と単純に呼ばれるもので、そのセッション (注: そのバッ
ファ内で行なう操作とそれに対する反応) において訪問したページのリストを階
層的に提示します。すなわち、あるリンクをたどると、それまでのページは行き
先の「親」になります。それは、訪れたページの跡をたどったり、履歴が長くなっ
てしまった場合にどこから着たかを思い出すためには、たいへん都合の良いもの
です。

これは、GNU プロジェクトのホームページをちょっと訪ねた後における、この機
能の動作の例です:

@example
GNU's Not Unix! - the GNU Project and the Free Software Foundation (FSF)
  Philosophy of the GNU Project - Free Software Foundation (FSF)
    GNU Emacs - GNU Project - Free Software Foundation (FSF)
     Order from the Free Software Foundation (FSF)
  Links to Other Free Software Sites - GNU Project - Free Software Fo...
    EFF: Homepage
@end example

(実際には、この例は 72 桁に収まるように、少しばかり編集されています。現
実の emacs-w3m バッファでは URLs は切り詰められません。)

どの emacs-w3m バッファからでも @kbd{s} キー (@samp{Info-like} キーマッ
プの場合は @kbd{o} キー) を使うことによって、このような履歴を提示させる
ことが可能です。

この履歴はバッファ・ローカル、すなわち、ある emacs-w3m のバッファに固有
のものであることに注意してください。でも emacs-w3m にはユニークな機能が
あります: あなたが新しいページを訪問する場合、履歴は新しいバッファにコピー
されます。その結果、それまでに訪れたページに今まで通りアクセスすることが
できます。これは、Mozilla などの、新しいバッファでは履歴が常にゼロからス
タートするブラウザとは異なります。

Emacs-w3m は単にあなたが訪れたページを記録するだけでなく、あなたがページ
の正確な同じ場所へ戻りたい場合に、それらのページの中の特定の位置を記録す
ることもできます。@w{@kbd{C-c C-@@}} を押すと、カーソルの位置が履歴に登
録されます。以前に記録した位置へ移動するには、そのページを開い
た emacs-w3m のバッファで @w{@kbd{C-c C-v}} を押してください。

@table @asis
@item @kbd{s} (Lynx-like キーマップ)
@itemx @kbd{C-u s} (Lynx-like キーマップ)
@itemx @kbd{o} (Info-like キーマップ)
@itemx @kbd{C-u o} (Info-like キーマップ)
@kindex s (Lynx-like キーマップ)
@kindex C-u s (Lynx-like キーマップ)
@kindex o (Info-like キーマップ)
@kindex C-u o (Info-like キーマップ)
@findex w3m-history
このセッションにおいて訪問した URLs のリストを表示します。接頭引数付きで
呼ばれると (後述)、代わりに arrived URLs を表示しま
す (@code{w3m-history})。

@item @kbd{C-c C-@@}
@itemx @kbd{C-c C-@key{SPC}}
@kindex C-c C-@@
@kindex C-c C-@key{SPC}
@findex w3m-history-store-position
そのページの中のカーソルの位置を履歴に記録します。

@item @kbd{C-c C-v}
@kindex C-c C-v
@findex w3m-history-restore-position
現在表示しているページにおい
て、@w{@kbd{C-c C-@@}} (@code{w3m-history-store-position}) で記憶した位
置へ移動します。
@end table

もう一つの過去に訪れたページに関する情報を手に入れる方法は、「arrived
URLs」です。これはあなたが emacs-w3m で訪問した、最後の 500個! の URL の
リストです。リストは日付順で、最も最近のものを先頭に、それぞれのページの
訪問時刻が表示されます。これは例です (info の表示が拡がり過ぎないように
編集されています):

@example
Order from the Free Software Foundation (FSF)             22:53:25
GNU Emacs - GNU Project - Free Software Foundation (FS    22:53:05
Philosophy of the GNU Project - Free Software Foundati... 22:52:46
Philosophy of the GNU Project - Free Software Foundati... 22:52:39
EFF: Homepage                                             22:52:18
Links to Other Free Software Sites - GNU Project - Fre... 22:52:07
Links to Other Free Software Sites - GNU Project - Fre... 22:52:07
GNU's Not Unix! - the GNU Project and the Free Softwar... 22:51:32
Bookmarks                                                 22:51:02
The DICT Development Group- upwards                       2003-01-08
the monkey puzzle: new debian packages as an rss feed     2003-01-08
new-debian-packages.rss                                   2003-01-07
it's a miracle                                            2003-01-06
@end example

前のコマンドに接頭引数を渡す、すなわち @w{@kbd{C-u s}}
(@samp{Info-like} キーマップの場合は @w{@kbd{C-u o}}) を使うことによって、
この履歴を得ることができます。このページに表示される URLs の数はカスタマ
イズできます。変数 @code{w3m-keep-arrived-urls} を参照してください。それ
はデフォルトでは 500 を越えることはできません。@xref{Customizable
Variables}.

もちろん、すべての場合に、例に示されているすべての行はリンクです。そのリ
ンクをたどることによって、通常のページを訪問していたらちょうどそうなるよ
うに、以前に訪ねたどのページにも行くことができます。

@ref{Moving over pages} の項も見てください。そこでは「戻る」「進む」など
の機能に割り当てられた単純なキーで、履歴の中を移動するやり方を説明してい
ます。

@node Managing Bookmarks
@section ぼくの/わたしのお気に入り
@cindex Bookmarks

現代的なあまたのブラウザの例に漏れず、emacs-w3m には先進のブックマークの
機能があります。それによってカテゴリー毎に分類し、それらを編集し、ああ、
もちろん簡単に閲覧することができます。

日本語版注釈: ブックマークの語源は、本に挟む栞 (しおり) のことです。

@menu
* Adding Bookmarks::            お気に入りに URL を加える
* Consulting Bookmarks::        ブックマークを閲覧する
* Editing Bookmarks::           ブックマークを変更するには?
@end menu

@node Adding Bookmarks
@subsection お気に入りに URL を加える
@cindex Adding a bookmark
@kindex a
@kindex C-u a
@findex w3m-bookmark-add-current-url
@kindex M-a
@findex w3m-bookmark-add-this-url

ブックマークに URL を加えるには、いくつかのやり方があります。最初の一つ
は、@kbd{a} キーを使って (または @code{w3m-bookmark-add-current-url} コ
マンドを呼んで) 今現在閲覧しているページを加えることです。すると、そのブッ
クマークをどの項目に入れるかを尋ねられ (@kbd{@key{TAB}} キーによる補完が
効きます)、タイトルの書き換えが促されます (デフォルトは、そのページのタ
イトルになっています)。これらの二つをこなしたら、それらを有効にするため
に @kbd{@key{RET}} を叩いてください。すると ``Added'' というメッセージが
ミニバッファに現れて、(驚くなかれ!) そのページがブックマークに記録されま
す。

ブックマークを加えるもう一つの方法は、@kbd{M-a} を使う (また
は @code{w3m-bookmark-add-this-url} コマンドを呼ぶ) ことです。これは、現
在位置の URL (もしそのリンクをたどると、閲覧することができる URL) をブッ
クマークに加えます。その場合でも最初に説明した方法と同様に、項目の名前と
タイトルを入力しなければなりません。そのとき、それらのデフォルトはリンク
自体の名前になっています。

最後に、三番目の方法は @w{@kbd{C-u a}} を叩くことです。このときは、ブッ
クマークに加える URL、その項目、およびタイトルの入力が促されます。

@table @kbd
@item a
現在のページをブックマークに加えます。接頭引数付きで呼ばれた場合は、加え
る URL の入力が求められます (@code{w3m-bookmark-add-current-url})。

@item M-a
現在位置の URL をブックマークに加えま
す (@code{w3m-bookmark-add-this-url})。
@end table

@node Consulting Bookmarks
@subsection ブックマークを閲覧する
@cindex Consulting bookmarks
@kindex v
@findex w3m-bookmark-view

ブックマークされたページを閲覧する最も簡単な方法は、emacs-w3m のバッファ
で @kbd{v} キーを叩くことです。ですがもう一つ、特別な URL であ
る @uref{about://bookmark/} に行くことによっても可能です。すると一行あた
り一つずつのブックマークが、項目ごとにまとめられて表示されるでしょう。そ
こでは、他のページを閲覧するのと同じように、それらを確実に閲覧することが
できます。

ブックマークのページでは bookmark マイナーモードが働いています。それは、
ブックマークを編集するためのキーバインドを追加します。@xref{Editing
Bookmarks}.

@table @kbd
@item v
ブックマークのページを呼び出します (@code{w3m-bookmark-view})。
@end table

@node Editing Bookmarks
@subsection ブックマークを変更するには?
@cindex Editing bookmarks

Bookmark マイナーモード (@pxref{Consulting Bookmarks}) は、ブックマーク
を編集するためにいくつかのキーバインドを設けています。中でもブックマーク
を kill (すなわち消去) するための @kbd{C-k} とブックマーク・ファイルを編
集するための @kbd{E} (@samp{Info-like} キーマップの場合は @kbd{e}) は、
最も注目に値します。

ブックマークは HTML ファイルに収められています。したがってそのファイルは
手で編集することができますが、十分に注意してください。emacs-w3m が項目名
を認識するために必要なコメントを消してしまうことによって、ものごとは簡単
に台無しになります。あなたが HTML の基本を知っていれば、むしろそのファイ
ルの中身は極めて分かり易いものでしょう。

@table @kbd
@item C-k
@findex w3m-bookmark-kill-entry
現在位置のブックマークを kill します (@code{w3m-bookmark-kill-entry})。

@item E
@findex w3m-bookmark-edit
ブックマーク・ファイルを読み込んで、編集可能な状態にしま
す (@code{w3m-bookmark-edit})。

@item C-_
@findex w3m-bookmark-undo
やり直しをします (@code{w3m-bookmark-undo})。
@end table

@node Using Tabs
@section みんなタブが好きだよね

ほとんどの他のテキストベースのブラウザーと異なり、emacs-w3m はタブによる
閲覧をサポートしています。タブによる閲覧って何? と尋ねられそうですね。そ
れはとても単純で、ウィンドウのてっぺんの行にすべてのバッファを単純かつ分
かりやすいやり方で表示することによって、単一のウィンドゥですべて
の emacs-w3m のバッファを表現する方法です。それぞれのバッファは「タブ」
として表示されます。この行は、他のバッファに移動したり、ページの状態を知
ることができるようにするために常に見えたままになっていて、バッファにつら
れてスクロールしません。

その感触をつかむ最も簡単な方法は、単に試してみることです。ですから、引き
続いて emacs-w3m のセッションを始めてください。何も設定変更をしていなけ
れば、デフォルトでタブの行が現れます。てっぺんで、小さな四角に現在のペー
ジのタイトルを表示している明るい行がそれです。では (例え
ば @kbd{G} で) 別の w3m バッファを作ってみましょう。すると四角が二つになっ
たでしょう。それらがタブです。

もっとも分かりやすいタブの使い道は切り替えです: タブの上
で @kbd{mouse-1} ボタンをクリックすることによって、そのバッファを表示さ
せることができます。さらに @kbd{mouse-2} ボタンでも、または GNU Emacs で
はマウスホイールでも動作します。これは、複数の emacs-w3m バッファを使う
ための、非常に速くて簡単な方法です。単に指し示してクリックするか、マウス
ホイールをクルクルすれば良いのですから。(はいはい、あなたを無視していま
せんよ。あなたはキーボードを使って切り替えたいのですね。ご心配無く。それ
も可能です。次の節で説明しますから、黙って読み続けてください!)

もう一つの気が利いた機能は、ページの状態を知らせることです。カラー端末か
ウィンドゥシステムを使っていれば、ページの状態を知らせるため
に emacs-w3m は違う色でテキストをタブに表示します@footnote{XEmacs はすべ
てのタブをいつも同じ色で表示しますが、選択されたタブと他のものを区別した
り、モードラインで現在のページの状態を知ることは簡単です。}。例えばベー
ジを取り込んでいる最中はテキストは赤くなっていて、取り込みが完了するとデ
フォルトの色 (通常は黒) に戻ります。これにより、見ようと思って待っている
ページが到着したかどうかが、タブ行を一目見ただけで分かります。

最後に、もしウェブページが favicon を持っていれば、それもタブに表示され
ます@footnote{XEmacs では今のところタブ行に favicon は表示されません。}。
Emacs-w3m ユーザにもっと視覚効果を!

ユーザオプション:

@table @code
@item w3m-use-tab
@vindex w3m-use-tab
タブによる閲覧を活かすかどうか。
@end table

あなたが GNU Emacs のユーザーならば、マウスホイールを使うと、隣のバッファ
に行くだけでなく、バッファを隣の場所に移動させることもできます。それには
タブ行の上でマウスホイールを回す間、コントロール・キーを押し下げておいて
ください。マウスホイールによって emacs-w3m がどのように動作するかを制御
する二つの変数があります:

@table @code
@item w3m-tab-track-mouse
@vindex w3m-tab-track-mouse
この変数は、マウスが選択したタブを追いかけて移動するかどうかを制御します。
デフォルト値は @code{t} です。もしプロポーショナルなフォントをタブのフェー
スに使っているならば、これを @code{nil} に設定する必要があるかもしれませ
ん。@code{w3m-tab-mouse-position-adjuster} も見てください。

@item w3m-tab-mouse-position-adjuster
@vindex w3m-tab-mouse-position-adjuster
この変数は、マウスポインターが選択したタブを追いかけて移動するときのマウ
スの位置を調整するための値を含んでいます。デフォルト値
は @code{(0.5 . -4)} です。これは浮動少数 @var{m} と整数 @var{n} のコン
ス・セルで、マウスの位置 (ピクセル数で与えられます) の計算に以下のように
適用されます:

@example
(TAB_WIDTH + M) * ORDER + N
@end example

ここで @var{tab_width} は一つのタブのピクセル幅、@var{order} は何番目の
タブかを表します。結果の少数以下は切り捨てられます。

もしタブのフェースにプロポーショナルなフォントを使っていると、この計算は
常に失敗するでしょう。@code{w3m-tab-track-mouse} も参照してください。
@end table

@node Working with buffers
@section バッファを作る/消す/移動する

遅かれ早かれあなたは emacs-w3m 中毒になって、すべてのウェブの閲覧をそれ
で賄わなければならなくなるでしょう。あなたがめげてしまいそうなこの任務を
手伝うために、emacs-w3m のバッファで動作するたくさんの違う手段を考えまし
た。

@menu
* Creating and killing buffers:: バッファを作ったり消したり
* Moving across buffers::        バッファ間の移動
* Selecting buffers::            リストからバッファを選ぶ
@end menu

@node Creating and killing buffers
@subsection バッファを作ったり消したり
@cindex Creating new buffers
@cindex Killing buffers

時に、ウェブページを開かないで単に新しいバッファを作ることが役に立つこと
があります。この操作を emacs-w3m の用語では「ふたごのコピーを作る」
(creating a twin copy) と言います。これは単に、その内容が現在のバッファ
と同一な新しいバッファを作ります。

この反対はバッファを閉じることで、今はその内容に興味が無い一つのバッファ
を、単に閉じることができます。あるいは、現在のバッファ以外のすべてを閉じ
ることを決断しても良いです。以下のコマンドでそれを行なってください:

@table @kbd
@item C-c C-t
@itemx M-n
@kindex C-c C-t
@kindex M-n
@findex w3m-copy-buffer
現在のバッファと同一のコピーを新しい名前で作ります。これは新しいバッファ
にウェブページを取り込まずに、新しいセッションを始めるのに使いま
す (@code{w3m-copy-buffer})。

@item C-c C-w
@kindex C-c C-w
@findex w3m-delete-buffer
現在の emacs-w3m のバッファを閉じます (@code{w3m-delete-buffer})。

@item C-c M-w
@kindex C-c M-w
@findex w3m-delete-other-buffers
現在のもの以外のすべての emacs-w3m のバッファを閉じま
す (@code{w3m-delete-other-buffers})。
@end table

@node Moving across buffers
@subsection バッファ間の移動

最も頻繁に使うコマンドがたぶん隣のバッファに行くものであろうことは、世間
の認めるところでしょう。それは、現在の「後」か「前」のバッファです。この
意味はタブを使ってみればよくわかります。次のバッファは現在の右側の一つ後、
前のバッファは左側です。しかし、残念ながら XEmacs はタブを順不同に表示す
るので、どれが隣のバッファかを知るには、各タブに表示されている数字に注目
する必要があります。これらのコマンドに割り当てられているキー
は @w{@kbd{C-c C-p}} と @w{@kbd{C-c C-n}} です。

これらのコマンドは数字接頭引数の習慣を理解します。すなわち、それらを
数 N を引数として呼ぶと、現在のバッファから N 個離れたバッファに行きます。
例えば、現在位置から右にバッファを二個分 (すなわちバッファ二個分だけ次
に) 移動するには、@w{@kbd{2 C-c C-n}} を使ってください@footnote{いつもの
ように、@w{@kbd{2 C-c C-n}} の代わりに @w{@kbd{C-u 2 C-c C-n}} を使って
も良いのですが、emacs-w3m のバッファではすべての数字キーとマイナス記号が
数の接頭引数に割り当てられていることを覚えておいてください。}。

@table @kbd
@item C-c C-p
@kindex C-c C-p
@findex w3m-previous-buffer
前の emacs-w3m バッファに移動します。これは通常タブ行において左方向に次
です。数の引数 N を付けて使うと、バッファを N 個分前に移動しま
す (@code{w3m-previous-buffer})。

@item C-c C-n
@kindex C-c C-n
@findex w3m-next-buffer
次の emacs-w3m バッファに移動します。これは通常タブ行において右方向に次
です。数の引数 N を付けて使うと、バッファを N 個分次に移動しま
す (@code{w3m-next-buffer})。
@end table

あなたが GNU Emacs のユーザーならば、以下のコマンドを使って emacs-w3m バッ
ファをタブ行の隣の場所に移動させることもできます:

@table @kbd
@item C-c C-.
@itemx C-c C->
@findex w3m-tab-move-right
選択されている emacs-w3m バッファを、タブ行の右隣の場所に移動させます。
数の引数 N を付けて使うと、タブの N 個分右に移動させま
す (@code{w3m-tab-move-right})。

@item C-c C-,
@itemx C-c C-<
@findex w3m-tab-move-left
選択されている emacs-w3m バッファを、タブ行の左隣の場所に移動させます。
数の引数 N を付けて使うと、タブの N 個分左に移動させま
す (@code{w3m-tab-move-left})。
@end table

私たちが骨を折ったにもかかわらず、これらのコマンドがお気に召さないならば、
あなたが欲しいものが ibuffer や iswitchb のような万能志向の
人 (generalist) 向けのバッファ管理パッケージの中にあるかどうかを探してみ
るのも良いかもしれません。emacs-w3m バッファは Emacs の正規のバッファで
すから、それらもまた良好に動作するでしょう。

@node Selecting buffers
@subsection リストからバッファを選ぶ

リストから emacs-w3m のバッファを選ぶための二つのやり方があります。一つ
目は、@w{@kbd{C-c C-a}} で呼び出されるミニバッファ・ベースのインターフェー
スです。表示したいバッファを、@kbd{M-p} と @kbd{M-n} キー (また
は @key{↑} と @key{↓} キー) を使って選ぶことができ、それらはリストの中
で循環します。また、プロンプトを編集して、@kbd{@key{TAB}} の補完を使って
既存のウェブページのタイトルを書き込むこともできます。例えば、``Google
Search'' のページを開いてあるならば、``Goo'' に続けて @kbd{@key{TAB}} を
叩くことによって、そのページのタイトルが完成します。ページの名前の後ろに
は、(鍵括弧で挟まれた) バッファの名前が付きます。そし
て @kbd{@key{RET}} を使うと、あなたが選んだバッファに切り替わります。

二つ目のもっと洗練されたインターフェースは emacs-w3m バッファリストと言
い、@w{@kbd{C-c C-s}} で起動されます。それは分割されたウィンドゥにすべて
の開いているバッファを表示し (@w{@kbd{C-c C-s}} で表示形式が切り替わりま
す)、実時間でバッファを見ることができるようになります。そのバッファリス
トの中でポイントを移動すると、ポイントのところにあるバッファが主ウィンドゥ
に表示され、バッファの切り替えが直接目に見える形で返ってくるのです。

バッファリストの中を移動するには @kbd{p} と @kbd{n} キー (または矢印
キー) を使ってください。バッファリストで
は @kbd{@key{DEL}} と @kbd{@key{SPC}} で、主ウィンドゥに表示されているバッ
ファをスクロールさせることが可能で、これは正しいバッファを見ているかどう
かをチェックしたいときに便利です。ポイントのところにあるバッファを選びた
いときは @kbd{@key{RET}} キーを使ってください。この場合はバッファリスト
が隠されます。あるいは、@kbd{w} キーを使った場合はバッファリストは表示さ
れたままで、主ウィンドゥにフォーカスします。

また、このメニューで普通のバッファで使われるのと同じキー割り当
て (@pxref{Creating and killing buffers}) で、バッファを閉じたり作ること
もできます。

最後に、@kbd{?} はヘルプの表示、@kbd{g} はリストの作り直し、そし
て @kbd{q} はバッファリストの終了を主ウィンドゥのバッファは変更せずに、
それぞれ実行します。

@table @kbd
@item C-c C-a
@kindex C-c C-a
@findex w3m-switch-buffer
@cindex Switching buffers using the minibuffer
ミニバッファでバッファ名の入力を求めます。@kbd{M-p} と @kbd{M-n} で既存
のバッファが循環し、@kbd{@key{TAB}} で補完できま
す (@code{w3m-switch-buffer})。

@item C-c C-s
@kindex C-c C-s
@findex w3m-select-buffer
@cindex Switching buffers using the buffer list
分割されたウィンドゥにバッファリストを表示しま
す (@code{w3m-select-buffer})。このウィンドゥでは @w{@kbd{C-c C-s}} で水
平と垂直モードが切り替わり、@kbd{@key{RET}} でポイントのところにあるバッ
ファを選んでバッファリストは隠蔽、@kbd{w} でポイントのところにあるバッファ
を選んでそれにフォーカス、@kbd{n} と @kbd{p} それに矢印キーが上下の移動
に使えます。
@end table

@node Downloading
@section ファイルをダウンロードする
@cindex Downloading files

どんなウェブページやファイルも emacs-w3m でダウンロード (すなわち取得、
表示ではありません) できます。単にダウンロードしたいリンクにポイントを置
いて @kbd{d} を叩いてください。ローカルにセーブするファイル名が尋ねられ
ます。デフォルトでは遠隔サーバーにおけるファイルの名前になります。それで
良ければ @kbd{@key{RET}} を押してください。ダウンロードは非同期に実行さ
れ、Emacs で行なっている他の仕事の邪魔をしないので、そうしたければ他のバッ
ファで emacs-w3m による閲覧を続けることができます。

このダウンロードの仕組みは w3m を使うのですが、代わりにもっと強力
な wget を使うことも考慮してみてください。私たちのお友だちプロジェクトで
ある ``emacs-wget'' を覗いてみましょう。そのホームページはこ
こ @uref{http://pop-club.hp.infoseek.co.jp/emacs/emacs-wget/} です。

@table @asis
@item @kbd{d} (Lynx-like キーマップ)
@itemx @kbd{D} (Info-like キーマップ)
@kindex d (Lynx-like キーマップ)
@kindex D (Info-like キーマップ)
@findex w3m-download-this-url
ポイントのところにあるリンクが指し示すファイルかページをダウンロードしま
す (@code{w3m-download-this-url})。

@item @kbd{M-d} (Lynx-like キーマップ)
@itemx @kbd{d} (Info-like キーマップ)
@kindex M-d (Lynx-like キーマップ)
@kindex d (Info-like キーマップ)
@findex w3m-download
URL の内容をローカルファイルにダウンロードします (@code{w3m-download})。
その URL とローカルファイルの名前の入力を求められます。
@end table

@node Submitting Forms
@section HTML フォームに記入する

これらの emacs-w3m コマンドは、単純なキーバインドと専用の Emacs のウィン
ドゥかミニバッファを使って、フォームからフォームへの移動とフィールドに入
力するための機能を提供します。

覚えておいて欲しい大事なキーバインドは @kbd{@key{RET}} です。これは現在
位置にあるものによって異なる意味を持ちます。テキスト領域 (textarea) では、
ミニバッファで値を入力することが促されます。選択用のタグでは、選択肢のリ
ストが Emacs のエレクトリック (electric == 自己挿入) ウィンドゥに現れま
す (そこでは矢印キーで移動して、@kbd{@key{RET}} キーで一つを選ぶことがで
きます)。ラジオボタンおよびチェックボックスでは @kbd{@key{RET}} キーでそ
れらのうちの一つを選びます。

ミニバッファかエレクトリック・ウィンドゥにいるときは、
@w{@kbd{C-c C-q}} キーで取り消すことができます。フォームに記入したものを
送り出すには @w{@kbd{C-c C-c}} を使ってください。

@table @asis
@item @kbd{]}
次のフォームにジャンプします (@code{w3m-next-form})。

@item @kbd{[}
前のフォームにジャンプします (@code{w3m-previous-form})。

@item @kbd{C-c C-c}
現在位置のフォームに記入したものを送り出します (@code{w3m-submit-form})。

@item @kbd{@key{RET}}
現在位置にあるのフォーム値を書き換えます。

@item @kbd{@key{RET}} @r{(w3m-form-*-keymap)}
その値を選択します。

@item @kbd{C-c C-q} @r{(w3m-form-*-keymap)}
フォームの編集を中断して、変更を取り止めます。
@end table

@code{w3m-form-use-textarea-backup} が @code{nil} に設定されていなかった
ら、textarea で入力したテキストを後で再利用できるように、バックアップ・
ファイルに記録します。フォームの編集を始めるときにバックアップされたテキ
ストがあったら、それを使うかどうかを尋ねられるでしょう。テキストを保存す
るためのファイルは、変数 @code{w3m-form-textarea-directory} で指定される
ディレクトリに格納されます。

@node HTML File Information
@section ウェブページ作りとハックのお手伝い

いつもドキュメントの執筆環境として、あるいはソフトウェアの開発環境とし
て Emacs を使っている人には、同じその環境の中でウェブを閲覧できることは
本当に便利でしょう。例えば HTML ファイルを執筆しているのであれば、外部の
ウェブブラウザを起動する必要なく、Emasc の中で作成した HTML ファイルをプ
レビューできます。プログラミング・マラソンの最中に、迅速に技術文献からサ
ンプルコードを切り貼りするといったことだって@dots{}

逆はどうでしょう。(すなわちウェブ閲覧の環境で、そのソースである HTML ファ
イルを編集したり、参照したりできたら) かっこいいと思いませんか？ ドキュ
メントを執筆中に emacs-w3m で下見 (preview) して誤字を発見したと想像して
みてください。その HTML ファイルをたちどころに修正したくなるはずです。あ
なたがウェブテクノロジーに携わるプログラマなら、閲覧中のウェブページ
を HTML 形式で閲覧したくなることがあるでしょう、特に、新聞モジュールの作
者の方 (@pxref{Shimbun Basics})。

HTML ファイルを開いている Emacs のバッファの名前を明示的に指定してバッファ
を切り替えることも普通にできますが、emacs-w3m ではそういった目的のために
専用のキーが割当てられています。Emacs-w3m は自分が現在表示しているウェブ
ページの URL を知ってるんです。その情報を使わない手はありません。

@table @asis
@item @kbd{\}
@kindex \
@findex w3m-view-source
表示中のウェブページを HTML 形式でそのまま表示しま
す (@code{w3m-view-source})。

@item @kbd{=}
@kindex =
@findex w3m-view-header
表示中のウェブページの情報を表示します。情報には、タイトル、URL、
ドキュメントタイプ、最終変更日時が含まれます (@code{w3m-view-header})。

@item @kbd{E} (Lynx-like キーマップ)
@itemx @kbd{e} (Info-like キーマップ)
@kindex E (Lynx-like キーマップ)
@kindex e (Info-like キーマップ)
@findex w3m-edit-current-url
現在閲覧中のローカルファイルを編集します (@code{w3m-edit-current-url})。

@item @kbd{e} (Lynx-like キーマップ)
@itemx @kbd{E} (Info-like キーマップ)
@kindex e (Lynx-like キーマップ)
@kindex E (Info-like キーマップ)
@findex w3m-edit-this-url
現在ポイントの下にあるリンク先のローカルファイルを編集しま
す (@code{w3m-edit-this-url})。

@item @kbd{M}
@kindex M
@findex w3m-view-url-with-browse-url
ポイントにあるリンクを @code{browse-url} で開きます。

@item @kbd{|}
@kindex |
@findex w3m-pipe-source
ウェブページのソースをコマンドにパイプします。どんなコマンドを使うかを尋
ねられます (@code{w3m-pipe-source})。
@end table

ここで紹介した以外にも、他のコマンドや Emacs のサブシステム
と emacs-w3m を連携させる方法を @pxref{Tips} にて紹介しているので、参考
にしてください。

@node Pretty Good Features
@chapter たくさんのすぐれもの

@menu
* Using Search Engines::        使いやすいウェブ検索
* Grouping URLs::               一つの URL で複数のウェブページを見る
* Weather Information::         明日の天気は晴れでしょう
* Using Antenna::               アンテナを張り巡らそう
* Showing Directory Tree::      ディレクトリの木構造を表示する
* Viewing Perl Documents::      Perl のドキュメントを見る
* Using Namazu::                Namazu でファイルを検索する
* Octet::                       application/octet-stream データを見る
* Frame Local Buffers::         多数のセッションをフレームでグループ分けする
* Session Manager::             セッションの保存と読みこみ
@end menu

@node Using Search Engines
@section 使いやすいウェブ検索
@cindex Search engines

Emacs-w3m には検索エンジンを利用するための先進の機能があり、三つのインター
フェースを通して利用することができます:

@itemize
@item
標準の検索インターフェースです。@kbd{S} キー (@samp{Info-like} キーマッ
プの場合は @kbd{s} キー) で、いずれかの emacs-w3m バッファから起動されま
す。これは検索エンジンを指定して検索語を入力する、単純な対話型のやり方で
す。@ref{The Search Interface} を参照してください。

@item
クイックサーチ・インターフェースです。これは技巧的に作られた URL に行く
ことによって検索エンジンを利用するための、より速い (さらに、より複雑
な) 方法です。この機能に関する詳細は @ref{Quick Searching} を参照してく
ださい。

@item
``I'm feeling lucky'' 機能が有効になってい
る (@code{w3m-enable-google-feeling-lucky}) と、URL を入力するときに通常
の URL の代わりに何かの語句を指定することによって、その語句の Google 検
索を自動的に開始して、最も関係がありそうな結果を表示させることができます。
これは最も関係がありそうなページをすぐに見たい場合に便利ですが、検索結果
のリストは表示されません。
@end itemize

@menu
* The Search Interface::        Emacs-w3m による検索のやり方
* Quick Searching::             もう一つの (そして速い) ウェブ検索
* Adding New Search Engines::   お気に入りのエンジンを使うには?
@end menu

@node The Search Interface
@subsection Emacs-w3m による検索のやり方
@cindex Searching

Emacs-w3m のバッファで @kbd{S} キー (@samp{Info-like} キーマップの場合
は @kbd{s} キー) を使うことにより、標準の検索インターフェースを立ち上げ
ることができます。すると、ミニバッファで検索語の入力を求めるプロンプトが
現れるので、一つまたは複数の語を入れて、@kbd{@key{RET}} を叩いてください。
そのエンジンの検索結果のページが現れ、その後、あたかも検索エンジンに通常
のウェブの流儀による入力を行なったときのように、結果を閲覧することができ
ます。

おそらく、あなたはどのエンジンで探索したいかを決める機会が与えられていな
いことに気付くでしょう。Emacs-w3m はデフォルトで Google 検索エンジンを使
いますが、変数 @code{w3m-search-default-engine} (@ref{Customizable
Variables} 参照) をカスタマイズすることによって、この振る舞いを変更する
ことができます。あるいは、このコマンドを使うたびに検索エンジンを指定する
ことができます。

どのエンジンを使用するかを明示するためには、コマンドに接頭引数を与えなけ
ればなりません (通常これは @w{@kbd{C-u S}} (@samp{Info-like} キーマップ
の場合は @w{@kbd{C-u s}}) のように、コマンドの前に @kbd{C-u} を叩くこと
を意味します)。すると emacs-w3m はエンジンの入力を促すので、その名前を一
つ選ぶことができます (@key{@key{TAB}} キーで補完ができます)。いったん選
択したら @kbd{@key{RET}} キーを叩いてください。その後で検索語を入力する
ことができ、@kbd{@key{RET}} をタイプすれば検索結果が現れるでしょう。

@table @asis
@item @kbd{S} (Lynx-like キーマップ)
@itemx @kbd{s} (Info-like キーマップ)
@kindex S (Lynx-like キーマップ)
@kindex s (Info-like キーマップ)
@findex w3m-search
@vindex w3m-search-default-engine
新しい検索を始めます。接頭引数付きで呼ばれた場合は、どのエンジンを使うか
を尋ねます (@code{w3m-search})。
@end table

@node Quick Searching
@subsection もう一つの (そして速い) ウェブ検索
@cindex Quick Searching
@cindex Special URLs
@vindex w3m-uri-replace-alist
@vindex w3m-search-engine-alist
@vindex w3m-default-coding-system

ウェブ・パワーユーザ (これを読んでいるあなた) には、迅速で効率的な検索の
方法が必要です。クイックサーチはその一つです。

それは何をするのかって?  それは @uref{gg:emacs} のような特別の URL に行
くだけで、ウェブ検索を始めさせるのです。このモードの動作の長所は、次の通
りです:

@itemize
@item
速い。エンジンと検索語を選ぶのに、一つの URL をタイプするだけです。

@item
便利。この機能によって、容易に emacs-w3m のタブかウィンドゥを開いて、検
索を始めることができます。例えば、@kbd{G} キーで新しいウィンドウを開いて
クイックサーチ URL に行くように。そして、特別のクイックサーチ URL そのも
のにも、ブックマークを付けることができます。

@item
グルーピング機能も使える。例えば @uref{group:gg:emacs&ya:w3m} のよう
な URL によって、同時に二つの検索を始めることができます。例えばこの場合
は、Google で ``emacs'' の、Yahoo! で ``w3m'' の検索をそれぞれ始めます。
@xref{Grouping URLs}.
@end itemize

これを使うのはとても簡単です。``gnu'' という単語を Google で探して結果の
リストを得たいのであれば、@kbd{g} を叩いてから ``gg:gnu'' という URL を
タイプしてください。この表現の第一の部分 "gg" は、Google 検索エンジンを
使用したいことを示します。第二の部分は検索語です。エンジンと検索語は、コ
ロンで分けなければなりません。そして @kbd{@key{RET}} を叩けば検索結果を
見ることができます。スペースで分離した複数の語を入力できることを、心に留
めておいてください。``Feeling Lucky'' 機能が有効になっていれば、ミニバッ
ファで @kbd{@key{SPC}} は self-insert キーになっています (これがデフォル
トです。@code{w3m-enable-google-feeling-lucky} を参照してください。) 無
効にしてある場合は、最初に @kbd{C-q} を叩いてください。つま
り @w{@kbd{C-q @key{SPC}}} です。

Emacs-w3m のデフォルトでは、利用可能ないくつかの検索エンジンの短縮形があ
り、それらは変数 @code{w3m-uri-replace-alist} で定義されています。例え
ば Google には ``gg''、Google Groups 用には ``ggg''、Yahoo! のため
の ``ya''、Altavista に対する ``al'' および 英辞朗 on the
WEB の ``alc'' などの短い名前です。さらに検索エンジンの短縮形を追加する
には @ref{Adding New Search Engines} を参照してください。

短縮形の代わりに、``google'' や ``yahoo'' のような完全なエンジンの名前を、
クイックサーチ URL に使うこともできます。それらの名前は、変
数 @code{w3m-search-engine-alist} で定義されます。

@node Adding New Search Engines
@subsection お気に入りのエンジンを使うには?
@cindex Adding new search engines

Emacs-w3m は利用可能な多くの検索エンジンを持っています。あなたのお気に入
りの検索エンジンを使いたいのに、万が一にもそれが既知の検索エンジンのリス
トに載っていなかったらどうしましょう?  それを検索エンジンのリストに加え
れば良いのです。そしてそれは極めて簡単です:

@enumerate
@item
最初に、あなたが加えたい検索エンジンのエントリー・ポイントが何かを知らな
ければなりません。例えば:

@uref{http://my.searchengine.com/?query=foobar}

ここで foobar はあなたが検索したい語です。

@item
この情報が手に入ったら、@file{~/.emacs-w3m} ファイルに加えてください:

@lisp
(eval-after-load "w3m-search"
  '(add-to-list 'w3m-search-engine-alist
                '("My engine"
                  "http://my.searchengine.com/?query=%s"
                  nil)))
@end lisp

第一フィールドの "My engine" をあなたのエンジンの説明で、第二フィールド
をエントリー・ポイントで置き換えてください (@samp{%s} は重要です。これは
検索を行なうときに、検索語で置き換えられます)。そして第三フィールドは使
用するエンコーディングを意味し、@code{nil} またはそれが省略された場合は
変数 @code{w3m-default-coding-system} の値が標準のエンコーディングとして
使われます。

英語の検索エンジンでは滅多に気にする必要が無いことなのですが、いくつかの
日本の検索エンジンでは、それに何か (例えば @code{euc-japan}) を指定する
必要があるかもしれません。

@item
今やこの検索エンジンは、emacs-w3m で通常
の @kbd{S} キー (@samp{Info-like} キーマップの場合は @kbd{s} キー) で使
うことができます。このエンジンを頻繁に使うのならば、短いエンジンの名前を
クイックサーチエンジン (@ref{Quick Searching} を参照) に加えることもでき
ます。それには、以下のコードを @file{~/.emacs-w3m} ファイルに追加してく
ださい:

@lisp
(eval-after-load "w3m-search"
  '(progn
     (add-to-list 'w3m-search-engine-alist
                  '("My engine"
                    "http://my.searchengine.com/?query=%s"
                    nil))
     (add-to-list 'w3m-uri-replace-alist
                  '("\\`my:" w3m-search-uri-replace "My engine"))))
@end lisp

これにより、@uref{my:foobar} のような URL を使って、あなたの検索エンジン
で ``foobar'' という語を検索することができます。
@end enumerate

@node Grouping URLs
@section 一つの URL で複数のウェブページを見る
@cindex Grouping URLs

Emacs-w3m は ``group URLs'' という、複数の実際の URL を一つにまとめた特
別な URL を扱うことができます。そのようなグループ URL を開くと、
emacs-w3m は一度に複数のページを開くために、そのグループに含まれるそれぞ
れの URL に対して一つのバッファを開きます。

グループ URL を作るには、開きたいすべてのページのアドレスを単にアンパサ
ンド記号 (``&'') で一緒にして (すなわち結合して)、グループ URL を表す接
頭辞の ``group:'' を付ければ良いのです。例を挙げると、GNU プロジェクトの
ホームページ @uref{http://www.gnu.org/} と Savannah ホームペー
ジ @uref{http://savannah.nongnu.org/} を見たいものとすれば、グルー
プ URL は次のようなものになるでしょう。

@uref{group:http://www.gnu.org/&http://savannah.nongnu.org/}

この構文を日常的に使うのはかなり辛いものがありますが、非常に短い URL (例
えばクイックサーチ URL、@ref{Quick Searching} を参照) や非対話型で使う状
況では、この機能はおおいに役立つでしょう。

@node Weather Information
@section 明日の天気は晴れでしょう

@c W	Display weather report.
@c	If called with 'C-u', you can choose local area.

@node Using Antenna
@section アンテナを張り巡らそう
@cindex Antenna
@cindex Tracking changes in web pages
@cindex about://antenna/

アンテナはウェブページの変化を追跡するための道具です。アンテナを使うと、
特定のページが、以前に見たときから更新されたかされなかったかを、周期的に
チェックすることができます。

いずれかの emacs-w3m バッファで @kbd{A} を使うことによって、アンテナを始
めることができます。あるいは、特別の URL @uref{about://antenna/} に行く
ことによっても同じことができます。

@menu
* Setting up Antenna::          ウェブサイトをアンテナに加えるには?
* Daily web tracking::          アンテナで変化を追跡する
@end menu

@node Setting up Antenna
@subsection ウェブサイトをアンテナに加えるには?
@vindex w3m-antenna-sites

現に表示中のウェブページをアンテナに加えるには、単純に @kbd{+} キーを押
してください。すべてのフィールドがすでに書きこまれて
いる @code{w3m-antenna-sites} をカスタマイズするためのバッファが現れるで
しょう。あなたは単に ``Save for future sessions'' と ``Finish'' のボタン
を押せば良いのです。

@table @kbd
@item +
@kindex +
@findex w3m-antenna-add-current-url
URL をアンテナ・データベースに加えます。接頭引数付きで呼ばれた場合は、現
在のページを追加するのではなくて、加える URL を尋ねま
す (@code{w3m-antenna-add-current-url})。
@end table

@node Daily web tracking
@subsection アンテナで変化を追跡する
@cindex The Antenna interface

アンテナ・ページには二つの項目が現れます。一つは ``Updated'' と呼ばれ、
もう一つは ``Visited'' と呼ばれます。``Updated'' の項目では最後にアンテ
ナを更新した後で変化したウェブサイトが、そして ``Visited'' の項目では変
化しなかったウェブサイトが見つかります。それぞれの項目で、各行はアンテナ・
データベースの一つのウェブサイトを表し、以下の構造になっています:

@samp{  * 2002/12/15 16:43  (T)  My website}

最初の部分は、アンテナが最後にそのページの変化を報告した、そのウェブサイ
トが更新された最終時刻です。またはその情報が得られないこともあります。

@samp{(T)} は ``Time'' を表し、最後にアンテナを更新した後で、そのページ
の変更時刻が変化したので、変化が検出されたことを意味します。もう一つの可
能性がある値は @samp{S} (``Size'' のこと) で、そのページのサイズが変化し
たので、変化が検出されたことを意味します。

行の最後の部分は、データベースに追加したときに与えた、このウェブサイトの
タイトルです。

どうか、アンテナ・データベースは自動的に更新されないことに注意してくださ
い。アンテナ・ページで @kbd{R} を叩くか、または接頭引数をコマンドに渡
す (例えば @w{@kbd{C-u A}} でアンテナを始める) ことによって、サイトが変
化したかどうかをチェックしたい毎に、それを更新しなければなりません。

@vindex w3m-antenna-refresh-interval
もし、自動で更新させたいなら、変
数 @code{w3m-antenna-refresh-interval} に更新間隔を秒で設定してください。

@table @kbd
@item A
@kindex A
@findex w3m-antenna
アンテナのページに行きます。接頭引数付きで呼ばれた場合は、表示する前にア
ンテナ・データベースを更新します (@code{w3m-antenna})。
@end table

@node Showing Directory Tree
@section ディレクトリの木構造を表示する
@cindex Showing the tree structure of local directories

@code{w3m-dtree} コマンドを使うと、ローカルディレクトリのすべてのサブディ
レクトリの木構造を表示して、普通のウェブページのように閲覧することができ
ます。この機能を使ったときに現れる emacs-w3m のバッファは、その名前ゆえ
に外部の ``tree'' プログラムの出力に非常に類似したものになります。さら
に emacs-w3m からのボーナス: このコマンドを接頭引数付きで呼ぶとファイル
も表示し、emacs-w3m は完全装備のファイル閲覧器に変身します。

Emacs-w3m dtree がどんなふうに動作するかの例です:

@example
/home/romain/.elisp/emacs-w3m/
 |-CVS/
 |-attic/
 |  +-CVS/
 |-autom4te.cache/
 |-doc/
 |  |-CVS/
 |  +-emacs-w3m/
 |-icons/
 |  +-CVS/
 |-patches/
 |  +-CVS/
 +-shimbun/
    +-CVS/
@end example

接頭引数を付けると、代わりにこんなふうになります:

@example
/home/romain/.elisp/emacs-w3m/ (allfiles)
 |-(f).cvsignore
 |-(f)BUGS.ja
 |-(f)COPYING
 |-[d]CVS/
 |  |-(f)Entries
 |  |-(f)Repository
 |  +-(f)Root
 |-(f)ChangeLog
 |-(f)ChangeLog.1
 |-(f)Makefile
 |-(f)Makefile.in
 |-(f)README
 |-(f)README.ja
@end example

@table @asis
@item @kbd{D} (Lynx-like キーマップ)
@itemx @kbd{T} (Info-like キーマップ)
@kindex D (Lynx-like キーマップ)
@kindex T (Info-like キーマップ)
@findex w3m-dtree
ミニバッファでローカルディレクトリの入力を求め、その木構造を表示します。
接頭引数付きで呼ばれると (例: @w{@kbd{C-u D}}、ただ
し @samp{Info-like} キーマップの場合は @w{@kbd{C-u T}})、そのディレクト
リにあるファイルも表示します (@code{w3m-dtree})。
@end table

@node Viewing Perl Documents
@section Perl のドキュメントを見る


@node Using Namazu
@section Namazu でファイルを検索する

emacs-w3m は、全文検索ソフト Namazu を使ってファイルを検索することもでき
ます (@code{w3m-namazu})。この機能を使うためには、Namazu を以下の場所か
ら取得して、インストールしておく必要があります:

@uref{http://namazu.org/}

Namazu を使うためには、実際に検索を行う前に、検索対象となるファイルに含
まれている単語の索引 (インデックス) を作成しておく必要があります。もっと
も典型的なコマンドは以下の通りです。

@example
% mknmz -O <インデックスを置くディレクトリ> <ドキュメントのあるディレクトリ>
@end example

@code{w3m-namazu} を動かす前に、いくつかの変数を設定しておく必要がありま
す。以下の変数を、使っている環境にあわせて設定してください。

@table @code
@item w3m-namazu-index-alist
@vindex w3m-namazu-index-alist
インデックスの保存されているディレクトリの連想配列を設定します。
@code{w3m-namazu} では、インデックスの保存されているディレクトリに対して、
ディレクトリ名よりも分かりやすい別名を定義することができます。また、幾つ
かの別々のインデックスを、あたかも単一のインデックスであるかのように扱う
こともできます。
そのためには、次のように別名をキーとし、インデックスの保存されているディ
レクトリ (のリスト) を値とする連想配列
を @code{w3m-namazu-index-alist} に設定します。

@example
(setq w3m-namazu-index-alist
      '(("alias1" "Path/to/the/index/directory1")
        ("alias2" "Path/to/the/index/dir2"
                  "Path/to/the/index/dir3")))
@end example

@item w3m-namazu-default-index
@vindex w3m-namazu-default-index
検索対象とするインデックスを指定します。実際にインデックスが保存されてい
るディレクトリや、@code{w3m-namazu-index-alist} を設定するときに使った別
名が使えます。値が @code{nil} の場合は、
@w{@kbd{M-x w3m-namazu @key{RET}}} と実行するたびに、検索対象とするイン
デックスを問い合わせます。
@end table

これで準備が整いましたから、
@kbd{M-x w3m-namazu @key{RET} query @key{RET}} とすると、文字列 query を
検索することができます。デフォルト以外のインデックスを対象として検索を行
う場合は、@w{@kbd{C-u M-x w3m-namazu}} というように前置引数を指定して実
行します。

@node Octet
@section application/octet-stream データを見る
@findex octet-find-file

(作成中)

以下の設定を @file{~/.emacs} に書いておくと、@code{octet-find-file} でファ
イルを開いたときに便利かも知れません。

@lisp
(add-hook 'octet-find-file-hook 'view-mode)
(add-hook 'octet-find-file-hook 'w3m-minor-mode)
@end lisp

@node Frame Local Buffers
@section 多数のセッションをフレームでグループ分けする

多数の emacs-w3m のセッションをグループ毎に別々のフレームに分割すること
ができます。例えば二つの emacs-w3m のフレームを用意して、一つは検索エン
ジン群を扱い、もう一方ではニュースサイト群を扱うような使い方です。

@findex w3m-fb-mode
Emacs-w3m はたくさんのページを同時に見るためのいくつかの機能を提供します。
例えば、たくさんのページをそれぞれ新しいセッションとして立ち上げるために
タブを使ったり (@pxref{Using Tabs})、または @samp{group:} で始まる特別
な URL (@pxref{Grouping URLs}) を使うことができます。しかし、あまりにた
くさんのページがある場合は、それらを別々のフレームでグループ分けをしたい
と思うかもしれません。そうであれば、@code{w3m-fb-mode} コマンドはあなた
のためのものです。ただしそれを使うためには @code{w3m-use-tab} 変数を
非-@code{nil} (デフォルトで @code{t}) に、@code{w3m-pop-up-frames} 変数
を @code{nil} (それがデフォルト) に設定しておかなければなりませ
ん (@pxref{General Variables})。

@w{@kbd{M-x w3m-fb-mode}} をタイプするとモードがトグルに切り替わりますが、
接頭引数としてそのコマンドに正の整数を与えることによって、モードを on に
することができます (ゼロ以下では off になります)。

@code{w3m-fb-mode} が on になっていると、現在のフレームで開始したセッショ
ンはそのフレームだけに関連付けられます。そして他のフレームで開いた他のセッ
ションは、同様にそれらのフレームだけに現れます。言い換えると、あるフレー
ムに関連付けられたセッションは他のフレームには現れません。
@code{w3m-fb-mode} は新しいフレームを作らないので、それらは何らかの方法
であなた自身が作る必要があります。

@node Session Manager
@section セッションの保存と読みこみ

emacs-w3m ではセッション組を保存したり読みこんだりすることができます。

@kindex @kbd{M-S}
将来使うために、今開いているセッション組を保存できます。@kbd{M-S} を押し
て、そのセッション情報に名前をつけてください。

@kindex @kbd{M-s}
@findex w3m-session-select
そうすると次は、保存したセッション組を復帰したくなると思います。
@kbd{M-s} を押すとセッション選択メニューが開きます。このメニューのキーバ
インドは以下のようになっています。

@table @asis
@item @kbd{@key{RET}}
@findex w3m-session-select-select
選択されているセッション組に含まれるすべてのセッションを開きます。

@item @kbd{M-s}
@findex w3m-session-select-open-session-group
選択されているセッション組の詳細なメニューを開きます。これを使ってセッショ
ン組の中のセッションを一つずつ開くことができます。

@item @kbd{d}
@findex w3m-session-select-delete
選択されているセッション組、またはセッションを削除します。

@item @kbd{r}
@findex w3m-session-select-rename
選択されているセッション組の名前を変更します。

@item @kbd{s}
@findex w3m-session-select-save
現在開いているすべてのセッションを保存します。@kbd{M-S} と同じです。

@item @kbd{n}
@findex w3m-session-select-next
カーソルを次のセッション組に動かします。

@item @kbd{p}
@findex w3m-session-select-previous
カーソルを前のセッション組に動かします。

@item @kbd{q}
@findex w3m-session-select-quit
セッション選択メニューを終了します。
@end table

@vindex w3m-session-deleted-save
@vindex w3m-session-automatic-save
emacs-w3m はセッション組を自動的に保存することができます。
@code{w3m-session-deleted-save} が non-@code{nil} の時、emacs-w3m は閉じ
られたセッションを自動的に保存します。これは、うっかりセッションを閉じて
しまった時などに便利でしょう。
@code{w3m-session-automatic-save} が non-@code{nil} ならば、emacs-w3m 終
了時に開いていたすべてのセッションを自動的に保存します。

@vindex w3m-session-load-last-sessions
自動的に保存されているセッション組のことを忘れてしまって、なにかおもしろ
いページの URL を忘れてしまうということが時々あります。emacs-w3m はこう
いうことを防止することができます。
@code{w3m-session-load-last-sessions} が @code{auto} であれば、
emacs-w3m は自動的に前回開いていたセッションたちを復帰します。
@code{w3m-session-load-last-sessions} が @code{ask} であれば、
emacs-w3m はそれを復帰するかどうかをたずねます。(デフォルト
は @code{nil} になっています。)

@vindex w3m-session-crash-recovery
@vindex w3m-session-load-crashed-sessions
クラッシュで苦い経験をしたことがあると思います。 クラッシュにあうとがっか
りしますし、見ていたページがどこかも忘れてしまいます。 emacs-w3m はこんな
状況でも助けてくれます。 @code{w3m-session-crash-recovery} が
non-@code{nil} ならば、 emacs-w3m は表示しているセッション組をクラッシュ
復元用に自動的に保存し、クラッシュが起こった時に保存していたセッション組
を復元します。 (デフォルトは @code{t} になっています。)
@code{w3m-session-load-crashed-sessions} がnon-@code{nil} であれば、
emacs-w3m はこの復元を自動的に行ないます。
@code{w3m-session-load-crashed-sessions} が @code{ask} であれば、
emacs-w3m は復元するかどうかをたずねます。 (デフォルトは @code{ask} になっ
ています。)

@node Customizable Variables
@chapter デフォルトのままでも結構良いと思うけれど
@cindex Customizing user options
@vindex w3m-init-file

たくさんの emacs-w3m の変数が、Custom の仕掛けによってカスタマイズするこ
とができます。Custom は変数を定義するための、Emacs のグラフィック・イン
ターフェースです。Custom にはいくつかのカスタマイズのための手段があり、
例えば単一のオプション (すなわち、Emacs Lisp 変数) のため
の @w{@kbd{M-x customize-option}}、またはある ``group'' (この場合のグルー
プは @code{w3m}) に属するすべてのオプション (変数とフェース) を見て、か
つ変更するための @w{@kbd{M-x customize-group}} が使えます。

あるいは (もし Custom を使いたくないのであれば)、任意の Emacs Lisp 式
を emacs-w3m 初期設定ファイルに書き込むことができます。デフォルトのファ
イルは @file{~/.emacs-w3m} です。例えば、

@lisp
(setq w3m-home-page "http://emacs-w3m.namazu.org/")
@end lisp

これはデフォルトのホームページを @uref{http://emacs-w3m.namazu.org/} に
設定します。シンタックスは @file{.emacs} ファイルと同じで
す (@pxref{Init File, ,Init File, emacs, The Emacs Manual})。

気を付けなければいけないのは、外部モジュールで定義されているいくつかの変
数が @file{~/.emacs-w3m} ファイルが読み込まれるときには未定義で、それら
を変更できないかもしれないことです (もちろん、デフォルトの値を気にしない
のであれば、@file{~/.emacs-w3m} ファイルで完璧に上書きしてしまうことは可
能なのですけれどね)。変数 @code{w3m-search-engine-alist} は典型的な例で
す (@pxref{Search Variables})。

@table @code
@item w3m-init-file
Emacs-w3m が起動すると、@code{w3m-init-file} ファイルを読み込みます。デ
フォルト値は @file{~/.emacs-w3m} です。たぶん、あなたはこれを変更する必
要は無いでしょう。これは普通の Emacs Lisp ファイルで、
@file{~/.emacs} や @file{site-init} ファイルを emacs-w3m 関係のもので乱
雑にしないようにするために使うことができます。Emacs-w3m はこれと同じ名前
に、拡張子 @file{.elc} と @file{.el} が付いているものも (言い換えれば、
@file{~/.emacs-w3m.elc}、@file{~/.emacs-w3m.el} およ
び @file{~/.emacs-w3m} の順に) 調べます。
@end table

@menu
* General Variables::           一般的な変数
* Image Variables::             画像に関連した変数
* Form Variables::              フォームに関連した変数
* Cookie Variables::            クッキーに関連した変数
* Bookmark Variables::          ブックマークに関連した変数
* Search Variables::            ウェブ検索に関連した変数
* Weather Variables::           天気予報に関連した変数
* Dtree Variables::             dtree に関連した変数
* Antenna Variables::           アンテナに関連した変数
* Perldoc Variables::           Perldoc に関連した変数
* Namazu Variables::            Namazu に関連した変数
* Octet Variables::             Octet に関連した変数
* Session Manager Variables::   セッションマネージャに関連した変数
* Hooks::                       フック
* Other Variables::             その他の変数
@end menu

@node General Variables
@section 一般的な変数
@cindex 一般的な変数

@table @code
@item w3m-accept-languages
@vindex w3m-accept-languages
受け入れ可能な言語を優先度により降順に並べたもリスト。デフォルト値
は @samp{w3m} の設定ファイル (通常
は @file{~/.w3m/config}) の @samp{accept_language} のエントリによって設
定される。

@item w3m-add-referer
@vindex w3m-add-referer

リファラの送りかた。5つの選択子がある。

@enumerate
@item
@code{nil}: 決してリファラを送らない。

@item
@code{t}: 常にリファラを送る。

@item
@code{lambda}: 移動元のページと移動先のページの両方が同じサーバにより提
供されている時のみリファラを送る。

@item
二つの正規表現のコンス・セル: 移動元のページの URL が 1つめの正規表現に
マッチし、かつ、2つめの正規表現にマッチしない場合のみリファラを送る。
@code{nil} が指定されるとすべての URL にマッチする。

@item
関数: URL とリファラの 2つを引数にとる関数が non-@code{nil} を返せばリファ
ラを送る。
@end enumerate

ブラウジング履歴が洩れるのを心配するのなら、`nil' か `lambda' に設定して
ください。あなたのコンピュータが秘密のネットワークに属しているのなら、以
下のように 2つの正規表現を設定して、個人情報が洩れるのを防ぐといいでしょ
う:

@lisp
(setq w3m-add-referer
      '("\\`http:\"
        . "\\`http://\\([^./]+\\.\\)*example\\.net/"))
@end lisp

@item w3m-add-user-agent
@vindex w3m-add-user-agent
non-@code{nil} ならば、リクエストヘッダに User-Agent を含めます。
@code{w3m-user-agent} の値が User-Agent として使われます。

@item w3m-arrived-file
@vindex w3m-arrived-file
閲覧した @acronym{URL} のデータベースを保存するファイル名。

@item w3m-auto-show
@vindex w3m-auto-show
non-@code{nil} ならばウィンドウの水平スクロールを有効にする。point がウィ
ンドウの両端の外に出た場合に自動的に水平スクロールするが、
@code{truncate-lines} が @code{nil} ならば何も起こらない。

この機能は特定の emacs-w3m のコードのみで使われる。すなわち、通
常 @code{auto-hscroll-mode}、@code{automatic-hscrolling}、
@code{auto-show-mode} および @code{hscroll-mode} はすべて emacs-w3m のバッ
ファでは無効になるだろう。

@item w3m-charset-coding-system-alist
@vindex w3m-charset-coding-system-alist
@acronym{MIME} charset とコーディングシステムの連想配列。charset とコー
ディングシステムの両方がシンボルでなければならない。

@item w3m-coding-system
@vindex w3m-coding-system
@samp{w3m} コマンドと通信するために使うコーディングシステムのデフォルト
値。

@item w3m-coding-system-priority-list
@vindex w3m-coding-system-priority-list
emacs-w3m で使われるコーディングシステムを優先度により並べたリスト。

@item w3m-command
@vindex w3m-command
@samp{w3m} コマンドの実行ファイル名。この値が nil ならば最初
に emacs-w3m が存在する @samp{w3m}、@samp{w3mmee} また
は @samp{w3m-m17n} を (この順番に) @code{exec-path} ディレクトリから探索
してくれるので、通常はこの値を設定する必要はない。

他の @samp{w3m} コマンドを使いたければ、.emacs でこの値を明示的に設定す
るか、カスタマイズして保存してください。この場合、Emacs と emacs-w3m を
再起動しなければいけません。今のところ、@file{w3m.elc} を読みこんだ後
に @samp{w3m} コマンドの変更を安全にすべての emacs-w3m プログラムに行な
うことはできないからです。

@item w3m-command-arguments
@c @vindex w3m-command-arguments
@samp{w3m} コマンドの引数のデフォルト値。
@code{w3m-command-arguments-alist} も参照するとよい。

@item w3m-command-arguments-alist
@vindex w3m-command-arguments-alist
URL にマッチする正規表現と @samp{w3m} に追加で渡される引数との連想配列。
この変数は特定のホストへの接続にプロキシを用いるなどのことに使われます。
最初にマッチした要素が適用されます。以下にどのようにこの変数を設定するか
の例を示します。

@lisp
(setq w3m-command-arguments-alist
      '(;; Don't use the proxy server to visit local web pages.
        ("^http://\\([^/]*\\.\\)*your-company\\.com\\(/\\|$\\)"
         "-no-proxy")
        ;; Use the proxy server to visit any foreign urls.
        (""
         "-o" "http_proxy=http://proxy.your-company.com:8080/")))
@end lisp

@noindent
この 1つめの要素は、スキームが @samp{http} であり、ホスト名
が @samp{your-company.com} であるか、@samp{.your-company.com} で終わる
すべての URL にマッチします。これらのホストに接続するのにプロキシは用いら
れません。あなたが正規表現の初心者であるのなら、
@code{w3m-no-proxy-domains} を代わりに使ってください。

@item w3m-command-environment
@vindex w3m-command-environment
サブプロセスが継承する環境変数の連想配列。

@item w3m-confirm-leaving-secure-page
@vindex w3m-confirm-leaving-secure-page
non-@code{nil} ならば、セキュアなページを去る時に emacs-w3m は確認を求め
ます。この変数には non-nil の値を @emph{強く} おすすめします。このオプショ
ンを切る前に @emph{必ず} どういうことをしたいのかを完全に理解してくださ
い。デフォルトでは、@code{t} になっています。

@item w3m-content-type-alist
@vindex w3m-content-type-alist
コンテントタイプと正規表現と表示するためのコマンドとフィルタとの連想配列。
それぞれの要素は、以下のデータが構成するリストである。

@enumerate
@item
コンテントタイプ。

@item
URL またはファイル名にマッチする正規表現。

@item
ファイルを閲覧するための方法。以下の三つの種類が使われるでしょう。

@enumerate a
@item
閲覧する URL を引数にとる lisp の関数。
@item
("@var{command}" [@var{arg}@dots{}]) -- "@var{command}" は外部コマンドで
あり、@var{arg} は (あるならば) コマンドに渡す引数である。
@code{file} と @code{url} のシンボルを @var{arg} として指定すると、それ
ぞれ閲覧するファイルの内容を含んだテンポラリファイルのファイル名と、閲覧
する URL とに置換えられる。
@item
@code{nil} ならば、URL をローカルのファイルにダウンロードします。
@end enumerate

@item
@code{1. コンテントタイプ} で指定されたものを上書きするコンテントタイプ。
以下の値も有効です。

@enumerate a
@item
@var{url} と @var{content-type} と @var{charset} の 3つの引数をとり、コ
ンテントタイプを返す Lisp 関数。
@item
コンテントタイプを示す文字列。
@item
@code{nil} ならば、コンテントタイプを上書きしない。
@end enumerate
@end enumerate

@item w3m-correct-charset-alist
@vindex w3m-correct-charset-alist
特殊な @acronym{MIME} 文字セットと標準の @acronym{MIME} 文字セットとの連
想配列。

@item w3m-db-history-display-size
@vindex w3m-db-history-display-size
about://arived-db/ で一度に表示する @acronym{URL} の最大数。

@item w3m-decoder-alist
@vindex w3m-decoder-alist
エンコードの種類とデコーダと引数との連想配列。

@item w3m-default-coding-system
@c @vindex w3m-default-coding-system
URL 文字列と POST されるデータとをエンコードするのにデフォルトで使われる
コーディングシステム。

@item w3m-default-content-type
@vindex w3m-default-content-type
ローカルのファイルを参照する時にデフォルトで使われるコンテントタイプ。

@item w3m-default-directory
@vindex w3m-default-directory
emacs-w3m のバッファにおいて、現在のディレクトリとして使われるディレクト
リ。存在するディレクトリを示す文字列、その値が存在するディレクトリを示す
シンボル、url を引数にとりディレクトリを返す関数、もしく
は @code{nil} (デフォルト値)が有効な値となります。指定されたディレクトリ
が存在しない場合や、@code{nil} が指定された場合
は @code{w3m-profile-directory} の値が使われます。

例外: ローカルのファイルや、リモートのファイルを ftp でアクセスしている
場合はそのファイルのディレクトリが現在のディレクトリとして使われます。

@item w3m-default-save-directory
@vindex w3m-default-save-directory
ダウンロードしたファイルがデフォルトで保存されるディレクトリ。

@item w3m-delete-duplicated-empty-lines
@vindex w3m-delete-duplicated-empty-lines
non-@code{nil} ならば二行以上の連続した空白行を一行にまとめる。

@item w3m-dirlist-cgi-program
@vindex w3m-dirlist-cgi-program
ローカルのディレクトリ列挙するのに使われる @acronym{CGI} プログラムの名
前。@code{nil} ならば、@samp{w3m} コマンドの dirlist.cgi のモジュールが
使われる。

@item w3m-doc-view-content-types
@vindex w3m-doc-view-content-types
ファイルを閲覧するのに @code{doc-view-mode} を使うコンテントタイプのリス
ト。この変数は @code{w3m-content-type-alist} の値を上書きする。

@item w3m-edit-function
@vindex w3m-edit-function
ローカルのファイルを編集するための関数。@code{w3m-edit-current-url} また
は @code{w3m-edit-this-url} のコマンドが呼ばれた時に使われます。

@item w3m-edit-function-alist
@vindex w3m-edit-function-alist
ページを編集するために使う関数の連想配列。このオプションは、
@code{w3m-edit-current-url} や @code{w3m-edit-this-url} のコマンドが呼ば
れた時にどの関数でそのページを編集するかを決めるのに使われます。この連想
配列から適当な関数が見つからなければ、@code{w3m-edit-function} が使われ
ます。

@item w3m-enable-google-feeling-lucky
@vindex w3m-enable-google-feeling-lucky
non-@code{nil} ならば、url としてどんな単語も入力することができるように
なります。その場合、emacs-w3m は Google を使ってその言葉を検索します。デ
フォルトでは @code{t} です。

@item w3m-encoding-type-alist
@vindex w3m-encoding-type-alist
ファイルの拡張子とファイルのエンコードの種類との連想配列。

@item w3m-file-coding-system
@vindex w3m-file-coding-system
設定ファイルを書くために使われるコーディングシステム。この変数
は @code{w3m-save-list} 関数で使われます。

@item w3m-file-name-coding-system
@vindex w3m-file-name-coding-system
emacs-w3m がファイルにアクセスする時に、パス名を変換する先のコーディング
システム。

@item w3m-fill-column
@vindex w3m-fill-column
emacs-w3m のバッファで @code{fill-column} として使われる数字。正の値なら
ば、ページがその桁数で表示される。0 か負の値ならば、ウィンドウの幅からそ
の数字をがページの最大幅として使われる。XEmacs ではこの設定が常に働くわ
けではないということに注意してください。

@item w3m-follow-redirection
@vindex w3m-follow-redirection
emacs-w3m がリダイレクトを尊重しリダイレクト先を追いかける最大数。
@code{nil} ならば、@samp{w3m} コマンドがリダイレクトを処理します。クッキー
がリダイレクトされるページ間で共有されることがありうるので、クッキーを許
可するならば (つまり、@code{w3m-use-cookies} を non-@code{nil} にしてい
るならば)、この変数を @code{nil} にしないでください。

@item w3m-home-page
@c @vindex w3m-home-page
emacs-w3m が起動した時に開く URL の文字列を指定します。某会社の略称になっ
ちゃいますから HP とは言わないでくださいね。

@item w3m-horizontal-scroll-columns
@c @vindex w3m-horizontal-scroll-columns
ウィンドウを水平スクロールする時に、スクロールする文字数。

@item w3m-horizontal-scroll-division
@vindex w3m-horizontal-scroll-division
カーソル位置がきちんと表示されるようにするのに使われる数字。emacs-w3m の
バッファでアンカーやフォームを移動していてカーソルがウィンドウの外に出て
しまってもカーソルが見つからなくなることは決してありません。

この変数の値を N とします。カーソルがウィンドウの左に出てしまう
と emacs-w3m はウィンドウをスクロールし、カーソルがウィンドウの左からウィ
ンドウの幅の 1/N の所に置かれるようにします。同様にカーソルがウィンドウ
の右から出てしまうと、emacs-w3m はウィンドウをスクロールし、カーソルがウィ
ンドウの右からウィンドウの幅の 1/N の所に置かれるようにします。

@code{w3m-auto-show} が @code{nil} ならばこの機能は動きません。値
は 1 よりも大きい整数でなければいけません。

@item w3m-horizontal-shift-columns
@c @vindex w3m-horizontal-shift-columns
ウィンドウを shifting する時に、スクロールする文字数。@samp{shifting} と
いうのは、スムーズなスクロールを意味します。

@item w3m-imitate-widget-button
@vindex w3m-imitate-widget-button
non-@code{nil} ならば、リンク (アンカー) ボタンでウィジェットのボタンの
動作をします。これは @kbd{@key{TAB}} を使って Gnus の記事バッファの中を
移動するのに便利です。真偽値を返す Lisp 関数を設定することもできます。

@item w3m-init-file
@c @vindex w3m-init-file
Your emacs-w3m startup file name.  If a file with the @samp{.el} or
@samp{.elc} suffixes exists, it will be read instead.

Note: This file is used as the startup configuration @emph{NOT} for the
@samp{w3m} command but for emacs-w3m.  In order to modify configurations
for the @samp{w3m} command, edit the file named @file{~/.w3m/config}
normally.

@item w3m-input-coding-system
@vindex w3m-input-coding-system
Coding system used when writing to @samp{w3m} processes.  It overrides
@code{coding-system-for-write} if it is not @code{binary}.  Otherwise,
the value of the @code{w3m-current-coding-system} variable is used
instead.

@item w3m-keep-arrived-urls
@vindex w3m-keep-arrived-urls
Maximum number of @acronym{URL}s which the arrived @acronym{URL}s
database keeps.

@item w3m-keep-cache-size
@vindex w3m-keep-cache-size
Maximum number of pages to be cached in emacs-w3m.

@item w3m-key-binding
@c @vindex w3m-key-binding
Type of key binding set used in emacs-w3m sessions.  The valid values
include @code{info} which provides @samp{Info-like} keys, and @code{nil}
which provides @samp{Lynx-like} keys.

@item w3m-language
@vindex w3m-language
Your preferred language used in emacs-w3m sessions.

@item w3m-local-directory-view-method
@vindex w3m-local-directory-view-method
Symbol of the method to view a local directory tree.  The valid values
include @code{w3m-cgi} using the @acronym{CGI} program specified by the
@code{w3m-dirlist-cgi-program} variable (which see), and
@code{w3m-dtree} using the w3m-dtree Lisp module.

@item w3m-local-find-file-function
@vindex w3m-local-find-file-function
Function used to open local files.  If a url of the @code{file:} scheme
in which you entered agrees with the rule of the
@code{w3m-local-find-file-regexps} variable (which see), it is used to
open the file.

Function should take one argument, the string naming the local file.  It
can also be any Lisp form returning a function.  Set this to @code{nil}
if you want to always use emacs-w3m to see local files.

@item w3m-local-find-file-regexps
@vindex w3m-local-find-file-regexps
@code{Cons} of two regexps matching and not matching with local file
names.  If a url of the @code{file:} scheme in which you entered matches
the first form and does not match the latter form, it will be opened by
the function specified by the @code{w3m-local-find-file-function}
variable.  @code{Nil} for the regexp matches any file names.

For instance, the value @code{(nil . "\\.html?\\'")} allows
@file{file:///some/where/w3m.el}, not
@file{file:///any/where/index.html}, to open by the function specified
by @code{w3m-local-find-file-function}.  The latter will be opened as a
normal web page.  Furthermore, if you would like to view some types of
contents in the local system using the viewers specified by the
@code{w3m-content-type-alist} variable, you can add regexps matching
those file names to the second element of this variable.  For example:

@lisp
(setq w3m-local-find-file-regexps
      '(nil . "\\.\\(?:[sx]?html?\\|dvi\\|ps\\|pdf\\)\\'"))
@end lisp

It is effective only when the @code{w3m-local-find-file-function}
variable is set properly.

@item w3m-mailto-url-function
@vindex w3m-mailto-url-function
Function used to handle the @code{mailto} urls.  Function is called with
one argument, just a url.  If it is @code{nil}, a function specified by
the @code{mail-user-agent} variable will be used for composing mail
messages.

@item w3m-mailto-url-popup-function-alist
@vindex w3m-mailto-url-popup-function-alist
Alist of @code{(MAJOR-MODE . FUNCTION)} pairs used to pop a mail buffer
up.  If a user clicks on a @code{mailto} url and a mail buffer is
composed by @code{mail-user-agent} with the @code{MAJOR-MODE},
@code{FUNCTION} will be called with a mail buffer as an argument.  Note
that the variables @code{special-display-buffer-names},
@code{special-display-regexps}, @code{same-window-buffer-names} and
@code{same-window-regexps} will be bound to @code{nil} while popping to
a buffer up.

@item w3m-make-new-session
@vindex w3m-make-new-session
Non-@code{nil} means making new emacs-w3m buffers when visiting new
pages.  If it is non-@code{nil} and there are already emacs-w3m buffers,
the @code{w3m} command makes a new emacs-w3m buffer if a user specifies
a url string in the minibuffer, and the @code{w3m-safe-view-this-url}
command also makes a new buffer if a user invokes it in a buffer not
being running the @code{w3m-mode}.  The default value is @code{nil}.

@item w3m-mbconv-command
@vindex w3m-mbconv-command
Name of the @samp{mbconv} command provided by the @samp{libmoe} package.
The @samp{libmoe} package is used when you use the @samp{w3mmee} command
instead of the @samp{w3m} command.  See also @code{w3m-command}.

@item w3m-no-proxy-domains
@c @vindex w3m-no-proxy-domains
List of domain names for which emacs-w3m will not use a proxy server.
Each element should be exactly a domain name which means the latter
common part of the host names, not a regexp.

@item w3m-output-coding-system
@vindex w3m-output-coding-system
Coding system used when reading from @samp{w3m} processes.

@item w3m-pop-up-frames
@vindex w3m-pop-up-frames
Non-@code{nil} means pop to a new frame up for an emacs-w3m session.
This variable is similar to @code{pop-up-frames} and does override
@code{w3m-pop-up-windows}.  If @code{w3m-use-tab} is non-@code{nil} or
there is the buffers selection window (for the @code{w3m-select-buffer}
feature), this variable is ignored when creating the second or more
emacs-w3m session.

@item w3m-pop-up-windows
@vindex w3m-pop-up-windows
Non-@code{nil} means split the windows when a new emacs-w3m session is
created.  This variable is similar to @code{pop-up-windows} and quite
overridden by @code{w3m-pop-up-frames} as if @code{pop-up-frames}
influences.  Furthermore, if @code{w3m-use-tab} is non-@code{nil} or
there is the buffers selection window (for the @code{w3m-select-buffer}
feature), this variable is ignored when creating the second or more
emacs-w3m session.

@item w3m-popup-frame-parameters
@vindex w3m-popup-frame-parameters
Alist of frame parameters used when creating a new emacs-w3m frame.  It
allows not only the alist form but also XEmacs's plist form.

@item w3m-prefer-cache
@vindex w3m-prefer-cache
Non-@code{nil} means that cached contents are used without checking
headers.

@item w3m-profile-directory
@vindex w3m-profile-directory
Directory where emacs-w3m config files are loaded from or saved to.

@item w3m-quick-start
@c @vindex w3m-quick-start
Non-@code{nil} means let emacs-w3m start quickly w/o requiring
confirmation.  When you invoke the @code{w3m} command, it attempts to
visit the page of a string like url around the cursor or the value of
@code{w3m-home-page}.  You won't be asked for the confirmation then if
this value is non-@code{nil}.  Otherwise, you will be prompted for that
url with the editing form.

@item w3m-redirect-with-get
@vindex w3m-redirect-with-get
If non-@code{nil}, use the GET method after redirection.  It controls
how emacs-w3m works when a server responds the code 301 or 302.  Here is
an extract from RFC2616:

Note: RFC 1945 and RFC 2068 specify that the client is not allowed to
change the method on the redirected request.  However, most existing
user agent implementations treat 302 as if it were a 303 response,
performing a GET on the Location field-value regardless of the original
request method.

@item w3m-relationship-estimate-rules
@vindex w3m-relationship-estimate-rules
Rules to estimate relationships between a retrieved page and others.

@item w3m-select-buffer-horizontal-window
@vindex w3m-select-buffer-horizontal-window
Non-@code{nil} means split windows horizontally to open the selection
window.

@item w3m-select-buffer-window-ratio
@vindex w3m-select-buffer-window-ratio
The percentage of the selection window to the whole frame.  The car is
used when splitting windows horizontally and the cdr is for splitting
windows vertically.

@item w3m-use-title-buffer-name
@vindex w3m-use-title-buffer-name
Non-@code{nil} means use name of buffer included current title.

@item w3m-show-error-information
@vindex w3m-show-error-information
Non-@code{nil} means show an error information as a web page.  Page is
made when the foreign server doesn't respond to a request to retrieve
data.

@item w3m-space-before-favicon
@vindex w3m-space-before-favicon
String of space char(s) to be put in front of favicon in the mode-line.
It may be better to use two or more spaces if you are using oblique or
italic font in the modeline.

@item w3m-space-before-modeline-icon
@vindex w3m-space-before-modeline-icon
String of space character(s) to be put in front of the modeline icon.
It may be better to use one or more spaces if you are using oblique or
italic font in the modeline.

@item w3m-terminal-coding-system
@vindex w3m-terminal-coding-system
Default coding system used when writing to @samp{w3m} processes.  It is
just a default value to set process' coding system initially.  (This
variable name is analogically derived from the behavior of the
@samp{w3m} command which accepts data from Emacs just like reads from
the terminal.)

@item w3m-touch-command
@vindex w3m-touch-command
Name of the executable file of the touch command.  Note that the command
is required to be able to modify file's timestamp with the @samp{-t}
option.

@item w3m-track-mouse
@vindex w3m-track-mouse
Whether to track the mouse and message the url under the mouse.  See
also @code{show-help-function} if you are using GNU Emacs.

@noindent
A tip for XEmacs users:

You can also use the @code{balloon-help} feature by the
@w{@kbd{M-x balloon-help-mode}} command with arg 1.  If the window
manager decorates the balloon-help frame, and that is not to your taste,
you may strip it off with the following directives:

@example
For ol[v]wm use this in .Xdefaults:
   olvwm.NoDecor: balloon-help
     or
   olwm.MinimalDecor: balloon-help

For fvwm version 1 use this in your .fvwmrc:
   NoTitle balloon-help
or
   Style "balloon-help" NoTitle, NoHandles, BorderWidth 0

For twm use this in your .twmrc:
   NoTitle @{ "balloon-help" @}
@end example

See the @file{balloon-help.el} file for more information.

@item w3m-uri-replace-alist
@c @vindex w3m-uri-replace-alist
Alist of regexps matching @acronym{URI}s, and some types of
replacements.  It can be used universally to replace @acronym{URI}
strings in the local rule to the valid forms in the Internet.

Each element looks like the @code{(REGEXP FUNCTION OPTIONS...)} form.
@code{FUNCTION} takes one or more arguments, a uri and @code{OPTIONS}.
You can use the grouping constructs @samp{\\(...\\)} in @code{REGEXP},
and they can be referred by the @samp{\N} forms in a replacement (which
is one of @code{OPTIONS}).

Here are some predefined functions which can be used for those ways:

@table @code
@item w3m-pattern-uri-replace
@findex w3m-pattern-uri-replace
Replace a @acronym{URI} using PATTERN (which is just an @code{OPTION}).
It is allowed that PATTERN contains the @samp{\N} forms in the same
manner of @code{replace-match}.

@item w3m-search-uri-replace
@findex w3m-search-uri-replace
Generate valid URLs to query words on some specified search engines.
For example, the element

@lisp
("\\`gg:" w3m-search-uri-replace "google")
@end lisp

@noindent
makes it possible to replace the @acronym{URI} @samp{gg:emacs} to a
query for the word @samp{emacs} on the Google search engine.
@end table

@item w3m-url-local-directory-alist
@vindex w3m-url-local-directory-alist
Alist of @acronym{URL}s and local directories.  If directory names of a
given @acronym{URL} and the car of an element are the same, emacs-w3m
assumes that the file exists in the local directory where the cdr of an
element points to.  The default value will be set to a value of the
@code{yahtml-path-url-alist} variable which exchanged the car and the
cdr in each element if it is available.

@item w3m-use-ange-ftp
@vindex w3m-use-ange-ftp
Non-@code{nil} means that @code{ange-ftp} or @code{efs} is used to
access FTP servers.

@item w3m-use-cygdrive
@vindex w3m-use-cygdrive
If non-@code{nil}, use the @samp{/cygdrive/} rule when performing
@code{expand-file-name}.

@item w3m-use-filter
@vindex w3m-use-filter
Non-@code{nil} means use filter programs to convert web contents.  See
also @code{w3m-filter-rules} (the @file{w3m-filter.elc} module provides
it but might have never been loaded.  In that case, to see the default
value and the documentation of @code{w3m-filter-rules}, type
@w{@kbd{M-x load-library @key{RET} w3m-filter @key{RET}}}).

@item w3m-use-form
@vindex w3m-use-form
Non-@code{nil} means make it possible to use form
extensions. @emph{(EXPERIMENTAL)}

@item w3m-submit-form-safety-check
@vindex w3m-submit-form-safety-check
Non-@code{nil} means ask you for confirmation when submitting a form.
The default value is @code{nil}.

@item w3m-use-header-line
@vindex w3m-use-header-line
Non-@code{nil} means display the header line.

@item w3m-use-header-line-title
@vindex w3m-use-header-line-title
Non-@code{nil} means display the current title at the header line. This
variable is effective only when @code{w3m-use-tab} is @code{nil}.

@item w3m-use-mule-ucs
@vindex w3m-use-mule-ucs
Non-@code{nil} means use the multi-script support with Mule-UCS.

@item w3m-use-refresh
@vindex w3m-use-refresh
Non-@code{nil} means honor the REFRESH attribute in META tags.
Emacs-w3m arbitrarily takes you to a url specified by that attribute.
Note that they may be malicious traps.

@item w3m-refresh-minimum-interval
@vindex w3m-refresh-minimum-interval
history-back, history-next でページを見た時に最低限 refresh を待つ秒数。

@item w3m-use-symbol
@vindex w3m-use-symbol
Non-@code{nil} means replace symbols that the @samp{<_SYMBOL>} tags lead
into.  It is meaningful only when the @samp{w3m-m17n} command is used
and (X)Emacs handles unicode charsets.

@item w3m-menu-on-forefront
@vindex w3m-menu-on-forefront
Non-@code{nil} means place the emacs-w3m menus on the forefront of the
menu bar.  The default value is @code{nil}.

@item w3m-use-tab
@c @vindex w3m-use-tab
Non-@code{nil} means make emacs-w3m a tab browser.  It makes it possible
to show all emacs-w3m buffers in a single window with the tabs line, and
you can choose one by clicking a mouse on it.  See also
@code{w3m-use-tab-menubar}.

@item w3m-use-tab-menubar
@vindex w3m-use-tab-menubar
Non-@code{nil} means use the TAB pull-down menu in the menubar.  It
makes it possible to show all emacs-w3m buffers in a single window, and
you can choose one by clicking a mouse on it.  This feature requires
that Emacs has been built to be able to display multilingual text in the
menubar if you often visit web sites written in non-ascii text.  See
also @code{w3m-use-tab}.

@item w3m-use-toolbar
@vindex w3m-use-toolbar
Non-@code{nil} activates toolbar of @samp{w3m}.

@item w3m-user-agent
@vindex w3m-user-agent
String used for the User-Agent field.  See also
@code{w3m-add-user-agent}.

@item w3m-new-session-in-background
@vindex w3m-new-session-in-background
Say whether not to focus on a new tab or a new session in target.
It influences only when a new emacs-w3m buffer is created.

@item w3m-do-cleanup-temp-files
@vindex w3m-do-cleanup-temp-files
非@code{nil} ならば、 emacs-w3m は自動的に削除しそこなった一時ファイルを
削除します。 デフォルトは @code{nil} です。
@end table

@node Image Variables
@section 画像に関連した変数
@cindex 画像に関連した変数

@table @code
@item w3m-default-display-inline-images
@vindex w3m-default-display-inline-images
非@code{nil} ならば、インライン画像を emacs-w3m のバッファに表示します。
画像表示の ON/OFF は @code{w3m-toggle-inline-images} で切り替えられます。
@code{w3m-toggle-inline-images-permanently} も参照してください。

@item w3m-favicon-cache-expire-wait
@vindex w3m-favicon-cache-expire-wait
取得からこの変数で指定された秒数以上経過したキャッシュは削除されます。こ
の変数が @code{nil} ならば、削除されることはありません。

@item w3m-favicon-cache-file
@vindex w3m-favicon-cache-file
favicon のキャッシュを保存するファイル名。デフォルトは、変
数 @code{w3m-profile-directory} で指定されたディレクトリ下
の @file{.favicon} という名前のファイルです。

@item w3m-favicon-size
@vindex w3m-favicon-size
favicon のサイズ。この値は、@code{convert} への geometry 引数として使わ
れます。

@item w3m-favicon-type
@vindex w3m-favicon-type
favicon を表示するのに使われる画像の種類。

@item w3m-favicon-use-cache-file
@vindex w3m-favicon-use-cache-file
非@code{nil} ならば、favicon のキャッシュファイルを使います。

@item w3m-favicon-default-background
@vindex w3m-favicon-default-background
favicon 画像の透過色として使われる色の名前。@code{nil} であれば、
Emacs のフレームの背景色を使う。空文字は特別で、ヘッダラインかモードライ
ンかの favicon が表示されているほうの背景色に置換えられる。この変数は、
Emacs 22 以上でしか効力を持たないことに注意。

@item w3m-icon-directory
@vindex w3m-icon-directory
emacs-w3m がアイコンを探すディレクトリ。

@item w3m-imagick-convert-program
@vindex w3m-imagick-convert-program
ImageMagick の @samp{convert} のプログラム名。

@item w3m-treat-image-size
@vindex w3m-treat-image-size
非@code{nil} ならば、@samp{w3m} が画像とテキストの比率を考慮します。デフォ
ルトは @code{t} です。

非-@code{nil} ならば、@samp{w3m} 画像が置かれる場所を確保し
た @samp{halfdump} を生成し、@samp{alt} テキストは画像の表示幅に等しくな
るように切り詰められる、あるいはスぺースを詰められます。

@code{w3m-pixels-per-character} と @code{w3m-pixels-per-line} も参照して
ください。これらの値が画像が占める桁と行とを計算するために @samp{w3m} コ
マンドに渡されます。

@item w3m-pixels-per-character
@vindex w3m-pixels-per-character
Integer used for the @code{-ppc} argument of the @samp{w3m} command.  If
@code{nil}, the width of the default face is used.  It is valid only
when @code{w3m-treat-image-size} is non-@code{nil}.  The default value
is @code{nil}.  If you want to use emacs-w3m in a character terminal and
make @code{w3m-treat-image-size} effective, you need to set this
variable properly.

@item w3m-pixels-per-line
@vindex w3m-pixels-per-line
Integer used for the @samp{-ppl} argument of the @samp{w3m} command.  If
@code{nil}, the height of the default face is used.  It is valid only
when @code{w3m-treat-image-size} is non-@code{nil}.  Note that a small
value may not induce a good result.  The default value is @samp{64}.  If
you want to use emacs-w3m in a character terminal and make
@code{w3m-treat-image-size} effective, you need to set this variable
properly.

@item w3m-resize-image-scale
@vindex w3m-resize-image-scale
Number of steps in percent used when resizing images.

@item w3m-resize-images
@vindex w3m-resize-images
If non-@code{nil}, resize images to the specified width and height.

@item w3m-show-graphic-icons-in-header-line
@vindex w3m-show-graphic-icons-in-header-line
Non-@code{nil} means show graphic status indicators in the header-line.
If it is @code{nil}, also the favicon won't be shown in the header-line
even if @code{w3m-use-favicon} is non-@code{nil}.  This variable is
currently meaningless under XEmacs.

@item w3m-show-graphic-icons-in-mode-line
@vindex w3m-show-graphic-icons-in-mode-line
Non-@code{nil} means show graphic status indicators in the mode-line.
If it is @code{nil}, also the favicon won't be shown in the mode-line
even if @code{w3m-use-favicon} is non-@code{nil}.

@item w3m-toggle-inline-images-permanently
@vindex w3m-toggle-inline-images-permanently
Non-@code{nil} means let the visibility of images continue permanently.
The visibility of images is initialized according to
@code{w3m-default-display-inline-images} at the first time, and except
that it may be toggled by the @code{w3m-toggle-inline-images} command,
it does not change hereafter, if it is non-@code{nil}.  Otherwise,
whether images are visible is initialized according to
@code{w3m-default-display-inline-images} whenever you visit a new page
or reload the current page in an emacs-w3m buffer.

@item w3m-use-favicon
@vindex w3m-use-favicon
Non-@code{nil} means show favicon images if they are available.  It will
be set to @code{nil} automatically if ImageMagick's @code{convert}
program does not support the ico format.

@item w3m-image-default-background
@vindex w3m-image-default-background
画像の透過色として使われる色の名前。@code{nil} ならば、Emacs のフレーム
の背景色が使われる。空文字 ("") は特別に、バッファの背景色に置き換えられ
る。この変数は Emacs 22 以降でのみ有効である。
@end table

@node Form Variables
@section フォームに関連した変数
@cindex フォームに関連した変数

@table @code
@item w3m-form-input-map-buffer-lines
@vindex w3m-form-input-map-buffer-lines
Buffer lines for form select map buffer.

@item w3m-form-input-select-buffer-lines
@vindex w3m-form-input-select-buffer-lines
Buffer lines for form select buffer.

@item w3m-form-input-textarea-buffer-lines
@vindex w3m-form-input-textarea-buffer-lines
Buffer lines for form textarea buffer.

@item w3m-form-mouse-face
@vindex w3m-form-mouse-face
Mouse face to highlight selected value.

@item w3m-form-treat-textarea-size
@vindex w3m-form-treat-textarea-size
Non-@code{nil} means to process textarea size (treat textarea rows).

@item w3m-form-use-fancy-faces
@vindex w3m-form-use-fancy-faces
Use fancy faces to fontify @samp{<form>} tags.

@item w3m-form-use-textarea-backup
@vindex w3m-form-use-textarea-backup
@vindex w3m-form-textarea-directory
Non-@code{nil} means save and restore backup text saved when you last
edited this textarea.  Files to save text are stored in the directory
specified by the @code{w3m-form-textarea-directory} variable.
@end table

@node Cookie Variables
@section クッキーに関連した変数
@cindex クッキーに関連した変数

@table @code
@item w3m-cookie-accept-bad-cookies
@vindex w3m-cookie-accept-bad-cookies
If @code{nil}, don't accept bad cookies.  If @code{t}, accept bad
cookies.  If ask, ask user whether accept bad cookies or not.

@item w3m-cookie-accept-domains
@vindex w3m-cookie-accept-domains
A list of trusted domain name string.

@item w3m-cookie-file
@vindex w3m-cookie-file
File in which cookies are kept.

@item w3m-cookie-reject-domains
@vindex w3m-cookie-reject-domains
A list of untrusted domain name string.

@item w3m-use-cookies
@vindex w3m-use-cookies
Non-@code{nil} means enable emacs-w3m to use cookies.
@emph{(EXPERIMENTAL)}
@end table

@node Bookmark Variables
@section ブックマークに関連した変数
@cindex ブックマークに関連した変数

@table @code
@item w3m-bookmark-file
@vindex w3m-bookmark-file
Bookmark file of w3m.

@item w3m-bookmark-file-coding-system
@vindex w3m-bookmark-file-coding-system
Coding system for a created bookmark file.
This option is used when a new bookmark file is created, or when an
existing bookmark file includes ASCII characters only.  If the coding
system which is used to encode your using bookmark file is different
from the value of this option, emacs-w3m does not change the encoding
of your bookmark file.

@item w3m-bookmark-default-section
@vindex w3m-bookmark-default-section
Default section to add new entry.

@item w3m-bookmark-menu-open-new-session
@vindex w3m-bookmark-menu-open-new-session
If non-@code{nil}, ``Bookmark'' menu item open new session.
@end table

@node Search Variables
@section ウェブ検索に関連した変数
@cindex Variables related to searching the web

@table @code
@item w3m-search-default-engine
Name of the default search engine.  The default is @samp{google}.

@item w3m-search-engine-alist
An alist of search engines.  Each element looks like @code{(@var{engine}
@var{action} @var{coding} @var{post-data})}.  @var{engine} is a string,
the name of the search engine.  @var{action} is a string, the URL that
performs a search.  @var{action} must contain a @code{"%s"}, which is
substituted by a query string.  @var{coding} is optional value which is
coding system for query string.  @var{post-data} is optional value which
is a string for POST method search engine.  If @var{coding} is omitted,
it defaults to @code{w3m-default-coding-system}.

@item w3m-search-word-at-point
@vindex w3m-search-word-at-point
Non-@code{nil} means that the word at point is used as an initial
string.  If @code{transient-mark-mode}, this option is ignored and the
region is used as an initial string.  The default is @code{t}.

@item w3m-search-thing-at-point-arg
@vindex w3m-search-thing-at-point-arg
`w3m-search-read-query' で使われる `thing-at-point' への引数。デフォルト
は @code{word}.
@end table

@node Weather Variables
@section 天気予報に関連した変数
@cindex Variables related to weather information

@table @code
@item w3m-weather-default-area
@vindex w3m-weather-default-area
Default region to check weather.  The default is the southern part of
Kyoto city.

@item w3m-weather-filter-functions
@vindex w3m-weather-filter-functions
Filter functions to remove useless tags.  The default value is a list
that contains the following function symbols in this order:

@code{w3m-weather-extract-contents} @code{w3m-weather-adjust-contents}
@code{w3m-weather-expand-anchors} @code{w3m-weather-insert-title}
@end table

@node Dtree Variables
@section dtree に関連した変数
@cindex Variables related to the dtree feature

@table @code
@item w3m-dtree-default-allfiles
@vindex w3m-dtree-default-allfiles
If non-@code{nil}, invert the meaning of the prefix argument given to
the @code{w3m-dtree} command, i.e., the command shows not only
directories but also files even if you don't give a prefix argument.
The default is @code{nil}.

@item w3m-dtree-directory-depth
@vindex w3m-dtree-directory-depth
Integer that controls how deep @code{w3m-dtree} shows subdirectories.
If it is @code{nil}, files in all subdirectories are shown.  The default
is @code{8}.

@item w3m-dtree-indent-strings
@vindex w3m-dtree-indent-strings
Vector containing strings used for the indentation.  The default is
@code{["|-" "+-" "|  " "   "]}.

@item w3m-dtree-stop-strings
@vindex w3m-dtree-stop-strings
Vector containing strings used to indent directories under which there
are subdirectories hidden because of @code{w3m-dtree-directory-depth}.
The default is @code{["|=" "+="]}.
@end table

@node Antenna Variables
@section アンテナに関連した変数
@cindex Variables related to antenna

@table @code
@item w3m-antenna-file
@vindex w3m-antenna-file
Name of the file containing antenna URLs.  The default value is
@file{~/.w3m/.antenna}, where @samp{~/.w3m} is the default value of
@code{w3m-profile-directory} (@pxref{General Variables}).

@item w3m-antenna-html-skelton
@vindex w3m-antenna-html-skelton
Skeleton used for making the html contents of antenna pages.

@item w3m-antenna-make-summary-function
@vindex w3m-antenna-refresh-interval
Function used to make the summary of the site information.  The default
is @code{w3m-antenna-make-summary-like-natsumican}.  The other
ready-made function is @code{w3m-antenna-make-summary}.

@item w3m-antenna-sites
List of web sites that @code{w3m-antenna} watches.  The default is
@code{nil}.

@item w3m-antenna-sort-changed-sites-function
@vindex w3m-antenna-sort-changed-sites-function
Function used to sort a list of sites having been changed.  The default
is @code{w3m-antenna-sort-sites-by-time}.  The other ready-made function
is @code{w3m-antenna-sort-sites-by-title}.

@item w3m-antenna-sort-unchanged-sites-function
@vindex w3m-antenna-sort-unchanged-sites-function
Function used to sort a list of sites having not been changed.  The
default is @code{w3m-antenna-sort-sites-by-time}.  The other ready-made
function is @code{w3m-antenna-sort-sites-by-title}.
@end table

@node Perldoc Variables
@section Perldoc に関連した変数
@cindex Variables related to perldoc

@table @code
@item w3m-perldoc-command
@vindex w3m-perldoc-command
Name of the executable file of @samp{perldoc}.  The default is
@code{"perldoc"}.

@item w3m-perldoc-input-coding-system
@vindex w3m-perldoc-input-coding-system
Coding system used when writing to the @samp{perldoc} command.  The
default value is @code{euc-japan} if you are in the Japanese language
environment.  Otherwise it is @code{utf-8} if it is available, or
@code{iso-latin-1}.

@item w3m-perldoc-output-coding-system
@vindex w3m-perldoc-output-coding-system
Coding system used when reading from the @samp{perldoc} command.  The
default is @code{undecided}.

@item w3m-perldoc-pod2html-command
@vindex w3m-perldoc-pod2html-command
Name of the executable file of @samp{pod2html}.  The default is
@code{"pod2html"}.

@item w3m-perldoc-pod2html-arguments
@vindex w3m-perldoc-pod2html-arguments
Lisp of arguments passed to the @samp{pod2html} command.  The default is
@code{("--noindex")}.
@end table

@node Namazu Variables
@section Namazu に関連した変数
@cindex Variables related to namazu

@table @code
@item w3m-namazu-command
@vindex w3m-namazu-command
Name of the executable file of Namazu.  The default is @file{namazu}.

@item w3m-namazu-arguments
@vindex w3m-namazu-arguments
List of arguments passed to Namazu.  The default value is @code{("-h"
"-H" "-n" w3m-namazu-page-max "-w" whence)}.  The symbols
@code{w3m-namazu-page-max} and @code{whence} will be replaced
respectively with the value of that variable and a proper value that the
program determines properly.

@item w3m-namazu-default-index
@vindex w3m-namazu-default-index
An alias for the default index, or the directory name of it.  If this is
@code{nil}, you will be prompted for the directory name whenever you
invoke the @code{w3m-namazu} command with no prefix argument.  The
default is the value of @code{namazu-default-dir} if it exists and
@code{namazu-always-query-index-directory} is @code{nil}.  Otherwise
@code{nil}.

@item w3m-namazu-index-alist
@vindex w3m-namazu-index-alist
Alist of aliases and index directories.  The default value is determined
due to @code{namazu-dir-alist} if any or @code{nil}.

@item w3m-namazu-input-coding-system
@vindex w3m-namazu-input-coding-system
Coding system used when reading from the namazu process.  The default is
the value of @code{namazu-cs-read} if it exists, or @code{undecided}.

@item w3m-namazu-output-coding-system
@vindex w3m-namazu-output-coding-system
Coding system used when writing to the namazu process.  The default is
the value of @code{namazu-cs-write} if it exists, or is determined to
@code{shift_jis-dos} or @code{euc-japan-unix} due to the system type.

@item w3m-namazu-page-max
@vindex w3m-namazu-page-max
The maximum number of documents retrieved in one search.  The default is
the value of @code{namazu-search-num} if any, or @code{30}.
@end table

@node Octet Variables
@section Octet に関連した変数
@cindex Variables related to the octet feature

There is no user option for the moment.

* Session Manager Variables::   
@node Session Manager Variables
@section セッションマネージャに関連した変数
@cindex Variables related to session manager

@table @code
@item w3m-session-file
@vindex w3m-session-file
セッションを保存するファイル名。

@item w3m-session-time-format
@vindex w3m-session-time-format
保存時間の形式。

@item w3m-session-automatic-title
@vindex w3m-session-automatic-title
emacs-w3m 終了時の自動保存セッションのタイトル。

@item w3m-session-crash-recovery-title
@vindex w3m-session-crash-recovery-title
クラッシュ復元用セッションのタイトル。

@item w3m-session-deleted-title
@vindex w3m-session-deleted-title
バッファを閉じた時の自動保存セッションのタイトル。

@item w3m-session-deleted-keep-number
@vindex w3m-session-deleted-keep-number
バッファを閉じた時の自動保存セッションをいくつ保存しておくか。

@item w3m-session-automatic-keep-number
@vindex w3m-session-automatic-keep-number
emacs-w3m 終了時の自動保存セッションをいくつ保存しておくか。

@item w3m-session-unknown-title
@vindex w3m-session-unknown-title
タイトルが指定されなかった時に使われる文字列。
@end table

@node Hooks
@section フック
@cindex フック

@table @code
@item w3m-after-cursor-move-hook
@vindex w3m-after-cursor-move-hook
Hook run each time after the cursor moves in emacs-w3m buffers.  This
hook is called by the @code{w3m-check-current-position} function by way
of @code{post-command-hook}.

@item w3m-delete-buffer-hook
@vindex w3m-delete-buffer-hook
Hook run when every emacs-w3m buffer is deleted.

@item w3m-display-hook
@vindex w3m-display-hook
Hook run after displaying pages in emacs-w3m buffers.  Each function is
called with a url string as the argument.  This hook is evaluated by the
@code{w3m-goto-url} function.

@item w3m-fontify-after-hook
@vindex w3m-fontify-after-hook
Hook run after fontifying emacs-w3m buffers.  This hook is evaluated by
the @code{w3m-fontify} function.

@item w3m-fontify-before-hook
@vindex w3m-fontify-before-hook
Hook run when starting to fontify emacs-w3m buffers.  This hook is
evaluated by the @code{w3m-fontify} function.

@item w3m-form-input-map-mode-hook
@vindex w3m-form-input-map-mode-hook
A hook called after w3m-form-input-map-mode.

@item w3m-form-input-map-set-hook
@vindex w3m-form-input-map-set-hook
A Hook called before w3m-form-input-map-set.

@item w3m-form-input-select-mode-hook
@vindex w3m-form-input-select-mode-hook
A hook called after w3m-form-input-select-mode.

@item w3m-form-input-select-set-hook
@vindex w3m-form-input-select-set-hook
A Hook called before w3m-form-input-select-set.

@item w3m-form-input-textarea-mode-hook
@vindex w3m-form-input-textarea-mode-hook
A hook called after w3m-form-input-textarea-mode.

@item w3m-form-input-textarea-set-hook
@vindex w3m-form-input-textarea-set-hook
A Hook called before w3m-form-input-textarea-set.

@item w3m-minor-mode-hook
@vindex w3m-minor-mode-hook
Hook run after @code{w3m-minor-mode} initialization.

@item w3m-mode-hook
@vindex w3m-mode-hook
Hook run after @code{w3m-mode} initialization.  This hook is evaluated
by the @code{w3m-mode} function.

@item w3m-select-buffer-hook
@vindex w3m-select-buffer-hook
Hook run when a different emacs-w3m buffer is selected.

@item w3m-bookmark-mode-hook
@vindex w3m-bookmark-mode-hook
Hook run at the end of function `w3m-bookmark-mode'.
@end table

@node Other Variables
@section その他の変数
@cindex その他の変数

@table @code
@item w3m-async-exec
@vindex w3m-async-exec
Non-@code{nil} means execute the @samp{w3m} command asynchronously in
Emacs process.

@item w3m-broken-proxy-cache
@vindex w3m-broken-proxy-cache
Set it to @code{t} if the proxy server seems not to work properly in
caching.  Note that this may be the double-edged sword; setting it to
@code{t} will likely be harmful if the proxy server sends bad requests
(e.g., not including the Host header, see RFC2616 section 14.23) to
foreign servers when the @samp{w3m} command specifies the
@samp{no-cache} directive.  Also note that it may not be effective if
you are using old @samp{w3m} command.

@item w3m-history-minimize-in-new-session
@vindex w3m-history-minimize-in-new-session
Non-@code{nil} means minimize copied history so that there's only
current page.  This variable is effective when creating of the new
session by copying (i.e., @code{w3m-copy-buffer}).  The default value is
@code{nil}.

@item w3m-history-reuse-history-elements
@vindex w3m-history-reuse-history-elements
Non-@code{nil} means reuse the history element when re-visiting the
page.  Otherwise, a new history element will be created even if there
are elements for the same url in the history.

Emacs-w3m used to operate as the case in which it is non-@code{nil},
however it sometimes brought about users' dissatisfaction.  For example,
if a user visited the pages A -> B -> C -> B in order, performing BACK
on the second B would let a user visit A.  The reason why a user was
taken to A rather than C is that the @code{w3m-history} variable only
had the list @code{(A B C)} as a history and B was the current position
at that time.

The default value for this variable is @code{nil} which allows the
@code{w3m-history} variable to have the list @code{(A B C B)}.  Where
contents of two B's are the identical Lisp objects.  So, too much
wasting the Lisp resources will be avoided.

See the documentation for the variables @code{w3m-history} and
@code{w3m-history-flat} for more information.

@item w3m-process-connection-type
@vindex w3m-process-connection-type
Value for @code{process-connection-type} used when communicating with
@samp{w3m}.

@item w3m-process-modeline-format
@vindex w3m-process-modeline-format
Format used when displaying the progress of the external @samp{w3m}
process.  It shows a percentage of the data loaded from the web server.

@item w3m-show-current-title-in-buffer-tab
@vindex w3m-show-current-title-in-buffer-tab
If non-@code{nil}, show the title strings in the buffers tab.  It has no
effect if your XEmacs does not support the gutter items.

@item w3m-input-url-provide-initial-content
@vindex w3m-input-url-provide-initial-content
If non-@code{nil}, provide an initial minibuffer content (if any) when
entering a url.  The default is @code{nil}.  A url string is not worth
editing in most cases since a url thing is generally a list of arbitrary
letters, not a human readable one.  So, we provide no initial content
when prompting you for a url by default.  But sometimes there will be a
case to be convenient if you can modify the url string of [1]the link
under the cursor or of [2]the current page.  In that case, you can type
the @kbd{M-n} key [1]once or [2]twice to fill the minibuffer with an
initial content if you use Emacs 23 and up.  Otherwise, set this
variable to a non-@code{nil} value to always provide an initial content.
@end table

@node Hooking into MUAs
@chapter メール/ニュースリーダーで使う

ここでは三種類の MUA (Message User Agent) を紹介します。それらの MUA は
すべて emacs-w3m を使うことによって HTML メールを適切に表示することがで
きます。それぞれの MUA と emacs-w3m を設定して使うための HowTo といくつ
かの注意を、ここで見つけることができるでしょう。

異なる習慣に関する即席の注釈: @samp{message} って何? − Gnus ユーザ
が @samp{message} と言うとき、それはしばしばメールまたはニュースとして送
信するメッセージの草稿を意味します。しかし、それは Mew や Wanderlust の
ユーザが、受信したメッセージに対して使う用語です。彼らは送信するメッセー
ジに @samp{draft} を使っています。一方 Gnus ユーザは、受信したメッセージ
を @samp{article} と呼びます。

@menu
* Gnus::                        Gnus で HTML メールを読む
* Mew::                         Mew で HTML メールを読む
* SEMI MUAs::                   @acronym{SEMI} MUA で HTML メールを読む
* VM::                          VM (vieW maiL) は Wanderlust にあらず
@end menu

@node Gnus
@section Gnus で HTML メールを読む
@cindex Reading HTML mails in Gnus
@cindex shr
@cindex gnus-w3m
@findex mm-shr
@findex gnus-article-html
@vindex mm-inline-text-html-with-images
@vindex mm-inline-text-html-with-w3m-keymap
@vindex mm-text-html-renderer
@vindex w3m-minor-mode
@vindex w3m-minor-mode-command-alist

第一に、もしユーザオプション @code{mm-text-html-renderer} がデフォルト
で @code{shr} または @code{gnus-w3m} になっているのであれば (つまり関
数 @code{mm-shr} または @code{gnus-article-html} が利用できるのであれば)、
そして Gnus の内蔵の @acronym{HTML} 描画器であるその関数に満足しているの
であれば、何もする必要は無いでしょう。@xref{Display Customization, ,表示
のカスタマイズ, emacs-mime-ja, The Emacs MIME Manual}.  さら
に @xref{HTML, ,HTML, gnus-ja, The Gnus Manual}.

しかし、もしお使いの Gnus が少し古くて @code{mm-shr} 関数
や @code{gnus-article-html} 関数が使えないか、または @acronym{HTML} 記事
の描画のために emacs-w3m を試してみたいのであれば、この章はまさにあなた
のためのものです。

@itemize @bullet
@item
Emacs-w3m で何ができるの?

HTML の spam メールを、emacs-w3m を使って人間が読めるように変換すること
ができます。もちろん HTML の ham メール (spam ではないメール) に対しても
働き、どちらの場合でも emacs-w3m はデフォルトの変換器よりもたぶん速いで
しょう。追加の操作は必要ありません。それは単に表示されます。

記事バッファの HTML の部分では @code{w3m-minor-mode} が on になって、
emacs-w3m のと同じ主要なキーを使うことができます。例え
ば @kbd{@key{RET}} は、現在位置のリンクが指し示すページに行きます。それ
らのキーは変数 @code{w3m-minor-mode-command-alist} で定義されています。
保安上の理由から、いくつかのコマンドはそれに似た別のコマンドで置き換えら
れていることを心に留めておいてください (下記参照)。

@item
何をしなければいけないの?

この行を @file{~/.gnus.el} ファイルに追加してください。

@lisp
(setq mm-text-html-renderer 'w3m)
@end lisp

さらに、記事バッファで画像を表示したい場合は、以下の行を入れてください。

@lisp
(setq mm-inline-text-html-with-images t)
@end lisp

記事バッファで emacs-w3m のキーを使う必要が無いならば、以下の行も追加し
てください:

@lisp
(setq mm-inline-text-html-with-w3m-keymap nil)
@end lisp

@item
ご注意

前に spam と ham のことを書いたのはふざけているわけではなくて、あなたの
注意を喚起するためにまさにここにあるのです。HTML メールに
は @samp{<img>} タグを使った spammers (spam をばらまくやから) の卑劣な悪
巧みが含まれているかもしれません。それは @samp{Click Here!} ボタンよりは
るかに有害です。最もありそうなのは、そんなたちの悪い spam があなたの目に
止まったかどうかを検査する、すなわちこの場合、あなたのメールアドレスが有
効であることを確認するための spammer の意図があることです。それは、画像
を表示するときに自動的に取得しに行くであろう URL に、識別文字列を埋め込
むことによって行なわれます。変数 @code{mm-w3m-safe-url-regexp} がデフォ
ルト値から変更されていなければ、Gnus が勝手に spammer のサイトに接続する
ことはありません。

@code{mm-inline-text-html-with-images} を @code{t} にすれば、記事バッファ
にインライン画像を表示することができますよね?  いいえ、断じて違います。
あなたはまだ守られているのです。あなたのメールアドレスが到達可能だという
事実が漏れることを気にしないのであれば、変
数 @code{mm-w3m-safe-url-regexp} を @code{nil} にしてください。
@code{mm-w3m-safe-url-regexp} のデフォルト値は @samp{"\\`cid:"} で、これ
は私たちが @samp{cid:} URL によってメールに含まれている画像が安全だと考
えていることを意味します (すなわち、@code{mm-w3m-safe-url-regexp} を変更
しなくても、そのような画像は表示することができます)。

@item
おまけ

概略バッファにいるときでも、記事バッファの画像表示をトグルに切り換えるこ
とができます。それらの画像が emacs-w3m によって表示される場合だけですけ
れどね。例です:

@lisp
(defun gnus-summary-w3m-safe-toggle-inline-images (&optional arg)
  "Toggle displaying of all images in the article buffer.
If the prefix arg is given, force displaying of images."
  (interactive "P")
  (with-current-buffer gnus-article-buffer
    (let ((st (point-min))
          (nd (point-max))
          (w3m-async-exec w3m-async-exec))
      (save-restriction
        (widen)
        (if (or (> st (point-min)) (< nd (point-max)))
            (setq w3m-async-exec nil))
        (article-goto-body)
        (goto-char (or (text-property-not-all (point) (point-max)
                                              'w3m-safe-url-regexp nil)
                       (point)))
        (if (interactive-p)
            (call-interactively 'w3m-toggle-inline-images)
          (w3m-toggle-inline-images arg))))))

(eval-after-load "gnus-sum"
  '(define-key gnus-summary-mode-map
     "vi" 'gnus-summary-w3m-safe-toggle-inline-images))
@end lisp

キー @kbd{vi} は他の何かに変更することができます。さら
に @xref{Summary Buffer, ,概略バッファー, gnus-ja, The Gnus Manual}.
@end itemize

@noindent
@ref{Nnshimbun} も参照してください。

@node Mew
@section Mew で HTML メールを読む

Emacs-w3m を使うことによって、Text/Html を Message モードに表示できるよ
うになります。以下の設定を @file{~/.mew.el} ファイルに加えてください:

@lisp
(require 'mew-w3m)
@end lisp

@noindent
これで、あたかも Text/Plain であるかのように、Text/Html を Message モー
ドに表示できるようになります。この際も、@w{@kbd{C-c C-e}} の操作は有効で
す。

このごろ、同じ情報を二つ含んでいるメールを非常によく見かけます。それら
は @samp{text/plain} パートと @samp{text/html} パートの両方から成る (何
ちゅうバンド幅の無駄使いだ) @samp{multipart/alternative} フォーマットを
使っています。Mew はデフォルトでは @samp{text/plain} パートだけを表示し
ます。あなたは emacs-w3m を使っているのですから、@samp{text/html} パー
トの方を優先したくなるかもしれません。それならば、以下の設定
を @file{~/.mew.el} ファイルに加えてください:

@lisp
(setq mew-mime-multipart-alternative-list
      '("Text/Html" "Text/Plain" ".*"))
@end lisp

@noindent
Mew に関連するいくつかのカスタマイズ可能な変数があります:

@table @code
@item mew-use-w3m-minor-mode
非-@code{nil} にすると、text/html パートが表示されているメッセージバッファ
において @code{w3m-minor-mode} が on になり、emacs-w3m のと同じ主要なキー
を使うことができます。例えば @kbd{@key{RET}} は、現在位置のリンクが指し
示すページに行きます。それらのキーは変
数 @code{w3m-minor-mode-command-alist} で定義されています。保安上の理由
から、いくつかのコマンドはそれに似た別のコマンドで置き換えられていること
を心に留めておいてください。デフォルト値は @code{nil} です。

@item mew-w3m-auto-insert-image
非-@code{nil} にすると、multipart/related なメッセージを読んでいるときに、
メッセージバッファで画像をインライン表示させることができます。mew-w3m は、
表示するために @samp{cid:} URL によってメールの本文に含まれている画像だ
け (私たちはそれらを安全だと考えています) を許可することに注意してくださ
い。デフォルト値は @code{nil} です。

ここで、@file{~/.mew.el} に

@lisp
(define-key mew-summary-mode-map "T" 'mew-w3m-view-inline-image)
@end lisp

と書くと、''T'' を押すことによって、画像表示の状態をトグルすることができ
ます。また、''C-uT'' と prefix をつけると、メール本文に含まれていない画
像も表示します。

@item mew-w3m-cid-retrieve-hook
@samp{cid:} URL を取り出した後で実行されるフックです。デフォルト値
は @code{nil} です。
@end table

@noindent
@ref{Mew Shimbun} も参照してください。

@node SEMI MUAs
@section @acronym{SEMI} MUA で HTML メールを読む

Emacs-w3m と @acronym{SEMI} MUA、例えば Wanderlust を使うことによって、
HTML メールを人間が読めるように表示することができます。そうい
う MUA は MIME の機能を @acronym{SEMI} (そしてさらに @acronym{FLIM}) に
頼っているので、一般にそれを @acronym{SEMI} MUA と呼んでいます。
@acronym{SEMI} は HTML メールの描画にデフォルトで Emacs/W3 を使いますが、
容易に emacs-w3m で置き換えることが可能です。それによってあなたの電脳生
活はより快適になるでしょう。

@noindent
単に以下の行を @file{~/.emacs} ファイルに入れれば良いのです:

@lisp
(require 'mime-w3m)
@end lisp

@code{mime-w3m} モジュールと @code{mime-w3} モジュールは、ご想像の通り機
能的にほぼ同じものです (名前も似ているでしょう?)。後者
は @acronym{SEMI} パッケージに含まれています。

記事バッファの HTML の部分では @code{w3m-minor-mode} が on になって、
emacs-w3m のと同じ主要なキーを使うことができます。例え
ば @kbd{@key{RET}} は、現在位置のリンクが指し示すページに行きます。それ
らのキーは変数 @code{w3m-minor-mode-command-alist} で定義されています。
保安上の理由から、いくつかのコマンドはそれに似た別のコマンドで置き換えら
れていることを心に留めておいてください。

@code{mime-w3m} モジュールに関連するいくつかのカスタマイズ可能な変数があ
ります:

@table @code
@item mime-w3m-display-inline-images
非-@code{nil} だったら、画像が HTML メールにインライン表示されます。最初
に @code{default} というシンボルだったら (それがデフォルトです)、この変
数の値は、変数 @code{w3m-default-display-inline-images} の値で置き換えら
れます。たぶん、あなたはこれを変更する必要は無いでしょう。

@item mime-w3m-safe-url-regexp
安全であると考えられる URL にマッチする正規表現です。デフォルト値
は @samp{"\\`cid:"} で、私たちは @samp{cid:} URL によってメールに含まれ
た画像が安全だと考えていることを意味します。悪漢による攻撃について
は @ref{Gnus} を参照してください。

@item mime-w3m-setup-hook
@code{mime-w3m} モジュールと @acronym{SEMI} の協調動作を設定した直後に実
行されるフックです。デフォルト値は @code{nil} です。
@end table

ところで、summary バッファにいるときでも、article バッ
ファ (Wanderlust のコミュニティでは message バッファと呼ばれている) の画
像表示をトグルに切り換えることができます。それらの画像が emacs-w3m によっ
て表示される場合だけですけれどね。Wanderlust 用の例です:

@lisp
(defun wl-summary-w3m-safe-toggle-inline-images (&optional arg)
  "Toggle displaying of all images in the message buffer.
If the prefix arg is given, all images are considered to be safe."
  (interactive "P")
  (with-current-buffer wl-message-buffer
    (w3m-toggle-inline-images arg)))

(eval-after-load "wl-summary"
  '(define-key wl-summary-mode-map
     "\M-i" 'wl-summary-w3m-safe-toggle-inline-images))
@end lisp

@node VM
@section VM (vieW maiL) は Wanderlust にあらず

VM で html メールを表示する機能を提供する vm-w3m.el モジュールとパッチ
は VM の新しいメインテイナーに引き継がれましたが、まだ VM の安定版に現れ
ていません。@uref{http://www.nongnu.org/viewmail/, VM ホームページ} を
訪ねてみてください。

@node Frequently Asked Questions
@chapter 必ず答があるとは限らない

@menu
* General FAQ::                 一般的な質問
* Trouble FAQ::                 トラブル
* Shimbun FAQ::                 Shimbun に関する質問
@end menu

@node General FAQ
@section 一般的な質問

@itemize @bullet
@item
Q. emacs-w3m って何ですか?

w3m を Emacs 上で動かすインターフェースプログラムです。Emacs 上で動くウェ
ブブラウザとして使うこともできます。さらなる情報は @ref{Introduction} も
参照してください。

@item
Q. 動作する Emacs は?

以下の Emacsen で動作することが確認されています。

@itemize @bullet
@item Emacs 21
@item Emacs 22
@item XEmacs 21.4.17 以上、Mule 有り/無し
@item XEmacs 21.5-b19 以上、Mule 有り/無し
@item Meadow
@end itemize

なお、XEmacs では @acronym{APEL} が必要となります。詳しくは @ref{Other
Requirements} を確認してください。

@item
Q. 動作する w3m は?

以下の w3m で動作することが確認されています。

@itemize @bullet
@item w3m-0.3
@item w3mmee-p24-18 + moe-1.5.4

例に上げた w3mmee は @samp{lang=many} で configure されている (それ
は @samp{configure} スクリプトが @samp{Which language do you prefer?} と
尋ねたときに 3 を入力することによってできます) ことに注意してください。
さらにそれは @samp{libmoe} パッケージを必要とします。
@end itemize

@item
Q. XEmacs の SUMO パッケージに含まれている @acronym{APEL} をインストール
してあるのですが?

XEmacs の @acronym{APEL} パッケージ (すべてのモジュールが Mule 付き
の XEmacs 用にコンパイルされている) にはいろいろ問題があります。例え
ば @samp{std11} モジュールが @acronym{FLIM} のものとかち合う、など。それ
でも @file{apel-1.23-pkg.tar.gz} 以上のものだったら、そし
て @samp{shimbun} の機能のために @acronym{FLIM} を使わないならば、
Mule 付きと無し両方の XEmacs で使えるのですが、オリジナル
の @acronym{APEL} で置き換えるか新規にインストールすることを勧めます。取
得場所は @ref{Other Requirements} を見てください。

@item
Q. CVS で最新版を取得したのですが、@file{configure} スクリプトが見つかり
ません。

@samp{autoconf} を実行してください。
@end itemize

@node Trouble FAQ
@section トラブル

@itemize @bullet
@item
Q. 認証の必要なページのパスワードが入力できません。

変数 @code{w3m-async-exec} に @code{nil} 以外の値が設定されていることを
確認してください。

@item
Q. 認証の必要な proxy サーバーのパスワードが入力できません。

変数 @code{w3m-async-exec} に @code{nil} 以外の値が設定されていることを
確認してください。

@item
Q. リンクがたどれません。

@samp{-header} オプションを受け付ける w3m コマンドが必要です。w3m のバー
ジョンを確認してください。

@item
Q. 文字化けします。

いくつかの原因があります。

@enumerate
@item
HTML ファイルの問題

HTML ファイル中で @samp{<meta>} タグによって指定されている文字コードと、
実際の文字コードが異なると、正常に表示されません。
@w{@kbd{M-x w3m-redisplay-with-charset @key{RET}}} また
は @w{@kbd{C c}} コマンドを使って、正しい文字コードを指定して再描画して
ください。

@item
文字コード

ISO-2022-JP(jis), EUC-JP または SHIFT_JIS 以外の文字コードで記述されたペー
ジについては、表示できない場合があります。次のいずれかの方法で対処してく
ださい。

@enumerate a
@item
Mule-UCS (@pxref{Other Requirements}) をインストールすると、Unicode で定
義されている範囲の文字は表示できるようになります。インストール後、変
数 @code{w3m-use-mule-ucs} が @code{nil} 以外の値に設定されていることを
確認してください。なお、Emacs (それに emacs-w3m も) が EUC-JISX0213 およ
び ISO-2022-JP-3 の文字コードを扱えるようにするには、Mule-UCS に附属して
いる @samp{jisx0213} モジュールをインストールする必要があります (残念な
がら XEmacs では使えませんが)。

@item
w3mmee や w3m-m17n をインストールして、変数 @code{w3m-command} に適切な
値を設定してください。このように設定すると、emacs-w3m はこれらのプログラ
ムが提供する多言語機能を利用するようになります。ただし、Emacs が扱える文
字コードに限られますので、必要に応じて Mule-UCS もインストールしてくださ
い。
@end enumerate

@item
Emacsen の問題

XEmacs 21.1 では SHIFT_JIS のページが化けることがあります。また、XEmacs
21.2 でも beta36 以前では問題があります。そういうものを使っている場合
は XEmacs をアップグレードしてください。

XEmacs 21.1 と 21.2 は、すでに公式にお役御免になったことを認識してくださ
い。

@item
@code{standard-display-european} を使わないでください

それはしばしば Latin 文字を正しく表示させないので、概して有害です。例え
ば、@samp{&#8217} としてエンコードされたアポストロフィ文字 (@samp{'}) は、
それがあたかも @samp{&#249} としてエンコードされたかのように、低アクセン
ト (a grave accent) が付いた文字 @samp{u} として表示されるでしょう。あな
たの @file{~/.emacs} ファイルか、Emacs が起動時に読み込む site ファイル
に、何か以下のような行があるならば、それを取り除くことを強く勧めます。

@lisp
(standard-display-european 1)
@end lisp

そこでは、引数は @code{1} ではなくて @code{t} かもしれません。
@end enumerate

@item
Q. 画像表示できません。

いくつかの原因があります。

古いバージョンの @samp{libungif} ライブラリにはバグがあります。
@samp{libungif-4.1.0b1} 以降のものをインストールしなければなりません。

XEmacs では必ず @samp{gifsicle} プログラムをインストールしてください。現
在利用できるすべての XEmacs 21.x にはバグがあり、emacs-w3m ではこれを使っ
て対策しています (@pxref{Other Requirements})。

古い w3m コマンドでは正常に表示できません。w3m のバージョンを確認してく
ださい。

@item
Q. Cookie が必要なページを閲覧できません。

(まだ実験的な機能です。)

変数 @code{w3m-use-cookies} に @code{nil} 以外の値が設定されていることを
確認してください。

@item
Q. フォームに入力できません。

(まだ実験的な機能です。)

変数 @code{w3m-use-form} に @code{nil} 以外の値が設定されていることを確
認してください。

@item
Q. フォームを送信できません。

(まだ実験的な機能です。)

変数 @code{w3m-use-form} に @code{nil} 以外の値が設定されていることを確
認してください。この機能を使うには、@samp{-post} オプションを認識す
る w3m コマンドが必要です。w3m のバージョンを確認してください。

@item
Q. フレームがレンダリングされません。

w3mmee をインストールして、以下の設定を @file{~/.emacs} ファイルに入れて
ください:

@lisp
(setq w3m-command "w3mmee")
@end lisp

@item
Q. GNU Emacs の tab 行に favicon が表示されないのですが。

Image Magick に含まれている @samp{convert} プログラムをインストールして
ください。@uref{http://www.imagemagick.org/} から入手できます。

@item
Q. GNU Emacs で favicon を表示しようとしたのですが、Emacs がロックしまし
た。
@item
Q. Emacs-w3m を立ち上げようとしたら、激しくディスクアクセスした後、
@samp{process convert exited abnormally with code 10} などと表示されまし
た。どうなっているんでしょう?

古いバージョンの Image Magick を使っていませんか?  ImageMagick-5.2.1 に
付属している @samp{convert} を使っていると、そうなることが知られています。
ImageMagick-5.4.0-5 (以上) に付属している @samp{convert} では、正常動作
が確認されています。

もし ImageMagick が使えない、または使いたくない場合
は @file{~/.emacs-w3m} ファイルに

@lisp
(setq w3m-use-favicon nil)
@end lisp

の設定を追加してください。

@item
Q. なぜ emacs-w3m が w3mmee で動作しないのですか?

もし @samp{lang=en} または @samp{lang=ja} で configure された w3mmee を
使っているのならば、@samp{lang=many} で configure し直し
て (それは @samp{configure} スクリプトが @samp{Which language do you
prefer?} と尋ねたときに 3 を入力することによってできます)、w3mmee を再構
築してください。

@item
Q. なぜ emacs-w3m で web ページが見えないのでしょうか?  ローカル
な html ファイルを見たり、素の w3m を使う場合は問題無いのですが。

ある Linux の配布 (例えば Gentoo Linux) が含んでいる w3m コマンドには、
async パッ
チ@footnote{@uref{http://www.page.sannet.ne.jp/knabe/w3m/w3m.html,
w3m on cygwin}} というものが当たっています。それは素の w3m コマンドを使
うときに有用なのですが、emacs-w3m をハングさせるかもしれません。それが疑
われるならば、w3m コマンドをソースから再インストールすることを勧めます。

@item
Q. なぜ emacs-w3m のフレームがポップアップしないのですか?

Emacs-w3m のフレームが他のフレームの下に隠れていても、それ
が @w{@kbd{M-x w3m @key{RET}}} コマンドでポップアップするのは、かなり便
利です。しかし、@samp{metacity} ウィンドウ・マネージャーが使われるいくつ
かのプラットフォーム (例えば Fedora Linux) 上で作られた Emacs を走らせる
場合に、それが働かないという報告がありました。それらのシステムでは、
Emacs のフレームをポップアップさせる他の機能も動かないでしょう。もしあな
たがそんな惨めな境遇にあるならば、以下の advice を試す価値があるかもしれ
ません。

@lisp
(if (or (not window-system) (featurep 'xemacs))
    nil
  (defadvice raise-frame
    (after make-it-work (&optional frame) activate)
    "Make it work with the aid of wmctrl."
    (call-process
     "wmctrl" nil nil nil "-i" "-R"
     (frame-parameter (or frame (selected-frame))
                      'outer-window-id))))
@end lisp

ここで @samp{wmctrl} は、以下の場所で取得できる外部コマンドです。

@uref{http://sweb.cz/tripie/utils/wmctrl/}

Advice を @file{~/.emacs} ファイルに書き込む前に、@samp{wmctrl} コマンド
をインストールしなければならないことに、注意してください。

次のものは今のところ emacs-w3m では不要ですが、ある種のアプリケーション
が動作するために必要です。(前のものが必要な環境では、これを加えても失う
ものはありません。)

@lisp
(if (or (not window-system) (featurep 'xemacs))
    nil
  (defadvice pop-to-buffer (after enable-it-to-forcus-frame
                                  activate)
    "Enable it to focus frame if `pop-up-frames' is non-nil."
    (when pop-up-frames
      (let ((id (condition-case nil
                    (frame-parameter
                     (window-frame
                      (get-buffer-window (ad-get-arg 0)))
                     'outer-window-id)
                  (error nil))))
        (when id
          (call-process
           "wmctrl" nil nil nil "-i" "-R" id))))))
@end lisp

最後のものはたぶん要らないでしょう。しかし、いくつかのプラットフォームで
は試してみる価値があるかもしれません。

@lisp
(if (or (not window-system) (featurep 'xemacs))
    nil
  (defadvice select-frame (around set-input-focus
                                  (frame) activate)
    "Run `select-frame-set-input-focus'."
    (setq ad-return-value (and (framep frame)
                               (frame-live-p frame)
                               frame))
    (ad-deactivate 'select-frame)
    (unwind-protect
        (select-frame-set-input-focus frame)
      (ad-activate 'select-frame))))
@end lisp

これらの対策は、次の Emacs のリリース (22.2 または 23.1) では不要になる
でしょう。
@end itemize

@node Shimbun FAQ
@section Shimbun に関する質問

@itemize @bullet
@item
Q. なぜ @samp{shimbun} モジュールがインストールされないのですか?

@acronym{FLIM} パッケージがインストールされていないと、@samp{shimbun} モ
ジュール (@file{shimbun/} ディレクトリにあるファイル群) はインストールさ
れないことに注意してください。

@samp{configure} スクリプトは自動的に @acronym{FLIM} の有無を判定するよ
う設計されていますが、標準的ではないディレクトリに @acronym{FLIM} がイン
ストールされていると、判定に失敗します。その場合
は @samp{--with-addpath} オプションを使って、@acronym{FLIM} がインストー
ルされているディレクトリを明示的に指定してください。例です:

@example
% ./configure --with-addpath=$HOME/share/emacs/site-lisp/flim
@end example
@end itemize

@node Known Problems
@chapter あなたならきっと解決できる


@node Shimbun Library
@chapter ウェブ上の新聞を読むための道具
@cindex Shimbun library

ウェブでは、ますます多くの新聞、メーリングリストのアーカイブ、掲示板、あ
るいは個人の日記 (hyper nikki system、weblogs または blogs) が公開されて
います。@samp{Shimbun} ライブラリは、それらのコンテンツを貴方の好みのメー
ラーで読むことができるようにします。具体的には、それらのコンテンツを、メー
ルのように整形・整理する機能を提供します。

すべての @samp{shimbun} モジュールは、普通のメールやニュースのように読む
ことができる記事を生成することを目標にしています。しかしながら、ウェブサ
イトがそれらの記事の html をしばしば変更するので、その度に私たちは困難に
ぶつかります。

もし、無意味な画像や、記事とは関係の無いテキストが現れるのに気がついたら、
(たとえ些細なものでも) @code{report-emacs-w3m-bug} (@pxref{Mailing
List}) を使って報告してください。

@samp{Shimbun} ライブラリは、現在、朝日新聞、読売オンライン、Emacs Devel、
XEmacs Beta、Gnus/Mew/Wanderlust などのメーリングリスト、Slashdot、
Slashdot Japan、および他のたくさんのものに対応しています。具体的には、
@ref{Shimbun Sites} を参照してください。

ところで、@samp{Shimbun} ライブラリを利用する時は、著作権について注意が
必要です。@samp{Shimbun} ライブラリによって加工・生成された記事の著作権
は、その記事を生成する元になったデータの著作者に帰属します。したがって、
得られた記事を利用する場合は、元のデータの著作者の権利を侵害しない範囲を
守る法律上の義務があります。つまり、著作権法に定められた「私的利用」の範
囲を守らなければならない、ということです。

@samp{Shimbun} ライブラリを利用したことによって、万が一あなたが不利益を
被ったり、あなたが他者の権利を侵害したことによってあなたが訴えられたとし
ても、emacs-w3m 開発チームは一切の責任を負いません。

@samp{Shimbun} ライブラリはたくさんのモジュールのコレクションで、それら
の各々は単独では何の役にも立ちません。
ここでは代表的な三つの @samp{Shimbun} のアプリケーションプログラム (それ
らのうちの二つは @samp{Shimbun} ライブラリに含まれています) と、あなたが
自分で @samp{Shimbun} モジュールを作る方法について説明します (Emacs
Lisp プログラムを書くことができる必要があります)。

@menu
* Nnshimbun::                   Gnus をウェブブラウザにする!
* Mew Shimbun::                 Mew で新聞を読む
* Shimbun with Wanderlust::     Wanderlust で新聞を読む
* Shimbun local mode::          新聞の取得にシェルスクリプトを使う
* Shimbun Sites::               新聞が読めるサイト
* Shimbun Basics::              新聞モジュールの作り方
@end menu

@samp{Shimbun} ライブラリを利用するためには、emacs-w3m を構築してインス
トールする前に @acronym{FLIM} パッケージ (加えて @samp{nnshimbun} を使い
たければ Gnus) をインストールする必要があることに注意してください。
@acronym{FLIM} パッケージには @acronym{APEL} パッケージが必要です。あな
たは @ref{Other Requirements} も見るべきかもしれません。

@node Nnshimbun
@section Gnus をウェブブラウザにする!
@cindex nnshimbun
@cindex Web Newspaper

@samp{Nnshimbun} は Gnus のバックエンドです。しかしながら、例外的
に Gnus ではなくて emacs-w3m とともに配布されています。
@samp{Nnshimbun} は Gnus を並外れて便利なウェブブラウザにすることができ
ます。すべての広告に煩わされずに新聞社のウェブサーバで記事を拾い読みする
ことができます。メーリングリストの記事アーカイブを、そのリストに講読登録
しているように読むことができます。掲示板の書き込みも読むことができます。
等々... でも Gnus は @samp{nnshimbun} でウェブを介した投稿ができないので、
フォローしたいときは emacs-w3m を使わなければいけないことに注意してくだ
さい。

さらに emacs-w3m で HTML メッセージを整形するには @ref{Gnus} も参照して
ください。

@findex gnus-group-make-shimbun-group
@c @kindex G n (グループ)
@samp{Nnshimbun} を始めるための一番簡単な方法は、グループバッファで以下
のようなことをすることです:

@w{@kbd{M-x gnus-group-make-shimbun-group @key{RET} asahi @key{RET} national @key{RET}}}
@c @kbd{G n asahi @key{RET} national @key{RET}}

@samp{asahi} と @samp{national} は、接続したいサーバーに対応したキーワー
ドと興味のあるグループに、それぞれ置き換えてください。
@kbd{@key{TAB}} か @kbd{@key{SPC}} をタイプすることによって、それらの名
前を両方とも補完することができます。

もし @code{gnus-group-mode-map} に十分な空きがあるならば、以下のようなも
のを @file{~/.gnus.el} ファイルに加えてください:

@lisp
(eval-after-load "gnus-group"
  '(define-key gnus-group-mode-map "Gn"
     'gnus-group-make-shimbun-group))
@end lisp

すると、@w{@kbd{M-x gnus-group-make-shimbun-group}} の代わり
に @w{@kbd{G n}} を使うことができます。

@emph{誰かこのキーを Gnus タワーに予約してくれませんか?}

@c または @w{@kbd{B nnshimbun @key{RET} asahi @key{RET}}} でバックエンド
@c をブラウズすることによっても記事を読むことができます。

@findex gnus-group-make-shimbun-groups
@noindent
この他に、@code{gnus-group-make-shimbun-groups} コマンドを使って、指定し
たサーバーのすべてのグループを作ることができます。

@samp{Nnshimbun} は単にウェブサーバから HTML コンテンツを取り寄せて、そ
れを記事として表示しますが、永続記
事 (@pxref{Persistent Articles, ,永続記事, gnus-ja, The Gnus Manual}) を
作る場合を除いて、ローカルファイルに記事をセーブすることはありません。
@samp{Nnshimbun} は @acronym{NOV} ファイルを、それぞれ
の @samp{nnshimbun} グループで使います。そのバックエンド
は @samp{nnml} とほぼ同じです。

以下の @samp{nnshimbun} に関する変数をカスタマイズすることが可能です:

@table @code
@item nnshimbun-keep-backlog
@vindex nnshimbun-keep-backlog
@vindex gnus-keep-backlog
この変数は @samp{nnshimbun} グループで @code{gnus-keep-backlog} 変
数 (@pxref{Article Backlog, ,記事のバックログ, gnus-ja, The Gnus
Manual}) を上書きします。もし @code{nnshimbun-keep-backlog} を数
字 @var{n} に設定すると、@samp{nnshimbun} は最大で @var{n} の古い記事を
後の再取得のためにバッファに溜めておきます。この変数が @code{nil} ではな
く、数字でもない場合、@samp{nnshimbun} は @emph{すべて} の既読記事を蓄え
ます (これは良い考えではありません)。デフォルト値は 300 です。

@samp{Nnshimbun} はあらかじめ取得した (prefetched) 記事の保存
に backlog を使うので、小さすぎる値は @code{prefetch-articles} 機能 (下
記参照) を損なうかもしれないことに注意してください。

@item nnshimbun-directory
@vindex nnshimbun-directory
@samp{Nnshimbun} が @acronym{NOV} ファイルと印ファイルを保存するディレク
トリです。デフォルト値は @samp{~/News/shimbun/} です。これはサーバー変
数 (@pxref{Server Variables, ,サーバー変数, gnus-ja, The Gnus
Manual}) です。

@item nnshimbun-default-group-level
@vindex nnshimbun-default-group-level
@code{gnus-level-default-subscribed} を上書きする、デフォルトのグループ
レベルです。新たに作られた @samp{nnshimbun} グループに適用されます。デフォ
ルト値は @code{nil} です。これはサーバー変数 (@pxref{Server Variables,
,サーバー変数, gnus-ja, The Gnus Manual}) です。
@end table

@cindex group parameters
@samp{Nnshimbun} は Gnus が提供する標準のグループパラメー
タ@footnote{グループパラメータを設定するための最も手軽な方法は、グルー
プバッファで、設定したいグループの場所に移動してから @w{@kbd{G c}} をタ
イプすることです (@pxref{Group Parameters, ,グループパラメーター,
gnus-ja, The Gnus Manual})。} に加えて、@samp{nnshimbun} 専用に設けられ
たグループパラメータを利用することができます。複数の @samp{nnshimbun} 用
のパラメータが @code{nnshimbun-group-parameters} という単一のグループパ
ラメータ (すべてのグループで違う値を持つことができる) にまとめられていま
す。それはプロパティリストで、例えば次のような値です:

@lisp
'(index-range all prefetch-articles off encapsulate-images on
              expiry-wait 6)
@end lisp

以降はこれらのグループパラメータと、関連する変数の説明です。

@table @code
@item prefetch-articles
@vindex nnshimbun-pre-fetch-article
このグループパラメータが @code{off} または @code{nil} 以外の何かに設定さ
れているグループでは、@samp{nnshimbun} は新しい記事を探すだけではなく、
それらの記事のダウンロードも行います。これは新しい記事の検索を遅くします
が、記事を閲覧するときに待たされません。このグループパラメータが設定され
ていないか、その値が @code{nil} になっているグループでは、代わりに変
数 @code{nnshimbun-pre-fetch-article} の値 (デフォルトは @code{off}) が
使われます。

@item encapsulate-images
@vindex nnshimbun-encapsulate-images
このグループパラメータが @code{off} または @code{nil} 以外の何かに設定さ
れているグループでは、@samp{nnshimbun} は元の記事に埋め込まれている画像
データを MIME の @samp{multipart/related} パートとして記事にはめ込みます。
このグループパラメータが設定されていないか、その値が @code{nil} になって
いるグループでは、代わりに変数 @code{nnshimbun-encapsulate-images} の値
が使われます。この変数 @code{nnshimbun-encapsulate-images} のデフォルト
値は、@samp{shimbun} ライブラリによって提供される変
数 @code{shimbun-encapsulate-images} の値です (たぶんデフォルト値
は @code{t} です)。

@item index-range
@vindex nnshimbun-index-range
グループパラメータ @code{index-range} で、ウェブサーバーから取得される記
事の範囲を指定することができます。範囲の指定には以下の値を使ってください:

@table @code
@item nil
@itemx all
すべてのページ

@item last
最新のページだけ
@end table

@table @samp
@item integer N
最新の N ページ
@end table

@samp{Nnshimbun} はサーバー上に存在する目次ページを解析して新しい記事の
有無を調べます。サーバーによってはそのような目次ページが複数存在する場合
があります。例えば、メーリングリストの記事を提供しているサーバーの場合は、
その記事が投稿された日付によって分類された目次になっていることが一般的で
す。特に遅い回線を利用している時に、それらすべての巨大な目次を調べるには、
相当な時間がかかるでしょう。

@samp{Nnshimbun} は前回の接続時に調べた目次については、なるべく調べずに
済ませるようになっています。更に時間を節約したい場合は @code{last} を使っ
てください。これは @samp{nnshimbun} に、最新の目次だけを参照して新しい記
事の検査を行なわせます。

グループパラメータ @code{index-range} が設定されていないか、値
が @code{nil} になっているグループでは、変
数 @code{nnshimbun-index-range} の値 (デフォルトは @code{2}) が使われま
す。

@item nnshimbun-group-parameters-alist
@vindex nnshimbun-group-parameters-alist
これは Emacs Lisp 変数で、グループ名の正規表現と @samp{nnshimbun} 用グルー
プパラメータの連想リストです。デフォルト値は @code{nil} です。各々の要素
は @samp{(REGEXP KEYWORD VALUE KEYWORD VALUE...)} の形式を持ちます。例え
ば:

@lisp
'("^nnshimbun\\+asahi:" index-range all prefetch-articles off
  encapsulate-images on expiry-wait 6)
@end lisp

似た名前を持つ (すなわち、互いに似た性格を持っていそうな) 複数のグループ
に対して同じ @samp{nnshimbun} グループパラメータを指定することができるの
で、個々のグループに対してそれぞれグループパラメータを設定する代わりに使
うことができて便利です。もしグループですでにグループパラメータの設定が行
なわれていた場合は、この変数よりもそちらが優先されます。
@end table

@cindex article expiry
@cindex auto-expire
@cindex expiry-wait
@vindex nnmail-expiry-wait-function
@vindex nnmail-expiry-wait
@samp{Nnshimbun} には記事の期限切れ消去を行なわせることができま
す@footnote{@samp{Nnshimbun} グループで自動期限切れ消去を行なう方法は主
に二つあります。一つはグループ名の正規表現 (``^nnshimbun\\+'' で始まらな
ければなりません) を変数 @code{gnus-auto-expirable-newsgroups} に追加し
て、消去するまでの日数を各グループ毎
に @code{nnmail-expiry-wait-function} で指定することです。もう一つは、自
動期限切れ消去を行なわせたいたいすべての @samp{nnshimbun} グループで、グ
ループパラメータ @code{auto-expire} を @code{t} に設定して、グループパラ
メータ @code{expiry-wait} で消去するまでの期限を指定するやり方です。詳し
いこと
は @xref{Expiring Mail, ,メールの期限切れ消去, gnus-ja, The Gnus
manual}, を参照してください。@code{expiry-wait} グループパラメータが設定
されていないグループでは、デフォルトの値が適用されます。}。記事が期限切
れ消去されると言っても、それが遠隔サーバーから削除されるわけではなく、そ
れはずっとそこから取得可能であることを覚えておいてください。消えるのはあ
なた自身の @samp{nnshimbun} 用の @acronym{NOV} ファイ
ル@footnote{@samp{Nnshimbun} 用の @acronym{NOV} ファイル
は ``~/News/shimbun/asahi/national/.overview'' のような名前です。} の、
消去される記事に該当する行です。それによってその記事は二度と概略バッファ
に現れなくなります。

@samp{Nnshimbun} グループで記事の期限切れ消去を行なわない
と @acronym{NOV} ファイルが際限無く太り続け、非常に古い記事があたかも存
在しているように見えるかもしれません (実際には、それらは新聞社のサーバー
で三年前に期限切れ消去されてしまっているかもしれない!)。それを読もうとし
ても記事バッファには何も現れないでしょう。一方、メーリングリストの記事を
提供しているたいていのサーバーは、一般的に過去の全記事を提供しています。
憂愁の彼方に去りし古き良き時代に、あなたが興じた記事を懐かしくうるうるし
て読み返すことができるように、そういうグループでは期限切れ消去はさせたく
ないと思うかもしれません。

他のメールバックエンドと同様に、@samp{nnshimbun} のグループ毎に記事に自
動期限切れ消去の印を付けて、残しておく期間を設定することができます。ただ
し @samp{nnshimbun} バックエンドと他のメールバックエンドには、少し違いが
あります:

@itemize @bullet
@item
第一に、残しておく期間のデフォルト値は以下の優先度で決定されます。グルー
プによってデフォルト値が異なるかもしれないことに注意してください。

@enumerate
@item
グループにおける @code{expiry-wait} グループパラメータの値。

@item
そのグループを対象として、変数 @code{nnmail-expiry-wait-function} を評価
することによって得られた値。

@item
グループに対応する @samp{shimbun} モジュールが提供するデフォルト値。

@item
変数 @code{nnmail-expiry-wait} の値。
@end enumerate

第二に、変数 @code{nnmail-expiry-wait-function} によって設定される関数に
与えられる引数に、``nnshimbun+asahi:national'' のようにバックエンドとサー
バーの名前が含まれることです。他のメールバックエンドの場合にはグループ名
だけが与えられるのに、です。例を挙げましょう:

@lisp
(setq nnmail-expiry-wait-function
      (lambda (group)
        (cond ((string-equal group "ding") 7)
              ((string-equal group "nnshimbun+ding:ding") 'never))))
@end lisp

これは、同じ ding メーリングリスト用に二つのグループがあることを意味しま
す: 一つはリストのメンバーとして講読登録しています。もう一つは Gnus タワー
のメーリングリストアーカイブから読むためのものです。どうです、なかなか賢
いでしょ?  ``ding'' グループのローカルなメールファイルは七日で期限切れ消
去され、ローカルディスクの容量が節約されます。しかし二つ目のグループでは、
前世紀の記事でさえ読むことができます (それが本当に必要ならば、ですが)。

第三に、これはあなたに疑念が沸いたときに思い出すことができるように書き留
められています: @samp{nnshimbun} グループのすべての記事が期限切れ消去さ
れるべきときでも、最新の一通だけは消さずに残しておきます。これはあなたの
未練心を満足させるためではなく、次回にこのグループの新しい記事を取得しよ
うとしたときに、@samp{nnshimbun} がどこから始めるかを知って、すべての記
事を取得し直さないようにするためです。
@end itemize

@samp{Nnshimbun} の期限切れ消去に関係するグループパラメータと変数は以下
の通りです:

@table @code
@item expiry-wait
@cindex expiry-wait
どうか混乱なさらないように。@code{expiry-wait} グループパラメータ
が @samp{nnshimbun} 専用に作られたグループパラメー
タ @code{nnshimbun-group-parameters} の要素の一つとして提供されます。そ
れは標準のグループパラメータと同じ名前を持ち、意味も同じです。あなたはど
ちらを使っても構いません。もし @samp{nnshimbun} 専用のもの
が @code{nil} 以外の値に設定されると、標準のものよりも優先されます。これ
は @samp{nnshimbun} に関係するものを ``Gnus Customize'' バッファ (グルー
プバッファで @w{@kbd{G c}} をタイプすると現れる) の一箇所に集めるためと、
変数 @code{nnshimbun-group-parameters-alist} で一括して管理できるように
することを目的に用意したものです@footnote{なぜ @code{auto-expire} など
が @samp{nnshimbun} 専用のグループパラメータに含まれないの? という問いに
対する答えをすでに用意しています。その答えとは、
@code{expiry-wait} が @samp{nnshimbun} バックエンドによって取り扱われる
のに対して、@code{auto-expire} は Gnus の中枢が取り扱います。したがって、
Gnus が一つの特定のバックエンドのために働く (すなわち、
@samp{nnshimbun} 専用のグループパラメータから値を読む) ように Gnus の中
枢機能を拡張することは、Gnus の設計ポリシーに反するのです。}。設定できる
値は標準のグループパラメータと同様に、時限消去の日数、@code{never} また
は @code{immediate} です。

@item nnshimbun-keep-unparsable-dated-articles
@vindex nnshimbun-keep-unparsable-dated-articles
この変数の値が @code{nil} でない場合は、作成された (または到着した) 時刻
がわからない記事は期限切れ消去されません。なにしろどのくらい古いのかわか
らないんですから。デフォルト値は @code{t} です。@code{nil} に設定すると、
期限切れ消去の処理が行なわれるときに、期限がわからない記事でも無条件で消
されてしまいます。まあ、年の暮れの大掃除の役には立つことが判明するかもし
れません。
@end table

@node Mew Shimbun
@section Mew で新聞を読む

Mew Shimbun は @samp{shimbun} と Mew (version 2.1 以降) とともに使うこと
を意図した Emacs Lisp プログラムです。Mew, @acronym{APEL} およ
び @acronym{FLIM} もインストールされていれば、emacs-w3m をインストールす
るときに一緒にインストールされます。

@ref{Mew} も参照することをお勧めします。

@enumerate
@item
諸設定

以下の各行を @file{~/.mew.el} ファイルの最後に書いてください:

@format
;;; mew-shimbun のロード、キー定義
@end format

;; (setq mew-shimbun-use-unseen t) ;; @footnote{未読管理をするときはコメ
ントを外してください。この変数は必ず @code{(require 'mew-shimbun)} の前
で設定しないといけません。}
@format
(require 'mew-shimbun)
(define-key mew-summary-mode-map "G"  (make-sparse-keymap))
(define-key mew-summary-mode-map "Gg" 'mew-shimbun-goto-folder)
(define-key mew-summary-mode-map "GG" 'mew-shimbun-goto-unseen-folder)
(define-key mew-summary-mode-map "Gi" 'mew-shimbun-retrieve)
(define-key mew-summary-mode-map "GI" 'mew-shimbun-retrieve-all)
(define-key mew-summary-mode-map "Gr" 'mew-shimbun-re-retrieve)
(define-key mew-summary-mode-map "GR" 'mew-shimbun-re-retrieve-all)
(define-key mew-summary-mode-map "Ge" 'mew-shimbun-expire)
(define-key mew-summary-mode-map "GE" 'mew-shimbun-expire-all)

;; @code{mew-shimbun-folder-groups} に Mew で購読する @samp{shimbun} servers 及び
;; group を設定します。それぞれの要素は
;; @code{("folder" ("server.group" . range) ...)} の形式です。@code{range} には
;; @code{all}, @code{last}, および数字が指定できます。

(setq mew-shimbun-folder-groups
      '(;; @samp{+shimbun/yomiuri} という folder に @samp{yomiuri.national},
        ;; @samp{yomiuri.sports} などを一括して取得します。
        ("yomiuri"
         ("yomiuri.national" . 2)
         ("yomiuri.sports". 2)
         ("yomiuri.world". 2))
        ;; @samp{+shimbun/security-memo} に @samp{security-memo.memo} を取得します。
        ("security-memo"
         ("security-memo.memo" . 2))
        ("slashdot-jp"
         ("slashdot-jp.story" . last))
        ;; このように、異なる server の group も一つの folder
        ;; (@samp{+shimbun/emacs}) で読むことができます。
        ("emacs"
         ("airs.wl" . last)
         ("emacs-w3m.emacs-w3m" . last))
        ;; @samp{+shimbun/hns/arisawa}, @samp{+shimbun/hns/miyoshi} にそれぞれの
        ;; 日記を取得します。
        ("hns/arisawa"
         ("hns.arisawa" . last))
        ("hns/miyoshi"
         ("hns.miyoshi" . last))))
@end format

以上で基本的な設定は終了です。他のユーザ定義変数は @code{mew-shimbun} グ
ループを @w{@kbd{M-x customize-group}} するか、ソースを見てください。

@item
記事の購読

@enumerate a
@item
最初の購読

上記の設定をしたあと、まず @w{@kbd{G I}} しましょ
う (@code{mew-shimbun-retrieve-all})。
@code{mew-shimbun-folder-groups} で種々の設定を行なった @samp{shimbun}
folder が @samp{+shimbun} 以下に出来ます。また、新たに group を追加した
ときも @w{@kbd{G I}} すると便利です。なお、
@samp{+shimbun} は @code{mew-shimbun-folder} という変数で好みのものに変
更できます。

@item
@samp{shimbun} folder への移動

通常の @kbd{g} (@code{mew-summary-goto-folder}) でも @samp{shimbun}
folder への移動はできますが、
@w{@kbd{G g}} (@code{mew-shimbun-goto-folder}) を使うと @samp{shimbun}
folder 限定で移動できます。また @w{@kbd{C-u G g}} と prefix をつけたとき
は、新規記事のある folder (まだ scan をしていない folder) のみ表示します。
@w{@kbd{G G}} でも同様です。

@item
folder 単位での記事の取得

@samp{shimbun} folder で @w{@kbd{G i}} (@code{mew-shimbun-retrieve}) す
ると、現在の @samp{shimbun} folder で新規記事を取得します。

@item
更新された記事の取得

特定の記事を表示した状態
で @w{@kbd{G r}} (@code{mew-shimbun-re-retrieve}) すると、その記事が更新
されていたら更新し、同時に新規記事も取得します。@w{@kbd{C-u G r}} とする
と、@code{mew-shimbun-mark-re-retrieve} に指定したマーク (デフォルト値
は @samp{@@}) の記事の更新を試みます。CNET などで使うと便利でしょう。

@w{@kbd{G R}} (@code{mew-shimbun-re-retrieve-all}) では、すべての記事の
新規性を調べ取得しなおします。@w{@kbd{C-u G R}} ではリージョンで指定した
範囲の記事を対象とします。おそらくハイパー日記システムが稼働している日記
サイトでは有意義なコマンドでしょう。
@end enumerate

@item
未読管理

@file{~/.mew.el} ファイルで以下の設定を行なっていると、

@lisp
(setq mew-shimbun-use-unseen t)
@end lisp

新規に取得した記事に @code{mew-shimbun-mark-unseen} で設定したマーク (デ
フォルトは @samp{*}) がつくようになり、読むと自動的に消えます。

通常、Mew の summary モードでマークをつける、あるいは消した後、scan をし
ないと @file{.mew-cache} ファイルに反映されませんが、@file{~/.mew.el} ファ
イルで以下の設定を行なうことにより、

@lisp
(setq mew-shimbun-use-unseen-cache-save t)
@end lisp

Mew の終了時や folder の kill 時 (@w{@kbd{C-c C-q}} を使ったと
き) に @samp{shimbun} folder は自動的に @file{.mew-cache} ファイルを保存
するようになります。ただし、確実
@footnote{@code{mew-touch-folder-p} が @code{t} の人はほぼ 100% 保存でき
ますが、@code{nil} の人が保存できる可能性はほとんど 0% だと思われます。}
に保存するわけではありません。既読になった情報を確実に cache に保存する
には、その folder を読み終わったときに @samp{scan update} をする習慣をつ
けると良いでしょう。

未読に使うマークが @samp{*} じゃダメ、という方は、変
数 @code{mew-shimbun-mark-unseen} をカスタマイズしてください (上述)。
@w{@kbd{C-u N}} でそのマークを指定すると楽しい未読ライフをおくることがで
きると思います。

@item
期限切れ記事の消去

事前に @code{mew-shimbun-expires} を設定しておくと、期限切れ記事の消去を
行なうことができます。例えば:

@lisp
(setq mew-shimbun-expires
      '(("yomiuri" . 7)
        ("asahi" . 1)
        ("slashdot-jp" . 7)
        ("emacs" . 7)))
@end lisp

上記のように設定しておくと、@samp{+shimbun/yomiuri} は 7日、
@samp{+shimbun/asahi} は 1日と期限を設定することができます。指定されてい
ない @samp{shimbun} folder は消去しません。@w{@kbd{G e}}
(@code{mew-shimbun-expire}) でその folder の期限切れ記事を消去します。
@w{@kbd{G e}} (@code{mew-shimbun-expire}) で設定したすべての folder で記
事の消去を実行します。なお、一度消去した記事は復旧出来ませんので注意して
ください。

@item
未読マークとして @samp{$} を追加する方法

@samp{$} マークを新たに作成し、@samp{$} マークを未読マークとして使うには、
次の記述を @file{~/.mew.el} ファイルに記述してください。なお、
@samp{$} 以外の記号にしたければ、
@uref{http://www.mew.org/ml/mew-dist-2.0/msg01251.html} を参照して記述を
生成してください。

@format
;;----------------------------------------------------------------------
;;; @samp{$} を未読マークとして使うための記述
(setq mew-mark-unseen ?$)
(setq mew-shimbun-mark-unseen mew-mark-unseen)
(setq mew-mark-show-list (cons mew-mark-unseen mew-mark-show-list))
(setq mew-mark-afterstep-spec
      (cons (cons mew-mark-unseen '(1 0 1 0 0 0 0))
            mew-mark-afterstep-spec))
(setq mew-mark-spec
      (cons (list mew-mark-unseen "unseen" 0 nil nil nil nil nil)
            mew-mark-spec))
(setq mew-highlight-mark-keywords
      (cons
       (cons mew-mark-unseen 'mew-face-mark-unseen)
       mew-highlight-mark-keywords))
(defface mew-face-mark-unseen
  '((((class color) (type tty))
     (:foreground "green"))
    (((class color) (background light))
     (:foreground "deep pink" :bold t :italic t))
    (((class color) (background dark))
     (:foreground "thistle"))
    (t (:bold t)))
  "*Face to highlight the unseen mark"
  :group 'mew-highlight)
(defun mew-summary-unseen (&optional count)
  "Put the unseen mark(default is '$') in COUNT times."
  (interactive "P")
  (mew-mark-put-mark-loop (function mew-summary-unseen-one) count nil))
(defun mew-summary-unseen-one (&optional no-msg)
  "Put the unseen mark(default is '$') on this message."
  (mew-mark-put-mark mew-mark-unseen no-msg))
(defun mew-summary-mark-unseen ()
  "Change the '*' mark into the '$' mark."
  (interactive)
  (mew-summary-exchange-mark mew-mark-review mew-mark-unseen))
(defun mew-thread-mark-unseen ()
  "Put the '$' mark on all messages of the current sub-thread."
  (interactive)
  (mew-thread-mark mew-mark-unseen))

(define-key mew-summary-mode-map "$"  'mew-summary-unseen)
(define-key mew-summary-mode-map "m$" 'mew-summary-mark-unseen)
(define-key mew-summary-mode-map "t$" 'mew-thread-mark-unseen)
;;----------------------------------------------------------------------
@end format
@end enumerate

@node Shimbun with Wanderlust
@section Wanderlust で新聞を読む

Wanderlust には ELMO モジュールの一つとして @samp{elmo-shimbun} が含まれ
ているので、名前が @samp{@@} で始まるフォルダにアクセスするだけ
で @samp{shimbun} を読むことができます (@pxref{Shimbun Folder, ,Shimbun
Folder, wl-ja, The Wanderlust-ja Manual})。

@node Shimbun local mode
@section 新聞の取得にシェルスクリプトを使う

たくさんの新聞を読んでいると、新しい記事をチェックするのにいくらか時間が
かかるでしょう。それは emacs-w3m が索引を一つずつ取得するからです。これ
を高速に行ないたいなら、索引の取得にシェルスクリプトを使うことができます。
スクリプトは手動で (例えば Emacs の中から) 作動させても良いし、cron のよ
うなスケジューラを介して自動で走らせることもできます。索引は特別な名前の
ファイルにセーブされ、その後 emacs-w3m は w3m を呼ぶ代わりにそれらのファ
イルを使うようになります。

以下の変数で、その「ローカルモード」を制御します:

@table @code
@item shimbun-use-local
@vindex shimbun-use-local
これを @code{t} に設定することによってローカルモードを有効にします。そう
すると、もしローカルファイルとして索引が用意できていれば、emacs-w3m は最
初にそれをチェックします。もしそれが見つからなかったら、通常通り w3m を
通して取得します。

@item shimbun-local-path
@vindex shimbun-local-path
新聞の (索引の) ファイルを格納するディレクトリです。デフォルト
は @code{w3m-default-save-directory} です。
@end table

索引のためのファイルの名前は、URL の MD5 を最初の 10 文字に切り詰めたも
のの後ろに @samp{_shimbun} という文字列をくっつけたものになります。次の
ように Emacs で簡単に索引のためのファイルを生成することができます:

@lisp
(concat (substring (md5 "http://example/feed") 0 10) "_shimbun")
@end lisp

@findex nnshimbun-generate-download-script
Gnus と @samp{nnshimbun} を使っている人たちのために、シェルスクリプトを
生成する関数がすでにあります。それを使って、現在講読しているすべて
の shimbun グループの索引をダウンロードすることができます。単
に @code{nnshimbun-generate-download-script} を呼んでください。すると新
しいバッファにシェルスクリプトが生成されるので、後でセーブしてください。
接頭引数を付けてその関数を呼ぶと、索引の取得を並行して行なうために、すべ
ての w3m 呼び出しに @samp{&} を付けます。

@node Shimbun Sites
@section 新聞が読めるサイト

@samp{Shimbun} ライブラリが対応しているサイトの一覧表です。

@menu
* Newspapers Supported by Shimbun::     新聞社
* News Sites Supported by Shimbun::     ニュースサイト
* Mailing Lists Supported by Shimbun::  メーリングリスト
* Sport Sites Supported by Shimbun::    スポーツ
* Misc Sites Supported by Shimbun::     その他
@end menu

@node Newspapers Supported by Shimbun
@subsection 新聞社

@samp{Shimbun} ライブラリが対応している新聞社です。

@table @asis
@item @uref{http://www.asahi.com/, 朝日新聞}
asahi.book asahi.book.column asahi.book.news asahi.book.paperback
asahi.book.review asahi.book.special asahi.business asahi.car
asahi.culture asahi.digital asahi.editorial asahi.edu asahi.english
asahi.food asahi.health asahi.housing asahi.igo asahi.international
asahi.international.asia asahi.international.column
asahi.international.special asahi.international.world asahi.job
asahi.kansai asahi.kansai.entertainment asahi.kansai.kokoro
asahi.kansai.sumai asahi.kansai.taberu asahi.komimi asahi.life
asahi.life.column asahi.national asahi.politics asahi.rss asahi.science
asahi.shopping asahi.shopping.column asahi.shopping.yakimono
asahi.shougi asahi.sports asahi.sports.baseball asahi.sports.battle
asahi.sports.etc asahi.sports.football asahi.sports.golf
asahi.sports.rugby asahi.sports.usa asahi.sports.winter asahi.tenjin
asahi.travel asahi.wakata

これらのグループは、デフォルトでテキストだけの記事を作ります。それらに、
テキストだけでなく写真をも含む HTML の記事を生成させたいならば、以下の行
を @file{~/.emacs} ファイルに加えてください。

@lisp
(setq shimbun-asahi-prefer-text-plain nil)
@end lisp

一方、HTML の記事を作るために @samp{asahi-html} バックエンドを使うことも
できます。それを使うには、例えばグループ名とし
て @samp{asahi.business} の代わりに @samp{asahi-html.business} を指定し
てください。

@item @uref{http://mytown.asahi.com/, 朝日新聞}
asahi-mytown.(hokkaido@dots{}okinawa)

日本の全都道府県を網羅する朝日新聞の地方版です。

@item @uref{http://www.bbc.co.uk/, BBC}
bbc.news

@item @uref{http://www.welt.de/, ディー・ヴェルト}
welt-de.news

@item @uref{http://www.zeit.de/, ディー・ツァイト}
zeit-de.auto zeit-de.computer zeit-de.deutschland zeit-de.feuilleton
zeit-de.gesundheit zeit-de.international zeit-de.leben zeit-de.literatur
zeit-de.musik zeit-de.news zeit-de.reisen zeit-de.schule zeit-de.sport
zeit-de.studium zeit-de.wirtschaft zeit-de.wissen zeit-de.zuender

@item @uref{http://www.nikkan-gendai.com/, 日刊ゲンダイ}
nikkangendai.top nikkangendai.news nikkangendai.geino
nikkangendai.sports nikkangendai.life nikkangendai.book
nikkangendai.gourmet

@item @uref{http://mainichi.jp/, 毎日jp}
@itemx (2007年10月に MSN から自社サイトに移行)
mainichi.flash mainichi.sports mainichi.entertainment mainichi.mantan
mainichi.electronics mainichi.weekly mainichi.opinion.editorial
mainichi.opinion.yoroku mainichi.opinion.hasshinbako
mainichi.opinion.eye mainichi.opinion.hito mainichi.opinion.kinji
mainichi.opinion.yuraku mainichi.opinion.closeup
mainichi.opinion.kaisetsu mainichi.opinion.newsup
mainichi.opinion.jidainokaze mainichi.entertainment.art
mainichi.fuchisou

これらのグループは、デフォルトで写真をも含む HTML の記事を作ります。それ
らに、テキストだけの記事を生成させたいならば、以下の行
を @file{~/.emacs} ファイルに加えてください。

@lisp
(setq shimbun-mainichi-prefer-text-plain t)
@end lisp

@item @uref{http://www.nytimes.com/, ニューヨークタイムズ}
nytimes.homepage nytimes.news.business
nytimes.news.business.media&advertising
nytimes.news.business.worldbusiness nytimes.news.business.smallbusiness
nytimes.news.business.yourmoney nytimes.news.business.dealbook
nytimes.news.education nytimes.news.health nytimes.news.health.policy
nytimes.news.health.psychology nytimes.news.world
nytimes.news.world.africa nytimes.news.world.americas
nytimes.news.world.asia nytimes.news.world.europe
nytimes.news.world.middleeast nytimes.news.us nytimes.news.newyork
nytimes.news.newyork.thecity nytimes.news.newyork.metro
nytimes.news.obituaries nytimes.news.science nytimes.news.science.earth
nytimes.news.science.nutrition nytimes.news.science.space
nytimes.news.sports nytimes.news.sports.basketball.college
nytimes.news.sports.football.college nytimes.news.sports.golf
nytimes.news.sports.hockey nytimes.news.sports.other
nytimes.news.sports.baseball.pro nytimes.news.sports.basketball.pro
nytimes.news.sports.football.pro nytimes.news.sports.soccer
nytimes.news.technology nytimes.news.technology.bits
nytimes.news.technology.circuits nytimes.news.technology.pogue
nytimes.news.washington nytimes.features.arts
nytimes.features.arts.design nytimes.features.arts.music
nytimes.features.arts.television nytimes.features.automobiles
nytimes.features.books nytimes.features.books.review
nytimes.features.dining&wine nytimes.features.fashion
nytimes.features.fashion.thursdaystyles
nytimes.features.fashion.weddings nytimes.features.home&garden
nytimes.features.jobs nytimes.features.magazine
nytimes.features.movie.news nytimes.features.movie.reviews
nytimes.features.realestate nytimes.features.theater
nytimes.features.travel nytimes.features.travel.escapes
nytimes.features.week_in_review nytimes.additional.pop_top
nytimes.opinion.editorial

2007年9月19日、ニューヨークタイムズは無料でニュース記事を提供し始めまし
た。@samp{charset=iso-8859-1} と言ったのにもかかわらず、このサイトはしば
しば @code{iso-8859-1} の上位互換文字セットである @code{windows-1252} を
使います。使用している (X)Emacs に @code{windows-1252} coding system が
あれば、@samp{shimbun} は (そして emacs-w3m も) そのような場合でも動作し
ます。

@item @uref{http://www.nikkansports.com/, 日刊スポーツ}
nikkansports.flash nikkansports.baseball
nikkansports.baseball.highschool nikkansports.baseball.amateur
nikkansports.baseball.mlb nikkansports.soccer nikkansports.soccer.japan
nikkansports.soccer.world nikkansports.sports nikkansports.sumo
nikkansports.nba nikkansports.nfl nikkansports.nhl nikkansports.rugby
nikkansports.golf nikkansports.motor nikkansports.battle
nikkansports.race nikkansports.race.kka nikkansports.entertainment
nikkansports.cinema nikkansports.general

@item @uref{http://www.nikkei.co.jp/, 日本経済新聞}
nikkei.top nikkei.main nikkei.keizai nikkei.sangyo nikkei.tento
nikkei.kansai nikkei.it.business nikkei.it.busi_gyoukai
nikkei.it.biz-system nikkei.it.sox nikkei.it.data nikkei.it.taidan
nikkei.it.internet nikkei.it.broad nikkei.it.net_gyoukai nikkei.it.iptel
nikkei.it.tele nikkei.it.broadcast nikkei.it.internet-column
nikkei.it.contents nikkei.it.ec nikkei.it.policy nikkei.it.e-gov
nikkei.it.mobile nikkei.it.mob_gyoukai nikkei.it.mobsoft
nikkei.it.mobcon nikkei.it.money nikkei.it.one nikkei.it.security
nikkei.it.net_crime nikkei.it.digital nikkei.it.pc nikkei.kokunai
nikkei.markets nikkei.kawase nikkei.kinri nikkei.ft nikkei.dj
nikkei.ngyoseki nikkei.gyosuuchi nikkei.gyoseki nikkei.china
nikkei.market nikkei.kaigai nikkei.seiji nikkei.shakai nikkei.retto
nikkei.sports nikkei.newpro nikkei.release nikkei.release.it.comp
nikkei.release.it.peri nikkei.release.it.sys nikkei.release.it.cont
nikkei.release.it.net nikkei.release.it.lsi nikkei.release.it.game
nikkei.release.it.etc nikkei.release.dist.depart
nikkei.release.dist.ryohan nikkei.release.dist.zakka
nikkei.release.dist.cosme nikkei.release.dist.car
nikkei.release.dist.book nikkei.release.dist.record
nikkei.release.dist.food nikkei.release.dist.mercha
nikkei.release.dist.mail nikkei.release.dist.netshop
nikkei.release.dist.etc nikkei.release.money.bank
nikkei.release.money.sec nikkei.release.money.am
nikkei.release.money.insu nikkei.release.money.etc
nikkei.release.maker.chemi nikkei.release.maker.mecha
nikkei.release.maker.car nikkei.release.maker.elec
nikkei.release.maker.food nikkei.release.maker.sports
nikkei.release.maker.apparel nikkei.release.maker.commu
nikkei.release.maker.etc nikkei.release.service.medic
nikkei.release.service.rest nikkei.release.service.trans
nikkei.release.service.energy nikkei.release.service.enter
nikkei.release.service.env nikkei.release.service.consul
nikkei.release.service.edu nikkei.release.service.haken
nikkei.release.service.life nikkei.release.service.media
nikkei.release.service.lease nikkei.release.service.travel
nikkei.release.service.etc nikkei.release.const.const
nikkei.release.const.house nikkei.release.const.etc nikkei.shasetsu

@item @uref{http://www.sankei.com/, 産経ニュース}
sankei.affairs sankei.column sankei.column.editorial
sankei.column.sankeisyo sankei.column.seiron sankei.economy
sankei.entertainments sankei.flash sankei.life sankei.politics
sankei.region.chubu sankei.region.chugoku-shikoku
sankei.region.hokkaido-tohoku sankei.region.kanto sankei.region.kinki
sankei.region.kyushu-okinawa sankei.sports sankei.top
sankei.west.affairs sankei.west.economy sankei.west.flash
sankei.west.life sankei.west.sports sankei.world

@item @uref{http://www.spiegel.de/, Spiegel Online}
spiegel.news

@item @uref{http://www.sponichi.co.jp/, スポニチ}
sponichi.baseball sponichi.soccer sponichi.usa sponichi.others
sponichi.society sponichi.entertainment sponichi.horseracing

@item @uref{http://www.sueddeutsche.de/, 南ドイツ新聞}
sueddeutsche-de.alles sueddeutsche-de.nachrichten
sueddeutsche-de.politik sueddeutsche-de.wirtschaft
sueddeutsche-de.finanzen sueddeutsche-de.kino sueddeutsche-de.kultur
sueddeutsche-de.sport sueddeutsche-de.muenchen sueddeutsche-de.panorama
sueddeutsche-de.leben sueddeutsche-de.gesundheit
sueddeutsche-de.computer

@item @uref{http://www.yomiuri.co.jp/, 讀売新聞}
yomiuri.atmoney yomiuri.editorial yomiuri.entertainment yomiuri.iryou
yomiuri.kyoiku yomiuri.kyoiku.children yomiuri.kyoiku.english
yomiuri.kyoiku.qanda yomiuri.kyoiku.renaissance yomiuri.kyoiku.special
yomiuri.national yomiuri.politics yomiuri.science yomiuri.sports
yomiuri.world

これらのグループは、デフォルトでテキストだけの記事を作ります。それらに、
テキストだけでなく写真をも含む HTML の記事を生成させたいならば、以下の行
を @file{~/.emacs} ファイルに加えてください。

@lisp
(setq shimbun-yomiuri-prefer-text-plain nil)
@end lisp

一方、HTML の記事を作るために @samp{yomiuri-html} バックエンドを使うこと
もできます。それを使うには、例えばグループ名とし
て @samp{yomiuri.atmoney} の代わりに @samp{yomiuri-html.atmoney} を指定
してください。

@item @uref{http://kyoko-np.net/, 虚構新聞}
kyoko-np.rss
@end table

@node News Sites Supported by Shimbun
@subsection ニュースサイト

@samp{Shimbun} ライブラリが対応しているニュースサイトです。

@table @asis
@item @uref{http://english.aljazeera.net/, Al Jazeera}
aljazeera.news aljazeera.africa aljazeera.america aljazeera.asia-pacific
aljazeera.central-asia aljazeera.europe aljazeera.middle-east
aljazeera.focus aljazeera.business aljazeera.sport aljazeera.programmes

@item @uref{http://news.com.com/, CNET}
cnet.news cnet.enterprise.software cnet.enterprise.hardware
cnet.security cnet.networking cnet.personal.technology cnet.newsmakers
cnet.perspectives

@item @uref{http://japan.cnet.com/, CNET Japan}
cnet-jp.general cnet-jp.news cnet-jp.special cnet-jp.opinion
cnet-jp.blog.geetstate cnet-jp.blog.kenn cnet-jp.blog.lessig
cnet-jp.blog.matsumura cnet-jp.blog.nakajima cnet-jp.blog.saeki
cnet-jp.blog.sakamoto cnet-jp.blog.sasaki cnet-jp.blog.sentan
cnet-jp.blog.staff cnet-jp.blog.takawata cnet-jp.blog.watanabe

@item @uref{http://www.cnn.co.jp/, CNN Japan}
cnn-jp.business cnn-jp.fringe cnn-jp.science cnn-jp.showbiz
cnn-jp.sports cnn-jp.top cnn-jp.usa cnn-jp.world

@item @uref{http://www.de-bug.de/, De-Bug Magazine}
debugmagazin-de.frontpage debugmagazin-de.musik debugmagazin-de.reviews
debugmagazin-de.magazin debugmagazin-de.medien debugmagazin-de.podcast
debugmagazin-de.musiktechnik debugmagazin-de.screen
debugmagazin-de.gadgets debugmagazin-de.games debugmagazin-de.mode

@item @uref{http://japanese.engadget.com/, Engadget Japanese}
engadget-ja.top

@item @uref{http://www.excite.co.jp/, エキサイト ニュース}
excite.bit-koneta excite.world-odd

@item @uref{http://www.fau.org/, 自由労働者同盟ドイツ}
fau.news

@item @uref{http://www.heise.de/, ハイゼ・オンライン}
heise.news heise.telepolis

@item @uref{http://news.infoshop.org/, Infoshop News}
infoshop.news

@item @uref{http://www.watch.impress.co.jp/, インプレス}
impress.enterprise impress.pc impress.dc impress.akiba impress.av
impress.game impress.k-tai impress.internet impress.bb impress.forest
impress.robot impress.kaden impress.car

@item @uref{http://www.itmedia.co.jp/, ITmedia}
itmedia.news.bursts itmedia.news.domestic itmedia.news.foreign
itmedia.news.products itmedia.news.technology itmedia.news.web20
itmedia.news.nettopics itmedia.news.society itmedia.news.security
itmedia.news.industry itmedia.news.research itmedia.news.sp_amd
itmedia.anchordesk itmedia.bizid itmedia.enterprise itmedia.+D.plusd
itmedia.+D.mobile itmedia.+D.pcupdate itmedia.+D.lifestyle
itmedia.+D.games itmedia.+D.docomo itmedia.+D.au_kddi
itmedia.+D.vodafone itmedia.+D.shopping
itmedia.+D.lifestyle.column.asakura itmedia.+D.lifestyle.column.honda
itmedia.+D.lifestyle.column.kobayashi itmedia.+D.lifestyle.column.kodera
itmedia.+D.lifestyle.column.nishi itmedia.+D.lifestyle.column.ogikubo
itmedia.+D.lifestyle.column.tachibana
itmedia.+D.lifestyle.column.takemura itmedia.+D.lifestyle.column.unakami

@item @uref{http://www.japantimes.co.jp/, Japan Times}
japantimes.general japantimes.business

@item @uref{http://www.laut.de/, LAUT AG}
laut-de.news laut-de.platten laut-de.platten_alternative
laut-de.platten_dance laut-de.platten_hiphop platten_jazz
laut-de.platten_metal laut-de.platten_pop laut-de.platten_rnb
laut-de.platten_rock

@item @uref{http://www.n24.de/, N24}
n24-de.boerse n24-de.boulevard n24-de.nachrichten n24-de.netnews
n24-de.politik n24-de.sport n24-de.wirtschaft

@item @uref{http://opentechpress.jp/, Open Tech Press}
opentechpress-jp.general opentechpress-jp.enterprise
opentechpress-jp.opensource opentechpress-jp.security
opentechpress-jp.news opentechpress-jp.pr

@item @uref{http://www.perlentaucher.de/, Perlentaucher (真珠採り)}
perlentaucher-de.aktuell

@item @uref{http://www.rediff.com/, Rediff.com}
rediff.news

@item @uref{http://www.slashdot.org/, Slashdot}
slashdot.frontpage slashdot.apple slashdot.askslashdot slashdot.books
slashdot.developers slashdot.games slashdot.hardware slashdot.interviews
slashdot.IT slashdot.linux slashdot.mobile slashdot.politics
slashdot.science

Slashdot shimbun のコメントの部分を設定するための以下の変数があります:

@table @code
@item shimbun-slashdot-get-comments
@vindex shimbun-slashdot-get-comments
もし @code{t} に設定されていると (それがデフォルトです)、すべての記事の
コメントを取得します。それらはフォームフィード文字 (``^L'' のこと) でイ
ントロ・テキストから分離されます。それらを見るには、いつものように記事バッ
ファをスクロールしてください (Gnus では ``Next page'' ボタン
と ``Previous page'' ボタンを使うことができます)。この変数
を @code{nil} に設定すると、記事のコメントを取得しなくなります。

@item shimbun-slashdot-comment-threshold
@vindex shimbun-slashdot-comment-threshold
表示されるコメントの閾値です (デフォルトは 3)。-1 (すべてのコメント) か
ら 5 (最高レート) までの間の数にしてください。

@item shimbun-slashdot-comment-display
@vindex shimbun-slashdot-comment-display
コメントを表示する形式です (デフォルトは ``flat'')。``flat''、
``thread'' または ``nested'' のどれかにしてください。これはシンボルでは
なく文字列でなければなりません。
@end table

@item @uref{http://slashdot.jp/, Slashdot Japan}
slashdot-jp.story slashdot-jp.askslashdot slashdot-jp.bookreview
slashdot-jp.bsd slashdot-jp.developers slashdot-jp.interview
slashdot-jp.linux slashdot-jp.mac slashdot-jp.mobile slashdot-jp.science
slashdot-jp.security slashdot-jp.slash slashdot-jp.it
slashdot-jp.hardware slashdot-jp.diary.oliver

変数 @code{shimbun-slashdot-jp-group-alist} に適切な設定を加えると、その
他のユーザーの日記も閲覧できます。

@item @uref{http://techon.nikkeibp.co.jp/, Tech-On! 日経BP社}
tech-on.latestnews tech-on.mobile tech-on.bbint tech-on.d-ce tech-on.AT
tech-on.edaonline tech-on.device tech-on.lsi tech-on.silicon
tech-on.observer tech-on.fpd tech-on.mono tech-on.embedded tech-on.mecha
tech-on.MEMS tech-on.nano tech-on.carele tech-on.board tech-on.mcu
tech-on.PLM tech-on.memory tech-on.measurement tech-on.column.mot

Tech-On! は日経BP社が提供する技術ニュースサイトです。以前は記事の内容を
全部読むためにログイン・アカウント (無料) が必要でしたが、少なくと
も 2007年の秋においては要らないように見えます。将来もし再び必要になった
ら @uref{http://techon.nikkeibp.co.jp/guide/inf_regi.html,
登録ページ} に行って取得してください。次の二つの変数で、どうやってログイ
ンするかを制御します:

@table @code
@item shimbun-tech-on-user-name
@vindex shimbun-tech-on-user-name
Tech-On! にログインするためのユーザー名です。@code{nil} だと Tech-On! に
ログインするときに、ユーザー名の入力を要求されます。文字列だったらそれが
ユーザー名として使われ、入力を要求されることはありません。@code{nil} で
も文字列でもない場合 (これがデフォルトです)、ログインを行ないません。

@item shimbun-tech-on-password
@vindex shimbun-tech-on-password
Tech-On! にログインするためのパスワードです。@code{nil} だと Tech-On! に
ログインするときに、パスワードの入力を要求されます。文字列だったらそれが
パスワードとして使われ、入力を要求されることはありません。@code{nil} で
も文字列でもない場合 (これがデフォルトです)、ログインを行ないません。
@end table

これらの入力は、その Emacs セッションで最初に Tech-On! の記事を読み始め
るときに一回だけ要求されます。

@item @uref{http://hotwired.goo.ne.jp/, HotWired Japan}
wired-jp.news wired-jp.business wired-jp.culture wired-jp.technology
wired-jp.blog.ogura wired-jp.blog.sasaki wired-jp.blog.takahashi

@item @uref{http://headlines.yahoo.co.jp/, Yahoo! Japan}
yahoo.topnews yahoo.news yahoo.politics yahoo.society yahoo.people
yahoo.business-all yahoo.market yahoo.stock yahoo.industry
yahoo.international yahoo.entertainment yahoo.sports yahoo.computer
yahoo.zenkoku yahoo.hokkaido yahoo.aomori yahoo.iwate yahoo.miyagi
yahoo.akita yahoo.yamagata yahoo.fukushima yahoo.tokyo yahoo.kanagawa
yahoo.chiba yahoo.saitama yahoo.ibaraki yahoo.tochigi yahoo.gunma
yahoo.yamanashi yahoo.nagano yahoo.niigata yahoo.toyama yahoo.ishikawa
yahoo.fukui yahoo.aichi yahoo.gifu yahoo.shizuoka yahoo.mie yahoo.osaka
yahoo.hyogo yahoo.kyoto yahoo.shiga yahoo.nara yahoo.wakayama
yahoo.tottori yahoo.shimane yahoo.okayama yahoo.hiroshima
yahoo.yamaguchi yahoo.tokushima yahoo.kagawa yahoo.ehime yahoo.kochi
yahoo.fukuoka yahoo.saga yahoo.nagasaki yahoo.kumamoto yahoo.oita
yahoo.miyazaki yahoo.kagoshima yahoo.okinawa

yahoo.news グループは主要な記事と、さらに速報記事を検索します。これらの
グループは、デフォルトで HTML の記事を作ります。それらにテキストだけの記
事を生成させたいならば、以下の行を @file{~/.emacs} ファイルに加えてくだ
さい。

@lisp
(setq shimbun-yahoo-prefer-text-plain t)
@end lisp

@item @uref{http://japan.zdnet.com/, ZDNet Japan}
zdnet-jp.news zdnet-jp.news.network zdnet-jp.news.hardware
zdnet-jp.news.software zdnet-jp.news.manage zdnet-jp.news.security
zdnet-jp.news.internet zdnet-jp.news.os zdnet-jp.news.db
zdnet-jp.news.system zdnet-jp.column zdnet-jp.column.sp1
zdnet-jp.column.netsecurity1 zdnet-jp.column.ea1 zdnet-jp.column.btl
zdnet-jp.column.solutionIT zdnet-jp.channel.security
zdnet-jp.channel.ilm zdnet-jp.blog.iida zdnet-jp.blog.mhatta
zdnet-jp.blog.kurei zdnet-jp.blog.opensource zdnet-jp.blog.soa
zdnet-jp.blog.dp

@item @uref{http://www.theonion.com/, The Onion}
the-onion.news
@end table

@node Mailing Lists Supported by Shimbun
@subsection メーリングリスト

最近では、メーリングリストに投稿された過去記事のアーカイブが WEB 上に幾
つも公開されています。@samp{Shimbun} ライブラリは、以下のアーカイブを扱
うことができます。

@table @asis
@item @uref{http://lists.airs.net/semi-gnus/archive/, Semi-gnus Mailing List in Japan}
airs.semi-gnus-ja

@item @uref{http://lists.airs.net/, Wanderlust Mailing List}
airs.wl airs.wl-en

@item @uref{http://www.rc.tutrp.tut.ac.jp/bbdb-ml/, Big Brother DataBase Mailing List}
bbdb-ml.bbdb-ml

@item @uref{http://mail.gnome.org/archives/, GNOME Mailing List}
gnome.balsa-list gnome.calendar-list gnome.cvs-commits-list
gnome.foundation-announce gnome.foundation-list gnome.fplan-list
gnome.gconf-list gnome.gdome gnome.gnome-1.4-list
gnome.gnome-announce-list gnome.gnome-components-list
gnome.gnome-db-list gnome.gnome-de gnome.gnome-debugger-list
gnome.gnome-devel-list gnome.gnome-doc-list gnome.gnome-gui-list
gnome.gnome-hackers gnome.gnome-hackers-readonly
gnome.gnome-hackers-test gnome.gnome-i18n gnome.gnome-i18n-tools
gnome.gnome-kde-list gnome.gnome-list gnome.gnome-office-list
gnome.gnome-pilot-list gnome.gnome-sound-list gnome.gnome-themes-list
gnome.gnome-ui-hackers gnome.gnome-web-list gnome.gnome-webmaster-list
gnome.gnome-workshop-list gnome.gnomecc-list gnome.gnumeric-list
gnome.gtk-app-devel-list gnome.gtk-devel-list gnome.gtk-doc-list
gnome.gtk-i18n-list gnome.gtk-list gnome.gtk-perl-list
gnome.guppi-list gnome.libart gnome.libart-hackers gnome.orbit-list
gnome.vote gnome.wm-spec-list gnome.xml gnome.xslt

@item @uref{http://www.java-conf.gr.jp/archives/, Java カンファレンス Mailing List}
javaconf.servlet-ml javaconf.business-ml
javaconf.duke-in-the-box-ml javaconf.jfriends-ml javaconf.JGT-ml
javaconf.jini-ml javaconf.ejb-ml javaconf.cm-ml javaconf.horb-ml
javaconf.talk-ml

@item @uref{http://www.peanuts.gr.jp/~kei/ml-archive/, LinuxCE JP Mailing List}
linuxce-jp.users

@item @uref{http://www.m17n.org/, Mule Mailing List}
m17n.mule-ja m17n.mule

@item @uref{http://www.ysnb.net/meadow/, Meadow Mailing List}
meadow.meadow-develop meadow.meadow-users-jp

@item @uref{http://www.mew.org/ml/, Mew Mailing List}
mew.mew-dist mew.mew-win32 mew.mew-int

@item @uref{http://www.mew.org/ml/, MagicPoint Mailing List}
mew.mgp-users mew.mgp-users-jp

@item @uref{http://www.namazu.org/cgi-bin/mailman/listinfo, www.namazu.org Mailing Lists}
namazu.kakasi-commits namazu.kakasi-dev namazu.migemo
namazu.namazu-users-en namazu.namazu-users-ja
namazu.namazu-devel-ja namazu.namazu-devel-en
namazu.namazu-win32-users-ja namazu.sary

@item @uref{http://emacs-w3m.namazu.org/ml/, emacs-w3m Mailing List}
emacs-w3m.emacs-w3m

@item @uref{http://www.jp.netbsd.org/ja/JP/ml/, NetBSD JP Mailing List}
netbsd.announce-ja netbsd.junk-ja netbsd.tech-misc-ja
netbsd.tech-pkg-ja netbsd.port-arm32-ja netbsd.port-hpcmips-ja
netbsd.port-mac68k-ja netbsd.port-mips-ja netbsd.port-powerpc-ja
netbsd.hpcmips-changes-ja netbsd.members-ja netbsd.admin-ja
netbsd.www-changes-ja

@item @uref{http://blade.nagaokaut.ac.jp/, Ruby Mailing List}
ruby.comp.lang.ruby ruby.fj.comp.lang.ruby
ruby.ruby-dev ruby.ruby-ext ruby.ruby-list ruby.ruby-math
ruby.ruby-talk

@item @uref{http://linux.toshiba-dme.co.jp/ML/tlinux-users-j/, Toshiba Linux Users JP Mailing List}
toshiba.linux-users-j

@item @uref{http://mi.med.tohoku.ac.jp/~satodai/w3m-dev/, w3m-dev Mailing List}
w3m-dev.w3m-dev w3m-dev.w3m-dev-en

@item @uref{http://yar-3.net/digiko/, digiko Mailing List}
digiko.digiko

@item @uref{http://list-archive.xemacs.org/, XEmacs Mailing List}
xemacs.xemacs-announce xemacs.xemacs-beta-ja
xemacs.xemacs-beta xemacs.xemacs-build-reports xemacs.xemacs-cvs
xemacs.xemacs-design xemacs.xemacs-mule xemacs.xemacs-nt
xemacs.xemacs-patches xemacs.xemacs-users-ja xemacs.xemacs

@item @uref{http://memo.st.ryukoku.ac.jp/archive/, セキュリティーMEMO Mailing List}
security-memo.memo security-memo.free-memo security-memo.social-memo

なお、@samp{security-memo.*} はアドレス回収ロボット対策
で userid と passowrd を求められるので @file{~/.w3m/passwd} に

@example
machine memo.st.ryukoku.ac.jp
realm input username/password = archives/archives
login archives
passwd archives

machine memo.st.ryukoku.ac.jp
realm input user: archives / password: archives
login archives
passwd archives
@end example

@noindent
と書き、上記ファイルから group, others のアクセス権を取り除いておく必要
があります。

@item @uref{http://lists.debian.or.jp/, Debian JP Mailing List}
debian-jp.debian-announce debian-jp.debian-devel
debian-jp.debian-www debian-jp.debian-users debian-jp.debian-policy
debian-jp.jp-qa

@item @uref{http://lists.debian.org/, Debian Mailing List}
debian.debian-announce debian.debian-commercial debian.debian-firewall
debian.debian-french debian.debian-isp debian.debian-italian
debian.debian-kde debian.debian-laptop debian.debian-news
debian.debian-news-german debian.debian-news-portuguese
debian.debian-security-announce debian.debian-testing
debian.debian-user debian.debian-user-catalan
debian.debian-user-french debian.debian-user-polish
debian.debian-user-portuguese debian.debian-user-spanish
debian.debian-user-swedish debian.debian-admintool
debian.debian-apache debian.debian-autobuild debian.debian-beowulf
debian.debian-boot debian.debian-cd debian.debian-ctte
debian.debian-debbugs debian.debian-devel debian.debian-devel-announce
debian.debian-devel-french debian.debian-devel-games
debian.debian-devel-spanish debian.debian-doc debian.debian-dpkg
debian.debian-emacsen debian.debian-events-eu debian.debian-events-na
debian.debian-faq debian.debian-gcc debian.debian-glibc
debian.debian-gtk-gnome debian.debian-hams debian.debian-ipv6
debian.debian-java debian.debian-jr debian.debian-med
debian.debian-mentors debian.debian-newmaint
debian.debian-newmaint-admin debian.debian-ocaml-maint
debian.debian-openoffice debian.debian-perl debian.debian-pilot
debian.debian-policy debian.debian-pool debian.debian-python
debian.debian-qa debian.debian-qa-private debian.debian-release
debian.debian-security debian.debian-snapshots
debian.debian-tetex-maint debian.debian-toolchain debian.debian-vote
debian.debian-wnpp debian.debian-www debian.debian-x debian.deity
debian.debian-chinese debian.debian-chinese-big5
debian.debian-chinese-gb debian.debian-esperanto debian.debian-i18n
debian.debian-japanese debian.debian-l10n-catalan
debian.debian-l10n-dutch debian.debian-l10n-english
debian.debian-l10n-french debian.debian-l10n-italian
debian.debian-l10n-portuguese debian.debian-l10n-spanish
debian.debian-laespiral debian.debian-russian
debian.debian-simplified-chinese debian.debian-68k debian.debian-alpha
debian.debian-arm debian.debian-bsd debian.debian-hppa
debian.debian-hurd debian.debian-ia64 debian.debian-mips
debian.debian-parisc debian.debian-powerpc debian.debian-s390
debian.debian-sparc debian.debian-superh debian.debian-ultralinux
debian.debian-win32 debian.debian-all-changes
debian.debian-alpha-changes debian.debian-arm-changes
debian.debian-books debian.debian-cd-vendors debian.debian-changes
debian.debian-consultants debian.debian-curiosa
debian.debian-devel-all-changes debian.debian-devel-alpha-changes
debian.debian-devel-arm-changes debian.debian-devel-changes
debian.debian-devel-hurd-i386-changes debian.debian-devel-i386-changes
debian.debian-devel-m68k-changes debian.debian-devel-powerpc-changes
debian.debian-devel-sparc-changes debian.debian-hurd-i386-changes
debian.debian-i386-changes debian.debian-legal
debian.debian-m68k-changes debian.debian-mirrors
debian.debian-powerpc-changes debian.debian-project
debian.debian-publicity debian.debian-sgml debian.debian-sparc-changes
debian.lcs-eng debian.lsb-confcall debian.lsb-discuss debian.lsb-impl
debian.lsb-spec debian.lsb-test debian.spi-announce debian.spi-general
debian.vgui-discuss

@item @uref{http://www.kde.gr.jp/ml/, KDE Mailing List in Japan}
kde.Kuser kde.Kdeveloper

@item @uref{http://www.geocrawler.com/, Geocrawler}
Geocrawler に保存されているすべてのメーリングリストを閲覧できます。
@w{@kbd{M-x shimbun-geocrawler-add-group @key{RET}}} というコマンドを使っ
て、閲覧したいグループを変数 @code{shimbun-geocrawler-group-alist} に登
録してください。

@item @uref{http://marc.theaimsgroup.com/, Mailing list ARChives}
Mailing list ARChives (@acronym{MARC}) に保存されているすべてのメーリン
グリストを閲覧できます。閲覧したいグループのグループ名と URL を、
変数 @code{shimbun-marc-aims-group-alist} に登録してください。

@item @uref{http://sources.redhat.com/ml/, RedHat Mailing List}
redhat.automake redhat.bug-automake redhat.automake-prs
redhat.automake-cvs redhat.binutils redhat.binutils-cvs
redhat.c++-embedded redhat.crossgcc redhat.cgen redhat.cgen-prs
redhat.cgen-cvs redhat.cygwin redhat.cygwin-xfree redhat.cygwin-announce
redhat.cygwin-xfree-announce redhat.cygwin-apps redhat.cygwin-patches
redhat.cygwin-developers redhat.cygwin-cvs redhat.cygwin-apps-cvs
redhat.docbook-tools-discuss redhat.docbook-tools-announce
redhat.docbook-tools-cvs redhat.docbook redhat.dssslist
redhat.sgml-tools redhat.docbook-apps redhat.ecos-announce
redhat.ecos-devel redhat.ecos-discuss redhat.ecos-maintainers
redhat.ecos-patches redhat.elix redhat.elix-announce redhat.gdb
redhat.gdb-announce redhat.gdb-testers redhat.gdb-testresults
redhat.gdb-patches redhat.gdb-cvs redhat.bug-gdb redhat.gdb-prs
redhat.libc-alpha redhat.libc-hacker redhat.bug-glibc redhat.glibc-cvs
redhat.glibc-linux redhat.bug-gnats redhat.gnats-devel
redhat.gnats-announce redhat.gnats-cvs redhat.gsl-discuss
redhat.gsl-announce redhat.gsl-cvs redhat.guile redhat.guile-emacs
redhat.guile-prs redhat.guile-gtk redhat.bug-guile redhat.guile-cvs
redhat.guile-emacs-cvs redhat.insight redhat.insight-announce
redhat.insight-prs redhat.installshell redhat.inti redhat.kawa
redhat.libffi-discuss redhat.libffi-announce redhat.libstdc++
redhat.libstdc++-cvs redhat.libstdc++-prs redhat.mauve-discuss
redhat.mauve-announce redhat.newlib redhat.pthreads-win32 redhat.rhdb
redhat.rhdb-announce redhat.rhug-rhats redhat.rpm2html-cvs
redhat.rpm2html-prs redhat.rpm2html redhat.sid redhat.sid-announce
redhat.sid-cvs redhat.sourcenav redhat.sourcenav-announce
redhat.sourcenav-prs redhat.win32-x11 redhat.xconq7
redhat.xconq-announce redhat.xconq-cvs

@item @uref{http://www.tech-arts.co.jp/macosx/, MacOSX JP Mailing List}
macosx-jp.macosx-jp macosx-jp.macosx-dev-jp
macosx-jp.macosx-ws-jp macosx-jp.webobjects-jp

@item @uref{http://sourceforge.jp, SourceForge JP}
SourceForge JP に保存されているメーリングリストのすべての公開書庫を閲覧
できます。閲覧したいグループを
変数 @code{shimbun-sourceforge-jp-mailing-lists} に登録してください。

@item @uref{http://heimat.jp/~nakaji/elips/, Elips Mailing List}
elips.elips

@item @uref{http://lists.squeakfoundation.org/pipermail/squeak-ja/, Squeak-ja Mailing List}
squeak-ja.main

@item @uref{http://www.sra.co.jp/smalltalk/SML/archives/, Smalltalkers' Salon Mailing List}
sml.main

@item @uref{http://lists.squeakfoundation.org/pipermail/squeak-dev/, Squeak-dev Mailing List}
squeak-dev.main

@item @uref{http://www.mail-archive.com/plucker-*@@rubberchicken.org/maillist.html, Plucker Mailing List}
plucker.announce plucker.list plucker.dev

@item @uref{http://www.pilot-link.org/pipermail/, pilot-link Mailing List}
pilot-link.announce pilot-link.devel pilot-link.general
pilot-link.unix-ng

@item @uref{http://www.thedotin.net/maillists/coldsync-hackers/maillist.html, Coldsync Mailing List}
coldsync.main

@item @uref{http://www.jpilot.org/pipermail/jpilot/, J-Pilot Mailing List}
jpilot.main

@item @uref{http://lists.gnu-designs.com/pipermail/pilot-mailsync/, pilot-mailsync Mailing List}
pilot-mailsync.main

@item @uref{http://www.mozilla.gr.jp/ml/logs/moz-users/, Mozilla Users Mailing List in Japan}
mozilla-jp.users

なお、@samp{mozilla-jp.users} はアドレス回収ロボット対策
で userid と passowrd を求められるので @file{~/.w3m/passwd} に

@example
machine www.mozilla.gr.jp
realm Please Enter mozilla mozilla
login mozilla
passwd mozilla
@end example

@noindent
と書き、上記ファイルから group, others のアクセス権を取り除いておく必要
があります。

@item @uref{http://www.tdiary.org/, tDiary Developers Mailing List in Japan}
tdiary-ml.devel tdiary-ml.theme

@item @uref{http://arch.bluegate.org/mailman/listinfo, arch.bluegate.org Mailing Lists}
arch-bluegate.subversion-jp arch-bluegate.arch-jp arch-bluegate.mailman
arch-bluegate.viewarch

@item @uref{http://www.tigris.org/, Tigris.org:Open Source Software Engineering}
Tigris.org に保存されているすべてのメーリングリストを閲覧できます。閲覧
したいグループを変数 @code{shimbun-tigris-group-alist} に登録してくださ
い。グループ名は tigris.<project>.<mailinglist> になります。

@item @uref{http://www.scipy.net/mailman/listinfo, www.SciPy.net Mailing Lists}
scipy.astropy scipy.ipython-user scipy.ipython-dev scipy.scipy-user
scipy.scipy-dev scipy.scipy-testlog scipy.scipy-chaco scipy.scipy-cvs

@item @uref{http://lists.chise.org/mailman/listinfo, lists.chise.org Mailing Lists}
chise.apel chise.chise chise.emacs-mime

@end table

@node Sport Sites Supported by Shimbun
@subsection スポーツ

@samp{Shimbun} ライブラリが対応しているスポーツ関係のサイトです。

@table @asis
@item @uref{http://www.makanai.com/, makanai}
makanai.f1news

@item @uref{http://www.ksky.ne.jp/~tahara/f1/, F1 ファン}
f1fan.news

@item @uref{http://forum.nifty.com/fmotor/, @@nifty:モータースポーツ}
msports-nifty.F1 msports-nifty.IRL msports-nifty.WRC
msports-nifty.Europe msports-nifty.USA

@item @uref{http://sports.yahoo.co.jp/, Yahoo!スポーツ}
yahoo-sports.F1 yahoo-sports.baseball yahoo-sports.keiba
yahoo-sports.NBA yahoo-sports.NFL yahoo-sports.rugby
@end table

ただし、Emacs-21.4 またはそれ以前の版で @@nifty: モータースポーツを閲覧
するには、Mule-UCS (@pxref{Other Requirements}) が必要です。

@node Misc Sites Supported by Shimbun
@subsection その他

@samp{Shimbun} ライブラリの対応しているその他のサイトです。掲示板や、連
載記事を主体とするようなサイトが含まれています。

@table @asis
@item @uref{http://www.tcup.com/, Tea Cup 掲示板}
Tea Cup Communication によって提供される、様々な掲示板を講読することがで
きます。デフォルトでは、以下の三つの掲示板が用意されています。

@table @asis
@item tcup.meadow
@uref{http://www66.tcup.com/6629/yutopia.html, Meadow 掲示板}

@item tcup.skk
@uref{http://www67.tcup.com/6718/yutopia.html, SKK 掲示板}

@item tcup.yutopia
@uref{http://www61.tcup.com/6116/yutopia.html, ゆうτοπια掲示板}
@end table

新たに掲示板をリストに追加するには、それらの名前と URL を調べて、
@code{shimbun-tcup-group-alist} を変更してください。二つの掲示
板 @samp{foo} と @samp{bar} を追加する例です。

@lisp
(eval-after-load "sb-tcup"
  '(setq shimbun-tcup-group-alist
         (append
          '(("foo" "http://MMMM.teacup.com/foo/bbs2")
            ("bar" "http://NNNN.teacup.com/bar/bbs2"))
          shimbun-tcup-group-alist)))
@end lisp

@item 2ch
グループ名と URL を調べて、以下のように設定して使います。

@lisp
(setq shimbun-2ch-group-alist
      '(("Meadow" .
         "http://pc.2ch.net/test/read.cgi/software/1005469775")
        ("emacs-w3m" .
         "http://pc.2ch.net/test/read.cgi/unix/1013710106")))
@end lisp

@item @uref{http://www.math.tohoku.ac.jp/~kuroki/support/, CGI_Board を使っている掲示板}

CGI_Board を使っている掲示板の URL を調べて、
@code{shimbun-cgi-board-group-alist} に適切な設定を加えて使います。

@item HNS による日記
閲覧したい日記の URL を調べて、以下のように設定して使います。

@lisp
(setq shimbun-hns-group-alist
      '(("arisawa"                            ;; グループ名
         "http://nijino.homelinux.net/diary/" ;; URL
         "ari@@mbf.sphere.ne.jp")              ;; メールアドレス
        ("miyoshi"
         "http://www.be.wakwak.com/cgi-bin/sbox/~miyoshi/hns/"
         "miyoshi@@meadowy.org")))
@end lisp

@item tDiary による日記
閲覧したい日記の URL を調べて、以下のように設定して使います。

@lisp
(setq shimbun-tdiary-group-alist
      '(("henahena"                          ;; グループ名
         "http://www.fan.gr.jp/~ring/d/")    ;; URL
        ("yoichi"
         "http://yoichi.geiin.org/d/")))
@end lisp

@item @uref{http://plaza.rakuten.co.jp/, 楽天広場} の日記
閲覧したい日記を開設している人の楽天 ID とメールアドレスを調べて、以下の
ように設定して使います。

@lisp
(setq shimbun-rakuten-group-alist
      '(("rakuten-id" . "email-address")))
@end lisp

@item @uref{http://www.emacswiki.org/, EmacsWiKi}
emacswiki.changes emacswiki.diff

@item コンテンツを含む RSS フィード
閲覧したい掲載コンテンツが含まれるような RSS フィードを調べて、
@code{shimbun-rss-hash-group-path-alist} 変数を以下のように設定して使い
ます。バックエンド名は @samp{rss-hash} です。主に個人のブログなどが対象
になるでしょう。

パラメータはグループ名、RSS アドレス、メールタイプ (@code{t} で html)、
整形時の開始正規表現、整形時の終了正規表現となります。グループ名、RSS ア
ドレス以外はオプションです。

以下はサンプルです。この場合は @samp{rss-hash.sampleblog1} およ
び @samp{rss-hash.sampleblog2} として閲覧できます。

@lisp
(setq shimbun-rss-hash-group-path-alist
      '(;; text mail
        ("sampleblog1" "http://www.example.com/index1.rss")
        ;; html mail
        ("sampleblog2" "http://www.example.com/index2.rss"
         t "</title>" "<!-- start ads")))
@end lisp

@item コンテンツを含む Atom フィード
前項 (コンテンツを含む RSS フィード) と同様に、掲載されたコンテンツを含
む Atom フィードも閲覧することができます。それを行なうには、
shimbun-rss-hash-* と同様のやり方で変
数 @code{shimbun-atom-hash-group-path-alist} (ひょっとする
と @code{shimbun-atom-hash-x-face-alist} なども) を設定してください。バッ
クエンド名は @samp{atom-hash} です。

@item コンテンツのない RSS フィード
多くのフィードには記事の完全なコンテンツが無いか、またはいぢわるに小出し
にします。サイトがちゃんと記事を書かずに、そのようなフィードしか提供しな
い場合でも、多くの場合 @samp{rss-blogs} を使って切り抜けることができます。
設定は @samp{rss-hash} のものと似ています。例を示しましょう:

@lisp
(setq shimbun-rss-blogs-group-url-regexp
  '(("first-feed" "http://example/wordpressfeed")
    ("second-feed" "http://example/somefeed"
     "<div name=\"content\">" "<div name=\"comments\">")
    ("third-feed" "http://example/someotherfeed" 'none)))
@end lisp

最初の二つのアイテムはフィードの名前と URL です。そのフィードが指し示
す HTML ページにおいて、実際のコンテンツの始めと終りを探すための二つの正
規表現を、任意で与えることができます。そこで単に @code{none} というシン
ボルを使うと、いかなる濾過も行なわれません。

加えて、@samp{rss-blogs} はいくつかのポピュラーなブログ・エンジンを自動
的に扱うことができます。すなわち Google の Blogger/Blogspot (コメント・
フィードを含みます)、WordPress、および TypePad です。フィードを取り寄せ
るサイトがそれらの一つを使っているなら (@code{generator} タグを眺めれば
わかります)、単に任意のパラメータを省略するだけで、自動的にコンテンツを
切り出そうとするでしょう。

@item Wiki コンテンツ
閲覧したい Wiki の URL を調べて、以下のように設定して使います。
PukiWiki と Hiki に対応しています。もし、各内側のリストの 4 番目、5 番目
の要素の正規表現に何を指定して良いか分からないときは、@code{nil} を指定
すれば良いでしょう。記事の取得時に整形が行われず、ただページ全体が見える
だけです。

@lisp
(setq shimbun-wiki-group-alist
      '(("pukiwiki" ;; グループ名
         "http://pukiwiki.org/index.php?cmd=rss10" ;; URL
         "webmaster@@pukiwiki.org" ;; メールアドレス
         nil ;; X-Face
         "\n<h3 id=\"" ;; contents の start を示す regexp
         "</address>") ;; contents の end を示す regexp
        ("hiki"
         "http://www.namaraii.com/hiki/?c=rss"
         "webmaster@@fdiary.net"
         nil
         "<div class=\"section\">"
         "<div class=\"sidebar\">")
        ("apollo"
         "http://wiki.fdiary.net/apollo/?c=rss"
         "moriq@@moriq.com"
         nil
         "<div class=\"section\">"
         "<div class=\"sidebar\">")
        ))
@end lisp

@item @uref{http://auctions.yahoo.co.jp/, Yahoo!オークション}
閲覧したいカテゴリや検索結果の URL を調べて、以下のように設定して使いま
す。

@lisp
(setq shimbun-yahoo-auctions-group-alist
      '(("mp3player" . "http://list3.auctions.yahoo.co.jp/jp/show/catleaf_rss?category=2084039708&alocale=0jp")
        ("iPod" . "http://search3.auctions.yahoo.co.jp/search_rss?p=iPod&auccat=2084039708&alocale=0jp&acc=jp")))
@end lisp

@item @uref{http://www.vinelinux.org/, VineLinux Errata}
vinelinux.errata.4x.i386 vinelinux.errata.4x.ppc
vinelinux.errata.3x.i386 vinelinux.errata.3x.ppc
vinelinux.errata.3x.alpha
vinelinux.errata.2x.i386 vinelinux.errata.2x.ppc
vinelinux.errata.2x.sparc vinelinux.errata.2x.alpha
vinelinux.errata.1x

@item @uref{http://www.kantei.go.jp/, 内閣ブログ/メールマガジン}
kantei.blog-en kantei.blog-ja kantei.blog-en.kan kantei.blog-ja.kan
kantei.m-magazine-cn.hatoyama kantei.m-magazine-kr.hatoyama
kantei.m-magazine-en.hatoyama kantei.m-magazine-ja.hatoyama
kantei.m-magazine-en.aso kantei.m-magazine-ja.aso
kantei.m-magazine-en.fukuda kantei.m-magazine-ja.fukuda
kantei.m-magazine-en.abe kantei.m-magazine-ja.abe
kantei.m-magazine-en.koizumi kantei.m-magazine-ja.koizumi
kantei.m-magazine

後方互換性のため @samp{kantei.m-magazine} も利用可能になっています。

@item @uref{http://www.jpo.go.jp/, 特許庁}
jpo.news jpo.revision jpo.lawguide jpo.details

@item @uref{http://www-6.ibm.com/jp/developerworks/, IBM developerWorks}
ibm-dev.autonomic ibm-dev.java ibm-dev.linux ibm-dev.opensource
ibm-dev.webservices ibm-dev.xml

@item @uref{http://www.pocketgames.jp/, Pocketgames}
pocketgames.news

@item @uref{http://www.wince.ne.jp/, Wincefan}
wincefan.news

@item @uref{http://www.palmfan.com/, PalmFan}
palmfan.news

@item @uref{http://homepage1.nifty.com/akiba/plat.html, 電脳街の現場レポート}
dennou.report

@item @uref{http://pcweb.mycom.co.jp/column/, PCWEB COLUMN Square}
pcweb-column.jsr pcweb-column.yume pcweb-column.hreceipe
pcweb-column.kita pcweb-column.shonanlife pcweb-column.kaden
pcweb-column.nemurenai pcweb-column.komono pcweb-column.js
pcweb-column.en pcweb-column.motherboard pcweb-column.svalley
pcweb-column.architecture pcweb-column.motorlife
pcweb-column.nihongoprog pcweb-column.objc pcweb-column.ide
pcweb-column.music pcweb-column.itsecurity pcweb-column.soundvisual
pcweb-column.osx pcweb-column.sopinion pcweb-column.ebook
pcweb-column.orerobo pcweb-column.zsh pcweb-column.rikei
pcweb-column.lifehack pcweb-column.world pcweb-column.guutara
pcweb-column.volt pcweb-column.textclean pcweb-column.person
pcweb-column.web20 pcweb-column.system

後方互換性のため、以下のアイテムも利用可能になっています。
pcweb-column.itshihonron pcweb-column.yetanother pcweb-column.asia
pcweb-column.benri pcweb-column.bytes pcweb-column.game
pcweb-column.hitech pcweb-column.java pcweb-column.jisakuparts
pcweb-column.scramble pcweb-column.toolexp pcweb-column.winvista
pcweb-column.winxp pcweb-column.interview pcweb-column.ityougo
pcweb-column.kimeuchi pcweb-column.stratesys pcweb-column.toyagain

@item @uref{http://tsuruo.dominohosting.biz/members/tsuruo/, ノーツ陳列館}
lotusex.news lotusex.library lotusex.operation lotusex.primer
lotusex.tips lotusex.practical lotusex.qanda lotusex.lounge
lotusex.bbs

@item @uref{http://www.atmarkit.co.jp, ＠ITフォーラム}
atmarkit.news atmarkit.fwin2k atmarkit.fdotnet atmarkit.fsys
atmarkit.fxml atmarkit.fdb atmarkit.flinux atmarkit.fnetwork
atmarkit.fjava atmarkit.fsecurity atmarkit.farc atmarkit.fbiz
atmarkit.fwcr atmarkit.jibun

@item @uref{http://www.matsusaka-u.ac.jp/~okumura/texfaq/qa/, TeX Q&A 掲示板}
texfaq.qanda

@item @uref{http://x51.org/, X51.org}
x51.anima x51.art x51.auction x51.blow x51.cabal x51.crime x51.disaster
x51.edge x51.enema x51.ghost x51.homme x51.info x51.life x51.love
x51.media x51.medical x51.military x51.northkorea x51.oparts x51.phallic
x51.psychics x51.religion x51.science x51.top x51.ufo x51.uma x51.xfiles

@item @uref{http://www.exconn.net/, eXperts Connection (eXConn)}
exconn.news

@item @uref{http://msdn.microsoft.com/, MSDN}
msdn.all msdn.netframework msdn.architecture msdn.asp.net msdn.data
msdn.longhorn msdn.mobility msdn.subscriptions msdn.msdntv msdn.office
msdn.security msdn.sql msdn.theshow msdn.vbasic msdn.vcsharp
msdn.visualc msdn.vfoxpro msdn.vjsharp msdn.vstudio msdn.vs2005
msdn.webservices msdn.embedded msdn.xml msdn.japan.msdn
msdn.japan.msdn-us

@item @uref{http://haiku-os.org/, Haiku OS}
haiku-os.news haiku-os.forums haiku-os.newsletters

@item @uref{http://www.ffii.org/, Foundation for a Free Information Infrastructure}
ffii.en.software-patents ffii.en.software-patents.ffii
ffii.en.information-infrastructure ffii.en.project
ffii.de.software-patente ffii.de.software-patente.ffii
ffii.de.informations-infrastruktur ffii.fr.brevets-logiciels
ffii.fr.brevets-logiciels.ffii ffii.nl.softwarepatenten
ffii.nl.softwarepatenten.ffii

@item @uref{http://yoshinori-kobayashi.com/, 小林よしのり公式サイト}
yoshirin.blog yoshirin.topics
@end table

@node Shimbun Basics
@section 新聞モジュールの作り方
@cindex @file{shimbun.el}

@samp{Shimbun} は emacs-w3m の付属ライブラリで、Gnus や Wanderlust、
Mew などの MUA を利用し、ウェブコンテンツをメールと同じユーザインターフェー
スで読むことを可能にするものです。ここでは @samp{shimbun} モジュールを作
成する典型的な方法を説明します。

@menu
* Overview::                    概略
* Getting web page and header information::  ウェブページのソース及びヘッダ情報を取得する
* Displaying an article::       記事の表示
* Inheriting shimbun module::   shimbun モジュールの継承
* Making text/plain articles::  text/plain の記事を作るには
* Zenkaku to hankaku conversion:: 全角文字を半角文字に変換する
* Coding convention of Shimbun:: コーディング規約
@end menu

@node Overview
@subsection 概略

@uref{http://www.foobar.net} のコンテンツを閲覧する新た
な @samp{shimbun} モジュール @samp{foobar} を作成するとして、まず最初に
貴方がしなればならないことは、@file{sb-foobar.el} の冒頭に

@lisp
(require 'shimbun)
(luna-define-class shimbun-foobar (shimbun) ())
@end lisp

@noindent
のような宣言を入れておくことです。徐々に分かると思いますので、今はおまじ
ないと思っておいてください。注意すべきことは、@samp{shimbun} モジュール
を入れるファイル名の @file{sb-foobar.el} の @samp{foobar} の名前と、
@code{luna-define-class}  の第一引数
の @code{shimbun-foobar} の @samp{foobar} の名前は合わせておく必要がある
ことです。

@samp{Shimbun} モジュール @samp{shimbun-foobar} がこなすべき仕事は大き
く四つあります (あなたが Gnus のユーザならば、「フォルダ」を「グループ」
に読み換えてください):

@enumerate
@item
MUA が @samp{foobar} フォルダを開いたら、記事の標題などをリストアップす
るために @uref{http://www.foobar.net} からウェブページのソースを取得する
こと。

@item
取得したウェブページのソースに対し、記事の見出しに必要ないくつかの情報と
ともに取得して、@code{headers} というリストに代入して返すこと。

@item
MUA が @samp{foobar} フォルダの記事の閲覧を要求したら、実際の記事内容を
記載したウェブページのソースを (例え
ば @uref{http://www.foobar.net/030530.html} から) 取得すること。

@item
@uref{http://www.foobar.net/030530.html} から取得したウェブページのソー
スを、必要に応じ閲覧しやすいように整形すること。
@end enumerate

@noindent
最初の作業は @file{shimbun.el} の @code{shimbun-headers} が、二番目の作
業は @code{shimbun-get-headers} が担当します。そして三番目の作業
は @code{shimbun-article} が、最後の作業
は @code{shimbun-make-contents} が担当します。

@file{shimbun.el} の中をご覧ください。@code{defun} による関数定義の他に、
見慣れない @code{luna-define-generic}, @code{luna-define-method} などの
宣言がありますよね。どうも使用方法は @code{defun} のそれと似ているようで
す。そして、前者は何だか doc-string だけを書いてあるようで、同名のシンボ
ルについて後者によって再度宣言しているように見えます。更に、あるシンボル
について、@code{luna-define-generic} の宣言だけがあって、
@code{luna-define-method} の宣言がないものもあります。

実は、@file{shimbun.el} 及び各 @samp{shimbun} モジュールは、
Emacs Lisp にてオブジェクト指向プログラミングを可能とする @file{luna.el}
@footnote{@acronym{FLIM} に含まれています。} を利用して書かれています。

@file{shimbun.el} の中では、@code{shimbun-headers} があ
る URL のウェブページのソースを取得し、@code{shimbun-get-headers} がその
ウェブページのソースから標題などを抜き出し@dots{} という前述の手順がハー
ドコーディングされています。しかし、決め打ちするだけでは、千差万別のウェ
ブページのソースを、その構造に合わせて変化させることができません。

そこで @code{luna} により、メソッドがコールされる手順だけ決めておいて、
@samp{shimbun} により変化させるべきメソッドの実体定義を
各 @samp{shimbun} モジュールに任せているのです。各 @samp{shimbun} モジュー
ルで共通で使えそうなメソッドは @file{shimbun.el} の中にメソッドの実体も
定義してありますが、それすら各 @samp{shimbun} モジュールにおいて再定義を
することが可能です。

もうお分かりのように、@code{luna-define-generic} は、言わば殼だけの宣言、
@code{luna-define-method} は @samp{shimbun} モジュール毎に作成できる実体
の宣言。そして @file{sb-foobar.el} の冒頭に入れ
た @code{luna-define-class} での宣言は、@code{luna} 上での新たなクラスの
宣言だったわけです。

@node Getting web page and header information
@subsection ウェブページのソース及びヘッダ情報を取得する

まず記事見出しを取得する対象となるウェブページを決めることから始めます。
フレーム表示されている場合は、フレームの中で必要なページだけを単独で指し
示す URL を特定するべきです。特定できたら、新たに作成す
る @samp{shimbun} モジュールの中で @code{luna-define-method} を使い、
@code{shimbun-index-url} の定義を作成しましょう。単純に URL を返すように
すれば良いですよ。後で説明しますので、変
数 @code{shimbun-foobar-groups} も用意しておきましょ
う@footnote{@samp{Shimbun} モジュール一つにつき、最低でも一つのグルー
プが必要です。}。

@lisp
(defvar shimbun-foobar-url "http://www.foobar.net")

(luna-define-method shimbun-index-url ((shimbun shimbun-foobar))
  shimbun-foobar-url)

(defvar shimbun-foobar-groups '("news"))
@end lisp

@code{shimbun-headers} メソッドは @file{shimbun.el} の中に既に定義されて
いますから、@file{sb-foobar.el} で @code{shimbun-index-url} メソッドの定
義を作成すればウェブページのソースの取得ができるようになります。
@code{shimbun-headers} はウェブページのソースを取得した後、
@code{shimbun-get-headers} メソッドを呼び、ヘッダ情報の収集に入ります。
@file{shimbun.el} の中には @code{shimbun-get-headers} のメソッド宣言があ
りせんから、@file{sb-foobar.el} の中で独自にメソッドを作成しなければなり
ません。

@file{sb-foobar.el} に @code{shimbun-get-headers} のメソッドを作成するた
めに、取得したページのソースを分析しましょう。どのような正規表現で記事の
ヘッダ情報を収集するかを検討します。記事の見出しとして特に必要な情報は、
標題、日付、作成者、その記事の URL、そして @code{message-id} です。これ
らの情報は、それぞれの MUA において、Subject, Date, From, Xref,
Message-ID として表示されます。例えば、下記の

@example
<a href="030530.html">5月30日の話題(投稿者-みきお &lt;foo@@bar.net&gt;)</a>
@end example

@noindent
のような行を集めて記事にしたいのでしたら、

@example
"<a href=\"\\(\\([0-9][0-9][0-9][0-9]\\)[0-9][0-9]\\.html\\)\">\\([^<(]+\\)(投稿者-\\([^<]+\\))<\/a>"
@end example

@noindent
のような正規表現になるでしょう。そして記事の Xref の値は
@w{@code{(match-string 1)}} で取得できます、Date は
@w{@code{(match-string 2)}} の値を加工すれば良いでしょう。Subject は
@w{@code{(match-string 3)}} で取得できますね。From は
@w{@code{(match-string 4)}} を加工すれば良いでしょう。これらの値
は MUA で見易いように更に加工しても構いません。

上記のように記事の URL が相対パス表示されている場合は、
@code{shimbun-expand-url} を使用し、絶対パス表示に変更してからヘッダに収
めましょう。記事の URL がヘッダの URL と同じ、つまり記事毎に
個別に URL を持たない構造のウェブページもあります。この場合は少しやっか
いで、ヘッダ情報取得の段階で、記事の内容も取得しておき、Emacs のメモリに
収めておく必要があります。具体的には @file{sb-palmfan.el},
@file{sb-dennou.el}, @file{sb-tcup.el} の @file{shimbun-headers} メソッ
ドの定義を参照してください。

ウェブページによっては Date が特定できないものがあります。そういう場合は
無理に特定せずとも @code{""} を入れておけば OK です。記事の内容を見て初
めて Date が特定できるなら、@code{shimbun-make-contents} メソッドの中で
改めてヘッダに Date の情報を入れても OK です。それから、From を決め打ち
しても良い場合もあります。

@code{message-id} の作成には注意を要します。一部の記事が読めなかったりし
ますので@footnote{shimbun の一部の記事が読めないだけならまだしも、下手
に @code{message-id} を作成すると、貴方が受領する大事なメールのそれとか
ち合ってしまい、そのメールが読めなくなる可能性すらあります。}、必
ず単一性 (uniqueness) を保証しなければなりません。日付やドメイン、そのペー
ジの URL の一部を使って文字列を生成することで単一性を確保しましょう。そ
の他、@code{message-id} の一部に必ず @samp{@@} を含めるようにし、逆
に @samp{:} は含まないようにしましょう。このルールを守らないとインライン
画像がきちんと出力されませんよ。詳しくは RFC2387, RFC822 を参照してくだ
さい。

苦労して取得したこれらの情報は @code{shimbun-create-header} という関数を
利用してヘッダに収めます。

結局 @file{sb-foobar.el} の中での @code{shimbun-get-headers} の定義の骨
組みはこんな風になりますね。

@lisp
(luna-define-method shimbun-get-headers ((shimbun shimbun-foobar)
                                         &optional range)
  (let ((regexp "....")
        subject from date id url headers)
    ...
    (catch 'stop
      (while (re-search-forward regexp nil t nil)
        ...
        (when (shimbun-search-id shimbun id)
          (throw 'stop nil))
        (push (shimbun-create-header
               0 subject from date id "" 0 0 url)
              headers)))
    headers))
@end lisp

@noindent
なお、このメソッドの中では @code{shimbun} という一時変数で、
@samp{shimbun} モジュール @samp{shimbun-foobar} のインスタンスにアクセス
できます。

ところで、先程保留にした変数 @code{shimbun-foobar-groups} について説明し
ましょう。

仮に @w{@uref{http://www.foobar.net}} の中に読みたい記事グループが二つあっ
て、それぞれの記事のヘッダ情報を得るウェブページが別々の場所にあったとし
ましょう。@w{@uref{http://www.foobar.net/whatsnew/index.hmtl}} にサイト
の更新情報が、@w{@uref{http://www.foobar.net/ml/index.html}} に ML の記
事アーカイブの一覧があるときなどです。こういう場合は、@samp{shimbun} モ
ジュール @code{foobar} のグループとして、@code{foobar.whatsnew},
@samp{foobar.ml} としてアクセスできると便利ですよね。そういう場合は下記
のようにしてみましょう。

@lisp
(defvar shimbun-foobar-url "http://www.foobar.net")

(defvar shimbun-foobar-group-path-alist
  '(("whatsnew" . "/whatsnew/index.html")
    ("ml" . "/ml/index.html")))

(defvar shimbun-foobar-groups
  (mapcar 'car shimbun-foobar-group-path-alist))

(luna-define-method shimbun-index-url ((shimbun shimbun-foobar))
  (concat shimbun-foobar-url
          (cdr (assoc (shimbun-current-group-internal shimbun)
                      shimbun-foobar-group-path-alist))))
@end lisp

@noindent
現在ユーザがアクセスしているグループに
は @code{shimbun-current-group-internal} を使えば分かります。
@code{shimbun-get-headers} などでもグループが違えば作業内容が違ってくる
可能性もありますね。

なお、@samp{shimbun} モジュール一つにつき、最低でも一つのグループが必要
です。グループの名前の決め方に特に決まりはありませんが、グループ名に悩ん
だら、@samp{news} とか @samp{main} などと付けておきましょう。

@node Displaying an article
@subsection 記事の表示

@file{shimbun.el} に定義された @code{shimbun-article} メソッドは、ヘッダ
情報から Xref を取り出し、その URL のウェブページのソースを取得した後に、
そのソースを入れたワーキングバッファの中
で @code{shimbun-make-contents} を呼びます。具体的な記事の加工
は @code{shimbun-make-contents} の仕事です。

記事となるウェブページのソースが、どばっとワーキングバッファにぶちまけら
れていると想像してください。@file{shimbun.el} の標準
の @code{shimbun-make-contents} は、そのバッファの先頭にまずヘッダ情報を
挿入し、その直後に @samp{<html>} や @samp{<body>} などを、また、バッファ
の末尾に @samp{</body>}, @samp{</html>} を挿入してくれます。そうやっ
て HTML メールとして表示させるのです。

@quotation
HTML の記事だけでなく、@samp{text/plain} 形式の記事が生成されるようにす
ることもできます。@xref{Making text/plain articles}.
@end quotation

記事を何も加工する必要がなければ @file{sb-foobar.el} の中で
は @code{shimbun-make-contents} について新たに定義する必要はありません。

単純に記事の前後に捨てたい部分があるだけならば、
@code{shimbun-foobar-content-start},
@code{shimbun-foobar-content-end} に捨てたい部分を検索可能な正規表現を指
定しておきましょう。

@lisp
(defvar shimbun-foobar-content-start "^<body>$")
(defvar shimbun-foobar-content-end "^<\/body>$")
@end lisp

@noindent
標準の @code{shimbun-make-contents} から
呼び出された @code{shimbun-clear-contents} は、これらの正規表現を利用し
て、@code{point-min} から @code{shimbun-foobar-content-start} まで、
@code{shimbun-foobar-content-end} から @code{point-max} までを切り捨てて
くれますよ。但し、これら二つのマッチはいずれかが成功しないと切り捨ては行
われませんので注意が必要です。

広告などの不要な情報があって、それを細かく検索して捨てたい場合は、
@file{sb-foobar.el} の中で独自の @code{shimbun-clear-contents} を定義し
ておきます。

@lisp
(luna-define-method shimbun-clear-contents :around ((shimbun shimbun-foobar)
                                                    header)
  ;; cleaning up
  (while (re-search-forward "..." nil t nil)
    (delete-region (match-beginning 0) (match-end 0)))
  (luna-call-next-method))
@end lisp

@noindent
より具体的な方法は、@file{sb-ibm-dev.el} が参考になるかもしれません。

先程、@ref{Getting web page and header information} の節で、記事毎に個
別に URL を持たない構造のウェブページの場合、ヘッダ情報取得の段階で、記
事の内容も取得しておき、Emacs のメモリに収めておく必要があると申し上げま
した。この場合、@file{shimbun-article} では上記のような Xref 情報から
の web page の取得は必要になりませんので、ただ Emacs のメモリから取り出
して、バッファに整形して挿入すれば足ります。具体的に
は @file{sb-palmfan.el}, @file{sb-dennou.el},
@file{sb-tcup.el} の @file{shimbun-article} メソッドの定義を参照してくだ
さい。

@node Inheriting shimbun module
@subsection Shimbun モジュールの継承

メーリングリストマネージャ (アーカイバ) として有名なものがいくつかありま
す。

@itemize @bullet
@item Mailman
@noindent
The GNU Mailing List Manager. 以前は @samp{pipermail} と呼ばれていました。
詳細は @uref{http://www.gnu.org/software/mailman/index.html} をご覧くだ
さい。

@item MHonArc
詳細は @uref{http://www.oac.uci.edu/indiv/ehood/mhonarc.html} をご覧くだ
さい。

@item fml
fml mailing list server/manager.  詳細
は @uref{http://www.fml.org/software/fml/} をご覧ください。

@item mailarc
詳細は @uref{http://cvs.namazu.org/mailarc/} をご覧ください。
@end itemize

貴方が @ref{Getting web page and header information} のステップで取得し
たウェブページのソースを分析しているときに、そのソースの中にこれらメーリ
ングリストマネージャの名前を見つけたら@footnote{ウェブページのソースの中
にこれらメーリングリストマネージャの名前が表示されていることが多いです。}、
それはすごくラッキーなことです。@file{sb-mailman.el},
@file{sb-mhonarc.el}, @file{sb-fml.el}, @file{sb-mailarc.el} に既
に @code{shimbun-get-headers} などの必要なメソッドが定義されています。こ
れらを利用してなお足りない部分だけの差分プログラミングをすれば、貴方
の @file{sb-foobar.el} は早速動きます。

例えば @file{sb-mailman.el} を利用するなら @file{sb-foobar.el} の冒頭は、

@lisp
(require 'sb-mailman)
(luna-define-class shimbun-foobar (shimbun-mailman) ())
@end lisp

@noindent
こんな風になります。これで @samp{shimbun} モジュー
ル @samp{shimbun-foobar} は @code{shimbun-mailman} クラスを継承
し@footnote{つまり @code{shimbun-mailman} クラスが親クラスになります。}、
@samp{shimbun-foobar} の中では、@file{sb-mailman.el} の中で定義されてい
るメソッドが標準で使用されることとなります (更にメソッドの一部を上書きす
ることも可能です)。

@file{sb-mailman.el} を実際に利用したサンプルとして、
@file{sb-pilot-mailsync.el} などをご覧ください。如何に楽ができるかがお分
かりになるでしょう。

気を付けることが一つあるとすれば、これらのメーリングリストマネージャの中
には地域化 (localize) されて、例えば日付表示を日本語で行うように改造され
ているものがあることです。@file{sb-mailman.el}, @file{sb-mhonarc.el},
@file{sb-fml.el}, @file{sb-mailarc.el} はいずれも標準の、英語版のものに
対応しています。これら地域化されたメーリングリストマネージャを利用してい
るウェブサイトを @samp{shimbun} で読みたいときは、いくつかのメソッドを上
書きしなければならないかもしれません。

@node Making text/plain articles
@subsection text/plain の記事を作るには

たとえ MUA が HTML の記事を読むことができるように emacs-w3m によって強化
されていても、いくつかの場合には @samp{text/plain} の記事が便利なことも
あるかもしれません。@samp{sb-foobar} モジュールに @samp{text/html} では
なくて @samp{text/plain} の記事を作らせるには、二つの方法があります。

@itemize @bullet
@item
一つは @samp{sb-foobar} モジュールに @samp{sb-text} モジュールを継承させ
る (@pxref{Inheriting shimbun module}) ことです。以下
は @samp{sb-foobar} モジュールの冒頭に置くことができる例です。

@lisp
(require 'sb-text)
(luna-define-class shimbun-foobar (shimbun-text) ())
@end lisp

@samp{sb-text} モジュールは、@samp{text/plain} 形式で記事を生成す
る @code{shimbun-make-contents} メソッドを提供します。テキストだけの記事
を掲示するサイトを扱う @samp{shimbun} モジュールには、役に立つでしょう。

@item
もう一つは、変数 @code{shimbun-foobar-prefer-text-plain} を
非-@code{nil} に設定することです。これは @code{shimbun-make-contents} メ
ソッドに、@samp{text/plain} 形式で記事を生成させます (実際には、それ
は @samp{sb-text} モジュールが提供する関数を使います)。これは、デフォル
トの @code{shimbun-make-contents} を継承するモジュールだけに効果があるこ
とに注意してください (特に @samp{sb-text} モジュールを継承するモジュール
は、影響されません)。この方式の利点は、ユーザが簡単
に @samp{text/plain} の記事と @samp{text/html} の記事を切り替えることが
できることです。

それが未定義である場合、変数 @code{shimbun-foobar-prefer-text-plain} の
デフォルト値は @code{nil} です。したがって、@file{sb-asahi.el} およ
び @file{sb-yomiuri.el} 以外のあらゆる @samp{shimbun} モジュールにおいて、
そのデフォルト値は @code{nil} です。

加えて、web ページから意味のあるテキストを切り出すために、変
数 @code{shimbun-foobar-content-start} およ
び @code{shimbun-foobar-content-end} の代わりに、
@code{shimbun-foobar-text-content-start} およ
び @code{shimbun-foobar-text-content-end} を使うことができま
す (@pxref{Displaying an article})。前者が未定義だったら、それらの値はデ
フォルトで後者の値になります。
@end itemize

@noindent
どちらの方式を使うにしても、@samp{text/plain} の記事は、画像やリンクなど
を含むことができないことに注意してください。

@node Zenkaku to hankaku conversion
@subsection 全角文字を半角文字に変換する

「全角」または「全角文字」は、幅が広い日本語の文字を呼ぶための俗称です。
また「半角」は、通常の ASCII 文字のための対語です。少なくとも ASCII 文字
セットに対応する、全角文字の完全なセットがあります。

いくつかの日本のウェブサイトは全角文字を多用する傾向があり、それらの記事
は必ずしも読み易くないかもしれません。もしそう感じたら、それら全角の英数
字を半角に変換するこの機能を使うことができます。それに
は @code{shimbun-foobar-japanese-hankaku} 変数を @code{t} に設定してくだ
さい。ここで @code{foobar} は、新聞の記事を講読するサーバー名です。つま
り、サーバー毎にそうしなければならないということです。

全角から半角への変換を記事のボディだけで行なわせたいならば、@code{t} の
代わりに値 @code{body} を使ってください。逆に値 @code{header} また
は @code{subject} は、サブジェクトだけでそれを行なうことを指定します。

@node Coding convention of Shimbun
@subsection Shimbun ライブラリのコーディング規約

@itemize @bullet
@item
@file{shimbun.el} では、emacs-w3m の関数を@emph{自由に}使って良い。

@item
@file{sb-*.el} では、これまでと同様に emacs-w3m の関数を直接呼び出すこと
はしない。@file{sb-*.el} で必要になる emacs-w3m の関数について
は @file{shimbun.el} にスタブを用意する。

@item
SpeedBar で利用されているファイル名は避けなければならない。
@samp{speedbar-0.14beta4} で用いられているファイル名を以下に示す。

@multitable @columnfractions .2 .2 .2 .2
@item sb-ant.el @tab sb-html.el @tab sb-info.el @tab sb-texinfo.el
@item sb-gud.el @tab sb-image.el @tab sb-rmail.el @tab sb-w3.el
@end multitable

@item
参照している WEB サーバの URI を連想させるようなファイル名を選ぶべきであ
る。ただし、曖昧にならない範囲で、国別コード (Ex. jp,de,uk,etc) や、組織
コード (Ex. edu,com,org,net,etc)、余分な部分 (Ex. www) を取り除いても良
い。

@item
グループ名には USENET に似た形式のものを選ぶべきである。すなわち、グルー
プ名には小文字が好まれる。また、グループの階層構造を表すための区切り文字
としては、ピリオド (.) が好まれる。
@end itemize

@node Tips
@chapter Emacs-w3m を使う洒落た小物たち
@cindex Tips

他の Emacs の応用機能とともに emacs-w3m を便利に使うためのヒント集です。

@itemize @bullet
@item browse-url

@code{browse-url} の機能とともに emacs-w3m を使うことができます。例えば、
以下の行を @file{~/.emacs} ファイルに入れてください:

@lisp
(setq browse-url-browser-function 'w3m-browse-url)
(global-set-key "\C-xm" 'browse-url-at-point)
@end lisp

こうすることによって、Emacs のどのバッファでも、URL のような文字列の上
で @w{@kbd{C-x m}} キーをタイプすると、emacs-w3m が起動されます。加えて、
@w{@kbd{C-c C-v}} キーをタイプすることによって、まさに編集中の HTML ファ
イルを emacs-w3m で下見 (preview) することができます (HTML ファイルの編
集に、Emacs と @code{html-mode} メジャーモードを使う必要があります)。

Emacs-w3m のバッファにいるときに、@w{@kbd{C-x m}} キーをタイプすることに
よって、emacs-w3m の代わりに他のウェブブラウザを使いたい場合は (そんなこ
とをしたい人がいるのかな?)、以下のアドバイスを @file{~/.emacs} ファイル
に加えてください:

@lisp
(defadvice browse-url-at-point
  (around change-browse-url-browser-function activate)
  "Use Netscape only when it is invoked in an emacs-w3m buffer."
  (let ((browse-url-browser-function
         (if (eq major-mode 'w3m-mode)
             'browse-url-netscape
           'w3m-browse-url)))
    ad-do-it))
@end lisp

@item dired

@code{dired} のバッファで @w{@kbd{C-x m}} キーをタイプすることによって、
emacs-w3m を使って HTML ファイルを閲覧することができます。
@file{~/.emacs} ファイルで、以下の設定を使ってください:

@lisp
(eval-after-load "dired"
  '(define-key dired-mode-map "\C-xm" 'dired-w3m-find-file))

(defun dired-w3m-find-file ()
  (interactive)
  (require 'w3m)
  (let ((file (dired-get-filename)))
    (if (y-or-n-p (format "Use emacs-w3m to browse %s? "
                          (file-name-nondirectory file)))
        (w3m-find-file file))))
@end lisp

@item hnf-mode

ハイパー日記システムと emacs-w3m を使って、最新の日記を見ることができま
す。以下の行を @file{~/.emacs} ファイルに入れて、@code{hnf-mode} のバッ
ファで @w{@kbd{C-c C-b}} キーをタイプしてください:

@lisp
(defun w3m-hnf-browse-url-w3m (url &optional new-window)
  (interactive (browse-url-interactive-arg "URL: "))
  (save-selected-window
    (pop-to-buffer (get-buffer-create "*w3m*"))
    (w3m-browse-url url new-window)))
(setq hnf-browse-url-browser-function #'w3m-hnf-browse-url-w3m)
@end lisp

@item Gnus

あなたが Gnus のユーザで、この項がこの Info で初めて読むベージであるのな
らば、あなたは入り口を間違えましたね。最初に @ref{Hooking into MUAs} を
見てください。

デフォルトでは、Gnus は例えば @code{gnus-treat-strip-banner} のよう
な treatment 変数を @samp{text/html} パートに適用しません。自動的に行な
わせるには二つの方法があります:

@lisp
;; すべての treatment を text/html パートに適用する。
(eval-after-load "gnus-art"
  '(add-to-list 'gnus-article-treat-types "text/html"))
@end lisp

@lisp
;; 特定の treatment を text/html パートに適用する。
(setq gnus-treat-strip-banner '(or t (typep "text/html")))
@end lisp

詳しいことは @xref{Customizing Articles, ,記事のカスタマイズ, gnus-ja,
The Gnus Manual}, を見てください。

加えて、以下の実験的なコードは @samp{multipart/related} な絵を見るための
ものです。表示される場所に少々難がありますが。

@lisp
(eval-after-load "gnus-art"
  '(or (assoc "multipart/related" gnus-mime-multipart-functions)
       (setq gnus-mime-multipart-functions
             (cons
              (cons
               "multipart/related"
               (byte-compile
                (lambda (handle)
                  (gnus-mime-display-mixed (cdr handle)))))
              gnus-mime-multipart-functions))))
@end lisp

HTML メールを読むために @code{shr} を使うと、それはメールの中の複数
の HTML パートの間にあるページ区切り (つまり ~L) を消してしまいます。以
下の advice はそれらのページ区切りを (元々なくても) 追加するための例です。
新聞 (@pxref{Shimbun Library}) を読むとき役に立つかもしれません:

@lisp
(defadvice gnus-mime-display-mixed (around add-page-delimiter
                                           (handles) activate)
  "Add page delimiters to the beginning of succeeding html parts."
  (if (eq mm-text-html-renderer 'shr)
      (progn
        (gnus-mime-display-part (pop handles))
        (while handles
          (if (equal (mm-handle-media-type (car handles))
                     "text/html")
              (insert "\C-l\n"))
          (gnus-mime-display-part (pop handles))))
    ad-do-it))
@end lisp

@item yahtml-mode

Emacs-w3m を使って、@code{yahtml-mode} でまさに編集中の HTML ファイル
を下見 (preview) することができます。例です:

@lisp
(defadvice yahtml-browse-html
  (around w3m-yahtml-browse-html activate compile)
  (w3m-goto-url (ad-get-arg 0) t))
@end lisp

@item jisx0213

Emacs では Mule-UCS パッケージに含まれている @code{jis0213} モジュールを
使うことによって、JIS X 0213 文字セットを使うことができます。
@code{decode-char} 関数が @code{mucs} によって上書きされてしま
う (@code{jis0213} が @code{mucs} を読み込む) ために、@code{ucs} CCS に
対して正しく動作しなくなってしまいますが、さらに @code{unicode} モジュー
ルを読み込むことによって、その問題が解決されるように見えるという報告があ
りました。理由はまだ解明されていません。@file{~/.emacs} ファイル用の例で
す:

@lisp
(require 'unicode)
(require 'un-define)
(require 'jisx0213)
@end lisp
@end itemize

@node Mailing List
@chapter メーリングリスト、バグリポート
@cindex Subscribing to the emacs-w3m mailing list
@cindex Reporting bugs

Emacs-w3m に関するすべてのことがらを話し合うためのメーリングリストが用意
されています。講読していない人も投稿できます。バグを見つけたり、こんな機
能が欲しいなと思ったり、あるいはコードを書きましたという人はどうぞ投稿し
てください。単なるユーザだけれどもプログラムに興味があるという人も、ぜひ
参加してください。アドレスは以下の通りです:

@display
Emacs-w3m メーリングリスト @t{<emacs-w3m@@namazu.org>}
@end display

もし @code{mail-user-agent} を正しく動作するように設定してあれば、
@code{report-emacs-w3m-bug} コマンド (または @w{@kbd{C-c C-b}} キー) を
使ってバグリポートを送ることもできます。

このリストに投稿するときは、日本語か英語を使ってください。多くのメンバー
は日本人です。投稿された記事は公開されていて、ウェ
ブ (@uref{http://emacs-w3m.namazu.org/ml/}) でも読むことができます。

このリストのメッセージをメールで受け取りたい人は、本文に

@example
subscribe ANATANO Namae
@end example

のように書いて (メールアドレスではなくてあなたの名前を書きます)、
@samp{emacs-w3m-ctl@@namazu.org} 宛にメールを送るとメーリングリストに登
録されます。また、メールを受け取るのをやめるには、本文に

@example
# bye
@end example

と書いたメールを @samp{emacs-w3m-ctl@@namazu.org} 宛に送ってください。

@node Emacs-w3m Functions
@chapter Emacs-w3m の関数の詳しい説明
@cindex Functions details


@node External Packages
@chapter お仲間のパッケージたち

Emacs-w3m は潤沢な機能を提供しますが、さらに便利にするために以下の外部パッ
ケージを使うのも良いかもしれません。

@itemize @bullet
@item
w3m-type-ahead.el

w3m-type-ahead.el パッケージは ``type ahead'' 検索機能 (Mozilla ブラウザ
に同じ名前の似た機能があります) を提供します。それは isearch に似た操作
でアンカーを探すこと (ただし結果はバッファ内のアンカーに限定されます) を
可能にします。

w3m-type-ahead.el のダウンロード:
@uref{http://alioth.debian.org/project/showfiles.php?group_id=30594}

@item
newsticker.el

Emacs 22 以上で組み込まれている newsticker.el は rss フィードやさら
に atom フィードを眺めるための道具です。以下は emacs-w3m ととも
に newsticker.el を使うための設定例です (@file{~/.emacs} ファイルに置い
てください):

@lisp
(require 'w3m-load)
(setq newsticker-html-renderer 'w3m-region
      browse-url-browser-function 'w3m-browse-url)
@end lisp

詳しくは: @xref{Top, ,Top, Newsticker, A Newsticker for Emacs}.
@end itemize

@node Authors
@chapter このマニュアルを書いた人たち

@itemize @bullet
@c 50音順
@item
白井 秀行
@item
土屋 雅稔
@item
中島 幹夫
@item
中山 洋一
@item
Romain Francoise
@item
山岡 克美
@item
大和 正武
@item
青田 直大
@end itemize

@node Index
@unnumbered 索引

@menu
* Concept Index::               概念索引
* Key Index::                   キーバインド索引
* Variable Index::              変数索引
* Function Index::              関数索引
@end menu

@node Concept Index
@unnumberedsec 概念索引
@printindex cp

@node Key Index
@unnumberedsec キーバインド索引
@printindex ky

@node Variable Index
@unnumberedsec 変数索引
@printindex vr

@node Function Index
@unnumberedsec 関数索引
@printindex fn

@bye

@c Local Variables:
@c fill-column: 72
@c use-kuten-for-period: t
@c use-touten-for-comma: t
@c End:
