
▼ 変更記録
| 2002年 12月10日 改訂 |
|
|---|---|
| 2002年 2月14日 改訂 |
|
| 2002年 2月12日 改訂 |
|
| 2001年 12月25日 改訂 |
|
| 2001年 11月21日 改訂 |
|
| 2001年 11月15日 改訂 |
|
| 2001年 8月20日 改訂 |
|
| 2001年 6月26日 改訂 |
|
| 2001年 6月18日 増補 |
|
| 2001年 5月7日 改訂 |
|
| 2001年 4月23日 改訂 |
|
| 2001年 4月12日 最初の配付 |
|
目次
謝辞 ▼ はじめに ▼ インストールと起動方法 ▼ MacOSへのインストールと起動方法 ▼ MS-Windowsへのインストールと起動方法 ▼ バイトコンパイルの方法 ▼ infoファイルの設定 ▼ 操作 ▼ 基本 ▼ DTDの作成 ▼ タグ付け ▼ 閲覧 ▼ 検証 ▼ XSL変換 ▼ コード変換 ▼ シェル ▼ メニュー ▼ HTML文書のタグ付け ▼ データベース ▼ 気付き事項 ▼ MacOS版に関する気付き事項 ▼ MS-Windows版に関する気付き事項 ▼ 配付 ▼
私(岸 和孝)は,健全なフリーウェアの必要条件は,UNIX,MS-Windows,MacOSでほぼ共通の機能が実現できることである,と確信しています。とりわけEmacsのMacOSへの移植が待ち望まれていました。今回,Andrew Choi氏の尽力により移植が行われたことは誠に有り難いことです。その実現によってMacOSでもUNIX,MS-Windowsと同等の様々な機能が利用できるようになりました。ここに開発者の方々へ深く感謝申し上げる次第です。
マルチプラットフォーム・XML/SGML文書処理環境e-Workbenchは,エディターEmacsを各種プラグインで機能拡張し,パーザーnsgmlsやフォーマッターXTなどでSGML/XML文書の処理を行います。また,JPerlやJavaのシェルにもなります。このシステムは,UNIX,MS-Windows,MacOSでほぼ共通の機能が実現されています。これを構成する下図のツールは,すべてフリーウェアです。
このシステムの機能を一言で総称できるように,また親しみやすくするために,e-Workbenchと,私が勝手に名付けました。これは多機能のEmacsをプリプレス分野で利用する範囲を示す言葉であり,その本来備えている機能を制約したり,独占的に制限したりする意図はありません。 皆さんの協力によって,文字通りに役立つ「いい作業台」にしていきたいと思います。 ここでは,MS-Windows版とMacOS版のe-Workbenchについてご案内し配付していきます。 ご意見やご要望をお寄せください。

e-Workbenchの主軸となるEmacsは,UNIXでは古くから広く用いられている高機能の汎用エディターであり,MS-Windowsに続いてMacOSにも移植されました。 現在のバージョンは20.6です。 我が国では,Emacsについては次のような図書が出版され,また次のようなホームページも開設されていますので,その詳細については,ここでは説明しません。
▽参考図書
▽参考ホームページ(日本のみ)
psgmlは,SGML/XML文書のインスタンス入力を支援するプラグインです。 そのプログラムは,Emacsを機能拡張するEmacs Lispで書かれています。 現在のバージョンは1.2.2です。 私は,psgmlのメッセージを日本語化しました。その詳細については,psgml説明書を参照してください。
nsgmlsは,SGML/XML文書の検証を行うパーザーであり,いろいろなプラットフォームで広く用いられています。 現在のバージョンは1.3.3です。 その詳細については,SP説明書を参照してください。 私は,MacOS向けにnsgmlsがEmacsおよびpsgmlと連係できるようにしました。 ちなみに,MacOS向けに既に配付しているnsgmlsはファインダーから呼び出して動くのに対して,このnsgmlsはアプリケーション間連絡を介してEmacsから呼び出して動きます。
tdtdは,SGML/XML文書の文書型定義(DTD)入力を支援するプラグインです。 そのプログラムは,Emacsを機能拡張するEmacs Lispで書かれています。 現在のバージョンは0.7.1です。 私は,tdtdのメッセージを日本語化しました。その詳細については,tdtd説明書を参照してください。
etagsは,タグテーブル作成プログラムです。 現在のバージョンは19です。 その詳細については,etags説明書を参照してください。 私は,MacOS向けにetagsがEmacsと連係できるようにしました。このetagsはアプリケーション間連絡を介してEmacsから呼び出して動きます。また,MS-Windows版の(Emacsのパッケージに含まれている)etagsのバグを修正しました。
xslideは,SGML/XML文書のXSL変換を支援するプラグインです。 そのプログラムは,Emacsを機能拡張するEmacs Lispで書かれています。 現在のバージョンは0.2b3です。 私は,xslideのメッセージを日本語化しました。 その詳細については,xslide説明書を参照してください。
xtは,XML文書のXSL変換を行うプロセッサーです。 そのプログラムは,Javaで書かれたもの(MacOSにおける動作確認中)と,Win32形式(MS-Windows向け)で書かれたものがあります。 現在のバージョンは19991195です。 その詳細については,xt説明書を参照してください。
transfrmxは,XML文書のXSL変換を行うプロセッサーで,現在のバージョンは1.0です。 その詳細については,transfrmx説明書を参照してください。 私は,MacOS向けにtransfrmxがEmacsおよびxslideと連係できるようにしました。 ちなみに,MacOS向けに既に配付しているtransfrmxはファインダーから呼び出して動くのに対して,このtransfrmxはアプリケーション間連絡を介してEmacsから呼び出して動きます。
oc-unicodeは,ユニコード変換を支援するプラグインです。 そのプログラムは,Emacsを機能拡張するEmacs Lispで書かれています。 現在のバージョンは0.72です。 その詳細については,oc-unicode説明書およびMule-UCS説明書を参照してください。
edbは,データベースを管理するプラグインです。 そのプログラムは,Emacsを機能拡張するEmacs Lispで書かれています。 現在のバージョンは1.20です。 私は,edbのメッセージを(まだ一部ですが)日本語化し,若干のバグを修正しました。 その詳細については,edb説明書を参照してください。
以上をまとめると,次のようになります。
| ツール名 (バージョン) |
機 能 | 開発者 | 説明書 |
|---|---|---|---|
|
GNU Emacs (20.6) |
汎用エディター | Richard Stallman氏 拡張:GNU |
オンラインマニュアル および上記の参考図書を参照 |
|
psgml (1.2.2) |
インスタンス入力支援プラグイン | Lennart Staflin氏 メッセージの日本語化:岸 和孝 |
psgml説明書 |
|
nsgmls (1.3.3/1.3.4) |
SGML/XML検証パーザー | James Clark氏 MacOSへの移植:岸 和孝 |
SP説明書 |
|
tdtd (0.7.1) |
文書型定義入力支援プラグイン | Tony Graham氏 メッセージの日本語化:岸 和孝 |
tdtd説明書 |
|
etags (19) |
タグテーブル作成プログラム | Free Software Foundation, Inc.,Ken Arnold氏 MacOSへの移植:岸 和孝 MS-Windows版の修正:岸 和孝 |
etags説明書 |
|
xslide (0.2b3) |
XSL変換支援プラグイン | Tony Graham氏 メッセージの日本語化:岸 和孝 |
xslide説明書 |
|
xt (19991105) |
XSL変換プロセッサー (MS-Windows向け) |
James Clark氏 | xt説明書 |
|
transfrmx (1.0) |
XSL変換プロセッサー (MacOS向け) |
The MITRE Corporation,Keith Visco氏ほか MacOSへの移植:岸 和孝 |
transfrmx説明書 |
|
oc-unicode (0.72) |
ユニコード変換支援プラグイン | Otfried Cheong氏 Mule-UCSパッケージ:宮下 尚氏 |
oc-unicode説明書 |
|
edb (1.20) |
データベース管理プラグイン | Michael Ernst氏 メッセージの日本語化および修正:岸 和孝 |
edb説明書 |
注1:私は,e-Workbenchの操作を,MacOS版はApple PowerBook G3,Mac OS J1-9.0.4の環境で,MS-Windows版はApple PowerBook G3,Mac OS J1-9.0.4,Virtual PC + MS-Windows98の環境で確認しました。
注2:現在,Emacsよりも,それを機能拡張したMuleのほうが知られていると思います。MuleはMS-Windowsに移植されていますが,まだMacOSには移植されていないようです。また,機能拡張したXEmacsは,MS-WindowsとMacOSに移植されていますが,私はまだ動作確認しておりません。いずれにしましても,私はEmacsの範囲から出るつもりはありません。
注3:現在,Emacsが表示するメッセージの大半は英文です。私はこれを日本語化するつもりはありません。
e-Workbenchのインストールは,三つのプログラムを組み合わせますので,少々面倒です。次の手順に従って行ってください。
e-WorkbenchのMacOSへのインストールと起動方法は,次のようになります。
SET SP_CHARSET_FIXED=YES SET SP_ENCODING=sjis
e-WorkbenchのMS-Windowsへのインストールと起動方法は,次のようになります。
SET SP_CHARSET_FIXED=YES SET SP_ENCODING=sjis
Find File: C:\dot-emacs![]()
(setq load-path (cons "C:/emacs-20.6/site-lisp/psgml-1.2.2" load-path))
Write File: C:\.emacs![]()
通常,配付されるEmacs Lispライブラリーはソース(拡張子が“.el”)のままです。そのソースをあらかじめコンパイルしてバイトコード(拡張子が“.elc”)にしておくと,実行時間が短縮できます。このコンパイルはEmacsに内蔵されているコンパイラーで行います。その処理をバイトコンパイルといいます。
とりわけユニコードを使う場合はあらかじめバイトコンパイルを行っておかないと,起動時に自動的に時間がかかってしまいます。そのバイトコンパイルの方法は,次のようになります。
;; unicode
(setq load-path (cons "~emacs/site-lisp/Mule-UCS-0.72/lisp" load-path))
(setq load-path (cons "~emacs/site-lisp/Mule-UCS-0.72/lisp/jisx0213" load-path))
(require 'un-define)
(require 'oc-unicode)
(if (eq window-system 'mac)
(oc-create-fontset
"-misc-fixed-medium-r-normal--18-*-*-*-*-*-fontset-standard"
"-misc-fixed-medium-r-normal-ja-18-*-iso10646-*")
(oc-create-fontset
"-misc-fixed-medium-r-normal--13-*-*-*-*-*-fontset-standard"
"-misc-fixed-medium-r-normal-ja-13-*-iso10646-*"))
(progn
(load "~emacs/site-lisp/Mule-UCS-0.72/lisp/jisx0213/x0213-comp")
(mapcar 'byte-compile-file (directory-files "~emacs/site-lisp/Mule-UCS-0.72/lisp/reldata" t))
)
;; unicode
(setq load-path (cons "C:/emacs-20.6/site-lisp/Mule-UCS-0.72/lisp" load-path))
(setq load-path (cons "C:/emacs-20.6/site-lisp/Mule-UCS-0.72/lisp/jisx0213" load-path))
(require 'un-define)
(require 'oc-unicode)
(if (eq window-system 'win)
(oc-create-fontset
"-misc-fixed-medium-r-normal--18-*-*-*-*-*-fontset-standard"
"-misc-fixed-medium-r-normal-ja-18-*-iso10646-*")
(oc-create-fontset
"-misc-fixed-medium-r-normal--13-*-*-*-*-*-fontset-standard"
"-misc-fixed-medium-r-normal-ja-13-*-iso10646-*"))
(progn
(load "C:/emacs-20.6/site-lisp/Mule-UCS-0.72/lisp/jisx0213/x0213-comp")
(mapcar 'byte-compile-file (nthcdr 2 (directory-files "C:/emacs-20.6/site-lisp/Mule-UCS-0.72/lisp/reldata" t)))
)
ヘルプは,infoファイルとして配付されます。それをディレクトリーemacs-20.6/info/内へ移動します。そして,emacs-20.6/info/dirへそれへのリンクを書き加えます。これで C-h i によってヘルプとして表示できるようになります。例えば,psgml-ja.infoとedb-ja.infoを追加する場合は,次のようになります。
* PSGML: (psgml-ja). SGMLモード。 * EDB: (edb-ja). データベースモード。
e-Workbenchの操作は,次のようになります。ここでは,最初に,基本となるEmacsの操作の概略をMacOS版に基づいて解説し,次に,メニューバーによる操作の概略をMS-Windows版に基づいて説明します。
e-Workbenchの操作は,Emacsの操作が基本になります。Emacsの画面は,次のように区分されています。

e-Workbenchの操作は,MacOSやMS-Windowsに馴染んだユーザーには違和感があると思います。先ず,Emacs独自のキーボードのショートカットはMacOSやMS-Windowsとかなり違います。さらに,Emacsは多くの機能を備えたエディターであり,プラグインを含めて,そのすべてを知ることは短時間では困難です。「習うより慣れろ」の精神で少しづつ慣れるといいでしょう。
キーについての表記は,次のとおりとします。
キー 図形による表記 文字による表記 使い方 controlキー C- キーを押しながら特定の文字キーを押します。
metaキー M- 省略時は キーとなります。
その場合,キーは押した後に直ぐに離して特定の文字キーを押します。
commandキー Macintoshに固有のキーです。 escキー tabキー returnキー
基本的な操作を対比すると,次のようになります。
機 能 MacOSの
一般的なエディター
における操作MS-Windowsの
一般的なエディター
における操作Emacs
における操作ファイル 新規 N
N
x
f
…/新規ファイル名![]()
開く O
O
x
f
…/既存ファイル名![]()
閉じる W
アプリケーションによる x
w
保存 S
S
x
s
終了 Q
アプリケーションによる x
c
編集 取り消し Z
Z
x u
カット X
X
w
コピー C
C
w
ペースト V
V
y
ウィンドウの切り替え アプリケーションによる アプリケーションによる x
b
ヘルプ アプリケーションによる アプリケーションによる h i
その他 ディレクトリを開く x
f
…/~![]()
バッファの削除 x k
文書型定義(DTD)を作る場合は,EmacsをDTDを編集するためのスタンドアローンモードで動かします。Emacsは,新規または開くファイル名の拡張子が“.dtd”であると,tdtdを起動します。代表的なショートカットの機能は,次のとおりです。この操作の詳細はtdtdを用いたDTD作成の例を参照してください。
ショートカット 機 能 C-u C-c C-c 注釈の入力 C-c C-% 内部パラメーター実体の入力 C-c C-e 要素型宣言の入力 C-c C-a 属性リスト宣言の入力 M-x dtd-etags
文書型定義ファイル名![]()
文書型定義に関するタグテーブルの作成 M-. 指定した要素への移動

文書インスタンスを作る(つまり,タグ付けを行う)場合は,EmacsをSGMLモードで動かします。Emacsは,新規または開くファイル名の拡張子が“.sgm”,“.xml”であると,psgmlを起動し,SGMLモードに切り替えます。
ある位置における文脈(その位置における内容モデル)を確認する場合は,その位置にポイントを置いてから,次のように指示します。これによってpsgmlが(nsgmlsでなく)文書型定義に基づく(あまり厳密でない)検証を行います。
c
t
その位置における文脈は,次のように別のウィンドウに表示されます。

ある位置における文脈(その位置におけるタグの親子関係)を確認する場合は,その位置にポイントを置いてから,次のように指示します。
c
y
その位置における文脈は,次のようにエコー領域に表示されます。

ある位置において挿入可能な妥当な要素の内容を確認する場合は,その位置にポイントを置いてから,次のように指示します。これによってpsgmlが(nsgmlsでなく)文書型定義に基づく(あまり厳密でない)検証を行います。
c
c
その内容は,次のようにエコー領域に表示されます。

ある位置において妥当な要素の開始タグと終了タグを挿入する場合は,その位置にポイントを置いてから,次のように指示します。
c
e 要素名
![]()
ある位置において妥当な要素の開始タグを挿入する場合は,その位置にポイントを置いてから,次のように指示します。
c < 要素名
![]()
ある位置において妥当な要素の終了タグを挿入する場合は,その位置にポイントを置いてから,次のように指示します。
c /
ある要素の属性を挿入する場合は,その開始タグ内にポイントを置いてから,次のように指示します。
c + 属性名
属性値
![]()
すべての要素型と,その内容で出現できる要素型を見る場合は,次のように指示します。
x sgml-list-content-elements
![]()

編集中の内容を畳んで見やすくすることができます。ある範囲を指定する場合は,リージョンを指定してから,次のように指示します。
c
f
r
ある要素を畳む場合は,その開始タグ内にポイントを置いてから,次のように指示します。
c
f
e
畳んだ結果は,次のように表示されます。

畳んだ要素を元に戻す場合は,次のように指示します。
c
u
e
検証をする場合は,あらかじめ文書型定義やSGMLインスタンスを現在のバッファに読み込んでおきます。
文書型定義だけを検証する場合は,次のように指示します。この検証はnsgmlsではなく,psgmlが(あまり厳密でなく)行います。
c
p
SGML/XML文書を検証する場合は,あらかじめ,次の指示によってSGML宣言ファイル名の指定を行います。SGML宣言ファイルとして,SGML文書のためには“SGMLJ.DCL”,XML文書のためには“XML.DCL”を用意しています。
x set-variable
sgml-declaration
SGML宣言
![]()
SGMLインスタンスを検証する場合は,次のように指示します。これはnsgmlsを呼び出します。nsgmlsを呼び出す場合は,あらかじめ環境変数を設定しておきます。
c
v
その指示によって次のように表示されます。これはnsgmlsに対するコマンドラインです。この時,SGMLインスタンスが編集されている場合,ファイルへ保存する旨の問合せメッセージが出ますので,保存してください。
nsgmls -s SGML宣言 SGMLインスタンス![]()
検証結果は,次のように別のウィンドウに表示されます。

ESIS出力を得たい場合は,nsgmlsに対するコマンドラインを次のように書き換えてから行います。
MacOS版のnsgmlsでは,次のようなコマンドラインで指示します。
nsgmls -O出力ファイル名 SGML宣言 SGMLインスタンス![]()
MS-Windows版のnsgmlsでは,次のようなコマンドラインで指示します。
nsgmls SGML宣言 SGMLインスタンス > 出力ファイル名![]()
次のようなXML文書をHTML文書へ変換する例について説明します。ここで使用するXSLプロセッサーにおける入力では文書がユニコードに固定されていますので,xml宣言ではエンコーディングの指定ができません。
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="meishi.xsl"?> <!DOCTYPE meishi SYSTEM "meishi.dtd"> <meishi> <shimei><sei>岸</sei><mei>和孝</mei></shimei> <kaisyamei>飯豊山書林</kaisyamei> <zyusyo bangou="966-0901">福島県喜多方市松山町鳥見山字下堰下4608</zyusyo> </meishi>
XSLスタイルシートを開くと,XSLモードに切り替わり,次のように表示されます。

XSL変換は,XSLモードにおいて C-c C-p を指示することによって行われます。

XSL変換の結果はHTML文書となります。その文書に日本語が含まれる場合は,次のように,それらの漢字はすべてユニコード文字参照の表記になります。

このHTML文書をウェブブラウザー(例えば,Internet Explorer 5.0)に読ませると,次のように表示されます。

ファイルのエンコーディングは,コーディングシステムの指定によって決まります。バッファがどの文字符号系(コーディングシステム)であるかはモード行の左端に“J”(JIS),“S”(シフトJIS),“U”(ユニコード)の文字で表示されます。既存のファイルを開いた後に,そのエンコーディングを次の指示によって別の形式に指定すれば,再び保存する際に,そのエンコーディングで記録できます。なお,現在,既存のファイルを開く時に,拡張子が“.utf”と“.xml”の場合は,UTF-8とみなされるように,emacs-20.6/lisp/oc-unicode.elにおいて指定しています。不都合な場合はその指定を外してください。
C-xf utf-8
![]()
C-xf sjis
![]()
MS-Windows版のEmacsは,JPerlやJavaのシェルにもなりますので,さまざまなスクリプティングを効果的に進めることができます(MacOSではまだできません)。それらを実行するには,次のように指示します。実行結果の標準出力はEmacsの画面へ表示されます。
M-x compileプログラム名 引き数…
![]()
この操作をするために,あらかじめMS-Windowsのルートディレクトリー(例えば,“C:\”)にあるAUTOEXEC.BATにJPerlやJavaへのパスの設定をPATHやSETで追加します。 例えば,次のように設定します。
PATH C:\JPERL\BIN;C:\J2SDK\BIN
この操作をするためのもう一つの方法では,個別のバッチファイルを用いて間接的にプログラムを呼び出します。 例えば,次のような内容のバッチファイルを作っておきます。
C:\JPERL\BIN\JPERL.EXE %1 %2 %3
MS-Windows版のEmacsでは,メニューバーが実装されていますので,それによる操作の概略を説明します。現在,MacOS版のEmacsではメニューが実現されていませんので,不満があるかもしれません。しかし,初心者にとってメニューは助けになりますが,操作に習熟してしまうと,ショートカットのほうが逆に便利に感じるようになります。MS-Windows版のメニューに示されているショートカットとコマンドはMacOS版でも有効ですので,参考にしてください。
次の画面はpsgmlのメニューバーです。

注:次の表においてメニューの機能欄が空の箇所は動作をまだ確認していないことを表わしています。
メニューアイテム ショートカット 機 能 Open File... C-x C-f ファイルを指定する Open Directory... C-x d ディレクトリーを指定する Save Buffer C-x C-s バッファの内容を保存する Save Buffer As... C-x C-w 別のファイルへバッファの内容を保存する Revert Buffer バッファを元の内容へ戻す Recover Session... Insert File... C-x i 別のファイルの内容を挿入する Kill Current Buffer 現在のバッファを廃棄する Make New Frame C-x 5 2 新しいフレームを作る Open New Display... Delete Frame C-x 5 0 フレームを削除する Split Window C-x 2 ウィンドウを二つに分ける One Window C-x 1 ウィンドウを一つにする Exit Emacs C-x C-c Emacsを終了する
メニューアイテム ショートカット 機 能 コマンド Reset Buffer ノーマルモードにする M-x normal-mode ![]()
Show Context C-c C-c ポイントにおける文脈を表示する M-x sgml-show-context ![]()
What Element C-c C-w ポイントの後の文字が
どんな要素に所属するかを表示するM-x sgml-what-element ![]()
List Valid Tags C-c C-t 文脈上妥当なタグをリストする M-x sgml-list-valid-tags ![]()
Show/Hide Warning Log C-c C-l M-x sgml-show-or-clear-log ![]()
Validate C-c C-v 外部のSGML検証パーザーを実行する M-x sgml-validate ![]()
File Options ファイルオプション User Options ユーザーオプション Submit Bug Report バグ報告を送付する M-x sgml-submit-bug-report ![]()
メニューアイテム ショートカット 機 能 コマンド Normalize バッファの中の文書を正規化する M-x sgml-normalize ![]()
Expand All Short References テキスト実体への短縮参照を
実体の置換テキストに拡張するM-x sgml-expand-all-shortrefs ![]()
Expand Entity Reference 実体参照を文字にする M-x sgml-expand-entity-reference ![]()
Normalize Element 要素名を小文字にする M-x sgml-normalize-element ![]()
Make Character Reference C-c # ポイントの後の文字を文字参照へ変換する M-x sgml-make-character-reference ![]()
Unmake Character Reference 文字参照を文字へ戻す Fill Element C-c C-q パラグラフとしての要素を満たす M-x sgml-fill-element ![]()
Change Element Name... C-c = 現在の要素名を変更する M-x sgml-change-element-name ![]()
Edit Attributes... C-c C-a 開始タグの属性を編集する M-x sgml-edit-attributes ![]()
Kill Markup C-c C-k 次のタグ,マーク宣言,処理命令を削除する M-x sgml-kill-markup ![]()
Kill Element M-C-k カーソルに続く要素を削除する M-x sgml-kill-element ![]()
Untag Element C-c - 現在の要素からタグを削除する M-x sgml-untag-element ![]()
Trim and leave element C-c C-z M-x sgml-trim-and-leave-element ![]()
Decode Character Entities 実体を文字へ変換する M-x sgml-charent-to-display-char ![]()
Encode Characters 文字を実体へ変換する M-x sgml-display-char-to-charent ![]()
メニューアイテム ショートカット 機 能 コマンド Next trouble spot C-c C-o 次のエラー箇所へ進む M-x sgml-next-trouble-spot ![]()
Next data field C-c C-d データが許される次の場所へ移動する M-x sgml-next-data-field ![]()
Forward element M-C-f 要素に従って前進する M-x sgml-forward-element ![]()
Backward element M-C-b 要素に従って後退する M-x sgml-backward-element ![]()
Up element C-c C-n 現在の要素の後へ戻る M-x sgml-up-element ![]()
Down element M-C-d 次の要素の(内容の)先頭に下がる M-x sgml-down-element ![]()
Backward up element M-C-u 現在の要素の前へ戻る M-x sgml-backward-up-element ![]()
Beginning of element M-C-a 現在の要素の(内容の)先頭へ移動する M-x sgml-beginning-of-element ![]()
End of element M-C-e 現在の要素の(内容の)後尾へ移動する M-x sgml-end-of-element ![]()
メニューアイテム ショートカット 機 能 Insert Element 妥当な要素のメニューをポップアップする Insert Start-Tag 妥当な開始タグのメニューをポップアップする Insert End-Tag 妥当な終了タグのメニューをポップアップする End Current Element C-c / 現在の要素の終了タグを挿入する Tag Region 選択でリージョンを指定した妥当な要素のメニューをポップアップする Insert Attribute 要素のすべての属性を持つメニューをポップアップする Insert Entity DTDで定義されたすべての一般実体のメニューをポップアップする Add Element to Element Custom markup
メニューアイテム ショートカット 機 能 コマンド Fold Element C-c C-f C-e 現在の要素の開始と終了の間のリージョンを折り畳む M-x sgml-fold-element ![]()
Fold Subelement C-c C-f C-s 現在の要素のすべての副要素を折り畳む M-x sgml-fold-subelement ![]()
Unfold Line C-c C-s 現在の行を折り畳まずに,
それが折り畳まれたリージョンの最初の行
であると仮定するM-x sgml-unfold-line ![]()
Unfold Element C-c C-u C-e 現在の要素におけるすべての行を見えるようにする M-x sgml-unfold-element ![]()
Expand C-c C-f C-x 現在の要素を折り畳まずに,副要素を折り畳む M-x sgml-expand-element ![]()
Fold Region C-c C-f C-r ポイントとマークの間のリージョンを折り畳む M-x sgml-fold-region ![]()
Unfold All C-c C-u C-a 現在のバッファにおけるすべての行を見えるようにする M-x sgml-unfold-all ![]()
Hide Tags すべてのタグを隠す M-x sgml-hide-tags ![]()
Hide Attributes すべての属性だけを隠す M-x sgml-hide-attributes ![]()
Show All Tags すべてのタグを表示する M-x sgml-show-tags ![]()
メニューアイテム ショートカット 機 能 コマンド Parse DTD C-c C-p DTDを構文解析する M-x sgml-parse-prolog ![]()
Insert DTD Info DTDの情報を表示する Load Parsed DTD 検証済みDTDをロードする M-x sgml-load-dtd ![]()
Save Parsed DTD 検証済みDTDを保存する M-x sgml-save-dtd ![]()
メニューアイテム ショートカット 機 能 コマンド General DTD info 現在のDTDに関する情報を表示する M-x sgml-general-dtd-info ![]()
Describe element type 現在のDTDで宣言されたものとして要素型の特性を説明する M-x sgml-describe-element-type ![]()
Describe entity 現在のDTDで宣言されたものとして実体の特性を説明する M-x sgml-describe-entity ![]()
List elements すべての要素と,要素について宣言された属性をリストする M-x sgml-list-elements ![]()
List attributes すべての宣言された属性と,それらを用いている要素をリストする M-x sgml-list-attributes ![]()
List terminals データを含むことができるすべての要素をリストする M-x sgml-list-terminals ![]()
List content elements すべての要素型と,その内容で出現できる要素型をリストする M-x sgml-list-content-elements ![]()
List occur in elements すべての要素型と,それが出現できる場所をリストする M-x sgml-list-occur-in-elements ![]()
メニューアイテム ショートカット 機 能 ファイル名 パス そのファイルの内容を表示する ディレクトリー名 パス そのディレクトリーの内容を表示する *scrach* Emacs Lispを実行できるバッファの内容を表示する *Messages* メッセージバッファの内容を表示する *Help* ヘルプ要求で作られたバッファの内容を表示する List All Buffers C-x C-b すべてのバッファをリストする
メニューアイテム ショートカット 機 能 Undo 取り消す Cut カットする Copy コピーする Paste ペーストする Select and Paste Clear 消去する Text Properties Fill Spell
メニューアイテム ショートカット 機 能 Seach... 文字列で検索する Regexp Seach... 正規表現式で検索する Seach Backwards... 文字列で逆方向へ検索する Regexp Seach backwards... 正規表現式で逆方向へ検索する Repeat Seach 文字列でさらに検索する Repeat Regexp 正規表現式でさらに検索する Repeat backwards 文字列で逆方向へ検索する Bookmarks M-. ブックマーク Find Tag... タグで検索する Query Replace... M-% Query Replace Regexp... C-M-%
メニューアイテム ショートカット 機 能 Compare Merge Apply Patch Edit Miscellanea Version Control Read Net News Read mail Send mail C-x m Display Speedbar スピードバーを表示する Display Calander カレンダーを表示する Search Files... Compile... Debugger...
Emacsのパッケージには,psgmlの提供するSGMLモードとは別のSGMLモードを提供するsgml-mode.elが用意されています。そのスクリプトは,読み込んだファイルの拡張子が“.htm”の場合に,そのSGMLモードにします。そのSGMLモードでは,ショートカットによってHTMLタグを挿入したり,編集中の内容をウェブブラウザーで閲覧したりできます。
ショートカット 機 能 挿入される骨組み C-c 1 見出し1(最上位レベル)の挿入 <h1></h1> C-c 2 見出し2の挿入 <h2></h2> C-c 3 見出し3の挿入 <h3></h3> C-c 4 見出し4の挿入 <h4></h4> C-c 5 見出し5の挿入 <h5></h5> C-c 6 見出し6(最下位レベル)の挿入 <h6></h6> C-c 段落の挿入 <p> C-c j 強制改行の挿入 <br> C-c C-c - 横罫線の挿入 <hr> C-c C-c o 箇条書き(番号付き)の挿入 <ol><li></ol> C-c C-c u 箇条書き(黒丸付き)の挿入 <ul><li></ul> C-c C-c r ラジオボタンの挿入 <input type="radio" name="" value=""> C-c C-c c チェックボックスの挿入 <input type="checkbox" name="" value=""> C-c C-c l 箇条書き項目の挿入 <li> C-c C-c h HREFアンカーの挿入 <a href=""></a></a> C-c C-c n NAMEアンカーの挿入 <a name=""></a></a> C-c C-c i 画像の挿入 <img src=""> C-c C-s C-c C-v ブラウザーによる閲覧
(MacOSでは未実現)
edbはデータベース管理のためのプラグインです。
そのデータベースモードでは,データベースを閲覧したり,編集できます。データベースを開くには, M-x db-find-file
データファイル
を指示します。ここでは,その一部を紹介します。その詳細については,edb説明書を参照してください。
ショートカット 機 能 閲覧モード n 後ろ方向のレコードへ進む p 前方向のレコードへ進む h 要約を表示する M-s 探索パターン
![]()
レコードを探索パターンで検索する C-n 編集モードへ切り替える 編集モード ![]()
後ろ方向のフィールドへ進む M- ![]()
前方向のフィールドへ進む M-x db-sort ![]()
分類インターフェイスを呼び出す C-c C-c 閲覧モードへ切り替える C-x C-s 変更結果をディスクに保存する
次は,パッケージの“examples”にあるデータファイル“form.dat”を開いて,閲覧(上)と要約(下)を表示すると,次のような画面になります。要約でカーソルの指した箇所が閲覧画面に表示されます。閲覧と要約の形式は形式ファイル“form.fmt”で定義されています。

e-Workbenchの運用で,次のような点に気付いています。この他に,気付きや不具合がありましたら,ご一報ください。
キーを
キーに割り当てると,MacOSのファインダーの操作が優先してしまう場合(例えば,
)があります。
x sgml-mode
![]()
キー+optionキー+ESCキーを同時に押して,プロセスを順次に終了してください。この場合は,必ず私に状況をお知らせください。
x sgml-mode
![]()
etags -r/^\074!\(ELEMENT\\174ENTITY[\040\t]+%?\\174NOTATION\\174ATTLIST\)[\040\t]+\([^\040\t]+\)/\\2/ -oTAGS LETTER.DTDちなみに,この引き数はMacOSのtdtd.elでは,次のように表わされます。
"-r/^<!\\\\(ELEMENT\\\\|ENTITY[\\ \\\\t]+%?\\\\|NOTATION\\\\|ATTLIST\\\\)[\\ \\\\t]+\\\\([^\\ \\\\t]+\\\\)/\\\\2/"一方,MS-Windowsのtdtd.elでは,これは次のように表わされます。つまり,互換性はありませんので,注意してください。
"-r/^\\074!\\(ELEMENT\\\\174ENTITY[\\040\\t]+%?\\\\174NOTATION\\\\174ATTLIST\\)[\\040\\t]+\\([^\\040\\t]+\\)/\\2/"
配付e-Workbenchは,次のパッケージで配付されています。大きなパッケージもありますので,注意してクリックしてください。
| ツール名 | MacOS版 | MS-Windows版 | オリジナルソース |
|---|---|---|---|
| GNU Emacs | GNU Emacs (約18MB) |
GNU Emacs (約8.5MB) |
ソース (約14.3MB) |
| フォントセット | GNU Font (約0.2MB) |
− | − |
| psgml | psgml (約0.5MB) |
psgml (約0.5MB) |
ソース (約0.2MB) |
| nsgmls | nsgmls (約0.7MB) |
nsgmls (約0.8MB) |
ソース (約0.5MB) |
| tdtd | tdtd | tdtd | ソース |
| xslide | xslide | xslide | ソース |
| xt | − | xt-win32 (約0.2MB) |
(非公開?) |
| transfrmx | transfrmx (約0.2MB) |
− | ソース (約0.2MB) |
| etags | etags |
etags |
(Emacsソースに 含まれています) |
| oc-unicode | oc-unicode (約0.5MB) |
oc-unicode (約0.5MB) |
ソース (約3.3MB) |
| edb | edb (約0.2MB) |
edb (約0.2MB) |
ソース(約0.2MB) 説明書(約0.2MB) サンプルデータ(約0.1MB) |
| Emacs初期化ファイル | Emacs初期化ファイル | Emacs初期化ファイル | − |
| SGML宣言 | SGML宣言 | SGML宣言 | − |
| この説明書 | この説明書 | この説明書 | − |
注1:e-Workbenchを実行するだけであれば,オリジナルソースは不要です。
注2:MacOS版のEmacsには,etags以外の関連プログラムはまだ収録されていません。なお,MS-Windows版のetagsにはバグがありますので,私からの配付を利用してください。
注3:MacOS版のnsgmlsやtransfrmxなどのソースコードを公開する予定は整理の都合上まだありませんが,ご希望の方はご一報ください。ちなみに,私の開発環境は“Metrowerks CodeWarrior 6.0”です。
注4:Emacsやpsgmlを再配布する場合はGNUの規則に従ってください。
(2001年4月記,同改訂,6月増補,8月改訂,11月改訂,12月改訂)