From: morioka Date: Tue, 10 Mar 1998 05:24:28 +0000 (+0000) Subject: tm 7.90. X-Git-Tag: tm7_90~1 X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=81a628c371a54077532fc5b4fcc501e040b84f06;p=elisp%2Ftm.git tm 7.90. --- diff --git a/ChangeLog b/ChangeLog index 7f741c3..41bec85 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,73 @@ +Wed Oct 16 00:35:29 1996 MORIOKA Tomohiko + + * tl: Version 7.61.10 was released. + * MU: Version 0.34.1 was released. + * tm: Version 7.90 was released. + * gnus-mime: Version 0.10 was released. + + * Makefile: Add *.sgml and *.info files. + +Tue Oct 15 20:58:43 1996 MORIOKA Tomohiko + + * doc/tm-edit-ja.sgml: New file. + + * doc/tm-view-ja.sgml: New file. + +Mon Oct 14 14:04:05 1996 MORIOKA Tomohiko + + * doc/tm-ja.sgml: New file. + +Mon Oct 14 09:33:14 1996 MORIOKA Tomohiko + + * README.en: RFC 2015 was published. + +Sun Oct 13 18:44:49 1996 MORIOKA Tomohiko + + * tm-ew-d.el (mime-eword/decode-string): Add DOC-string. + + * tm-ew-d.el (mime-eword/decode-region): DOC-string is modified. + + * tm-ew-d.el (mime/decode-encoded-word): Add DOC-string. + + * tm-ew-d.el (mime/decode-encoded-text): Add DOC-string. + +Mon Oct 7 14:30:50 1996 Shuhei KOBAYASHI + + * tm-edit.el (mime-editor/yank-ignored-field-list): Some fields + were added. + +Sat Oct 5 13:24:40 1996 MORIOKA Tomohiko + + * doc/Makefile: tm-gnus_*.texi were moved to tm-gnus/doc/. + + * doc/Makefile: tm-mh-e_{ja|en}.texi were moved to tm-mh-e/doc/. + +Thu Oct 3 07:52:09 1996 MORIOKA Tomohiko + + * tm-pgp.el (tm-pgp::key-expected-regexp-alist): New variable. + + (mime-article/check-pgp-signature): Use variable + `tm-pgp::key-expected-regexp-alist'. + + Variable `tm-pgp::key-expected-regexp' was abolished. + + * tm-pgp.el (tm-pgp::default-language): New variable. + (tm-pgp::good-signature-regexp-alist): New variable. Variable + `tm-pgp::good-signature-regexp' was abolished. + + * tm-pgp.el: Comment was modified. + +Thu Oct 3 04:11:34 1996 Fujikazu OKUNISHI + + * tm-pgp.el (mime::article/call-pgp-to-check-signature): specify + ``language=en'' (cf. [os2-emacs-ja:543]) + +Wed Oct 2 04:19:02 1996 Shuhei KOBAYASHI + + * tm-bbdb.el (tm:mail-extract-address-components): Save original + definition of `mail-extract-address-components' (fixed). + + Tue Oct 1 13:36:22 1996 MORIOKA Tomohiko * tl: Version 7.61.9 was released. diff --git a/Makefile b/Makefile index 8013ccc..276df41 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,8 @@ # -# $Id: Makefile,v 7.29 1996/09/07 17:20:36 morioka Exp morioka $ +# $Id: Makefile,v 7.30 1996/10/16 00:35:29 morioka Exp morioka $ # -VERSION = 7.89 +VERSION = 7.90 SHELL = /bin/sh MAKE = make @@ -36,17 +36,22 @@ TM_FILES = tm/README.en tm/ChangeLog \ tm/sc-setup.el \ tm/methods/tm* tm/methods/ChangeLog \ tm/src/*.c \ + tm/doc/*.sgml tm/doc/*.texi tm/doc/*.info \ tm/doc/Makefile tm/doc/*.ol tm/doc/*.tex \ - tm/doc/*.texi tm/old-logs/*.en tm/old-logs/*.ja + tm/old-logs/*.en tm/old-logs/*.ja TM_MH_E_FILES = tm-mh-e/Makefile tm-mh-e/mk-tmh tm-mh-e/TMH-ELS \ - tm-mh-e/code-jp.ol tm-mh-e/*.el tm-mh-e/ChangeLog + tm-mh-e/*.el tm-mh-e/ChangeLog \ + tm-mh-e/*.ol tm-mh-e/*.texi tm-mh-e/*.info tm-mh-e/*.tex GNUS_MIME_FILES = gnus-mime/Makefile gnus-mime/*-path \ - gnus-mime/Gnus-MIME-ELS gnus-mime/*.el gnus-mime/ChangeLog + gnus-mime/Gnus-MIME-ELS gnus-mime/*.el \ + gnus-mime/*.sgml gnus-mime/*.texi gnus-mime/*.info \ + gnus-mime/*.ol gnus-mime/*.tex gnus-mime/ChangeLog TM_GNUS_FILES = tm-gnus/Makefile tm-gnus/*-path tm-gnus/mk-tgnus \ - tm-gnus/TGNUS-ELS tm-gnus/*.el tm-gnus/ChangeLog + tm-gnus/TGNUS-ELS tm-gnus/*.el tm-gnus/ChangeLog \ + tm-gnus/*.ol tm-gnus/*.texi tm-gnus/*.info tm-gnus/*.tex TM_MAIL_FILES = tm-mail/TMAIL-ELS tm-mail/*.el tm-mail/ChangeLog diff --git a/README.en b/README.en index cb03d61..1e92bc7 100644 --- a/README.en +++ b/README.en @@ -1,7 +1,7 @@ [README for tm (English Version)] by MORIOKA Tomohiko and KOBAYASHI Shuhei -$Id: README.en,v 7.23 1996/09/19 11:36:44 morioka Exp $ +$Id: README.en,v 7.24 1996/10/14 09:33:14 morioka Exp $ 1 What's tm? @@ -175,8 +175,8 @@ RFC 1522 encoded-words. So it is not necessary to reset 6.3 PGP If you have the PGP and Mailcrypt packages, you can use PGP with -MIME. Currently, 2 drafts (draft-elkins-pem-pgp-02.txt and -draft-kazu-pgp-mime-00.txt) are proposed, so tm provides both ways. +MIME. Currently, PGP/MIME (RFC 2015) and draft-kazu-pgp-mime-00.txt +are proposed, so tm provides both ways. For decoding, please insert the following into ~/.emacs: @@ -202,12 +202,12 @@ menu. If you use this mechanism, please specify 2 variables: `mime-editor/signing-type' and `mime-editor/encrypting-type'. They requires following values: - pgp-elkins processed as draft-elkins-pem-pgp-02.txt + pgp-elkins processed as PGP/MIME (RFC 2015) pgp-kazu processed as draft-kazu-pgp-mime-00.txt nil not processed -If you use ``signed'' and ``encrypted'' as draft-elkins-pem-pgp-02.txt, -please insert into ~/.emacs: +If you use ``signed'' and ``encrypted'' as PGP/MIME, please insert +into ~/.emacs: ====================================================================== (setq mime-editor/signing-type 'pgp-elkins) diff --git a/doc/Makefile b/doc/Makefile index 4a5c8b3..c30a7a9 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -1,5 +1,5 @@ # -# $Id: Makefile,v 3.1 1996/06/03 14:52:18 morioka Exp $ +# $Id: Makefile,v 4.1 1996/10/05 13:24:40 morioka Exp morioka $ # EMACS=mule @@ -11,14 +11,15 @@ TEXI2DVI = texi2dvi $< TEXFILES= signature-jp.tex -INFO_JA = tm_ja.info tm-gnus_ja.info tm-mh-e_ja.info -INFO_EN = tm_en.info tm-gnus_en.info tm-mh-e_en.info +INFO_JA = tm-ja.info tm-view-ja.info tm-edit-ja.info +INFO_EN = tm_en.info -DVI_JA = tm_ja.dvi tm-gnus_ja.dvi tm-mh-e_ja.dvi signature-jp.dvi -DVI_EN = tm_en.dvi tm-gnus_en.dvi tm-mh-e_en.dvi +DVI_JA = tm-ja.dvi tm-view-ja.dvi tm-edit-ja.dvi signature-jp.dvi +DVI_EN = tm_en.dvi GOMI = *.aux *.toc *.log \ - *.cp *.cps *.fn *.fns *.vr *.vrs *.ky *.pg *.tp \ + *.cp *.cps *.cpss *.fn *.fns *.fnss *.vr *.vrs *.ky *.kys \ + *.pg *.pgs *.tocs *.tp *.tps *.ilg *.ind \ $(DVIFILES) *.ps *~ diff --git a/doc/tm-edit-ja.info b/doc/tm-edit-ja.info new file mode 100644 index 0000000..1de133b --- /dev/null +++ b/doc/tm-edit-ja.info @@ -0,0 +1,484 @@ +Info file: tm-edit-ja.info, -*-Text-*- +produced by `texinfo-format-buffer' +from file `tm-edit-ja.texi' +using `texinfmt.el' version 2.32 of 19 November 1993. + + + +File: tm-edit-ja.info, Node: Top, Next: mime/editor-mode, Prev: (dir), Up: (dir) + +tm-edit Manual(日本語版) +************************** + + +tm-edit は GNU Emacs で動作する汎用的な MIME viewer です。 + +tm-edit は GNUS の作者としても有名な 梅田 政信 +さんが書かれた `mime.el' を基に + + * RFC 1521/1522 化 + * Content-Disposition field (*Note (tm-ja)Content-Disposition::) (RFC + 1806) の利用 + * 入れ子になった multi-part message (*Note (tm-ja)multipart::) + * PGP(*Note PGP::) + * file type における parameter の自動指定の強化 + +などの改良を行いました。 + +tm-MUA(*Note (tm-ja)tm-MUA::) では tm-edit を使うことにより、容易に MIME +message を作成できます。 + +* Menu: + +* mime/editor-mode:: +* single-part operations:: single-part に対する操作 +* enclosure operation:: enclosure に対する操作 +* other operations of mime/editor-mode:: mime/editor-mode におけるその他の操作 +* transfer level:: +* header:: header での非 ASCII 文字の使用 +* PGP:: +* Concept Index:: 概念索引 +* Function Index:: 関数索引 +* Variable Index:: 変数索引 + + + +File: tm-edit-ja.info, Node: mime/editor-mode, Next: single-part operations, Prev: Top, Up: Top + +mime/editor-mode +**************** + +*mime/editor-mode* は MIME message を作 +成するための minor mode です。この mode では *tag* を使ってさまざまな種 +類の data を表現し、複数の部分からなる message (*Note +(tm-ja)multipart::) を編集することを可能にしています。 + +tag には + + * single-part tag + * multi-part tag + +の2つがあります。 + +single-part tag は single part を表現するための tag で、 + + --[[TYPE/SUBTYPE;PARAMETERS][ENCODING] + OPTIONAL-FIELDS] + +というような形をしています。 + +TYPE/SUBTYPE および PARAMETERS は Content-Type field(*Note +(tm-ja)Content-Type field::) の type/subtype および parameters を表しま +す。TYPE/SUBTYPE は必須であり、PARAMETERS は省略可です。 + +ENCODING は Content-Transfer-Encoding field を表します。これも省略可です。 + + +OPTIONAL-FIELDS は Content-Type, Content-Transfer-Encoding 以外の field +を書くための部分で、省略可です。 + +multi-part tag は multi part (*Note (tm-ja)multipart::) を表現するための +tag で、 + + --<>-@{ + +という形の *multi-part 開始 tag* と呼ばれる multi part の開始を示す tag +と + + --@}-<> + +という形の *multi-part 終了 tag* と呼ばれる multi part の終了を示す tag +があります。 + +また、multi-part 開始 tag と multi-part 終了 tag で囲まれた部分を +*enclosure* と呼びます。 + + + + +File: tm-edit-ja.info, Node: single-part operations, Next: enclosure operation, Prev: mime/editor-mode, Up: Top + +single-part に対する操作 +************************ + +single-part を作るための操作には以下のようなものがあります。 + +`C-c C-x C-t' + text part を表す single-part tag を挿入します。 + +`C-c C-x C-i' + file を MIME part として添付します。 + +`C-c C-x C-e' + external part を挿入します。 + +`C-c C-x C-v' + `C-g' が押されるまで録音を行い、音声 part を挿入します。(使用でき + ない場合があります) + +`C-c C-x C-y' + 現在表示中の (mail or news) message を挿入します。(実際の動作は使 + 用している MUA に依存します) + +`C-c C-x C-m' + mail message を挿入します。 + +`C-c C-x C-w, C-c C-x C-s' + signature を挿入します。 + +`C-c C-x C-k' + PGP(*Note PGP::) の公開鍵を挿入します。 + +`C-c C-x t' + 任意の single-part tag を挿入します。 + + + + + + +File: tm-edit-ja.info, Node: enclosure operation, Next: other operations of mime/editor-mode, Prev: single-part operations, Up: Top + +enclosure に対する操作 +********************** + +enclosure を作るための操作としては以下のようなものがあります。 + +`C-c C-x a' + 指定した region を multipart/alternative として囲みます。 + +`C-c C-x p' + 指定した region を multipart/parallel として囲みます。 + +`C-c C-x m' + 指定した region を multipart/mixed として囲みます。 + +`C-c C-x d' + 指定した region を multipart/digest として囲みます。 + +`C-c C-x s' + 指定した region に電子署名を行います。(*Note PGP::) + +`C-c C-x e' + 指定した region を暗号化します。(*Note PGP::) + +`C-c C-x q' + 指定した region 内の tag を無効にし、その tag を文字列として利用で + きるようにします。(現在の版ではうまく働かないことがあります。また、 + 電子署名との併用に関しても不完全です) + + + + + + +File: tm-edit-ja.info, Node: other operations of mime/editor-mode, Next: transfer level, Prev: enclosure operation, Up: Top + +mime/editor-mode におけるその他の操作 +************************************* + +mime/editor-mode におけるその他の操作を説明します。 + +`C-c C-c' + 編集中の message を送信します。 + +`C-c C-x C-p' + 編集中の message を preview します。(*Note + (tm-view-ja)mime/viewer-mode::) + +`C-c C-x C-z' + 編集中の message を送信することなく、mime/editor-mode を終了します。 + +`C-c C-x ?' + help message を表示します。 + +`C-c C-x /' + 大きな message を送信する場合に message/partial 形式に自動分割可能 + とするかどうかを決めます。 + +`C-c C-x 7' + transfer level(*Note transfer level::) を 7bit(*Note (tm-ja)7bit::) + にします。 + +`C-c C-x 8' + transfer level(*Note transfer level::) を 8bit(*Note (tm-ja)8bit::) + にします。 + +`C-c C-x v' + message 全体を電子署名するかどうかを決めます。(*Note PGP::) + +`C-c C-x h' + message 全体を暗号化するかどうかを決めます。(*Note PGP::) + +`C-c C-x ?' + help message を表示します。 + + + + + + +File: tm-edit-ja.info, Node: transfer level, Next: header, Prev: other operations of mime/editor-mode, Up: Top + +transfer level +************** + +message に挿入する data は 7bit(*Note (tm-ja)7bit::) ないし8bit(*Note +(tm-ja)8bit::) もしくは binary(*Note (tm-ja)binary::) で表現することがで +きます。 + +よって、7bit しか通さない MTA(*Note (tm-ja)MTA::) を経由する場合、7bit +の data はそのままで送れますが、8bit や binary の data は 7bit に変換し +なければなりません。 + +同様に、8bit しか通さない MTA を経由する場合、7bit や 8bit の data はそ +のままで送れますが、binary の data は 7bit か 8bit に変換しなければなり +ません。 + +*[Memo]* + EBCDIC しか通さない MTA を経由する場合、7bit の data も base64 等で + 変換しないと送れませんが、私は EBCDIC のことまでは知りません。(^_^; + + 同様に、制御文字を通さない MTA のことや code 変換を行なう MTA も消 + えてなくなって欲しいです。(^_^; + + binary も通す MTA も存在するんでしょうが、今のところあまり一般的と + はいえないでしょう。 + +*transfer level* というのはどの範囲の data まで送れるか +ということを表すものです。tm-edit は `mime-editor/transfer-level' という +変数を持っており、これで transfer level を表現します。 + + + -- Variable: mime-editor/transfer-level + + transfer level を表す。 + + ある data の transfer level がこの値を越える場合、7bit data への変 + 換が行われる。 + + 現在のところ、7 か 8 が有効である。既定値は 7 である。 + + EBCDIC を 5, ASCII printable のみを 6, binary を 9 とすることを計画 + しているが、実装の予定はない。 + + + +*[Memo]* + transfer level は message header (*Note header::) には関係しない。 + RFC 1521 は body において、8bit の data を使えるように RFC + 822(*Note (tm-ja)RFC 822::) を拡張しているが、message header では + us-ascii(*Note (tm-ja)us-ascii::) のみを用いることを求めている。 + + + + + +File: tm-edit-ja.info, Node: header, Next: PGP, Prev: transfer level, Up: Top + +header での非 ASCII 文字の使用 +****************************** + +RFC 1522(*Note (tm-ja)RFC 1522::) では header で非 ASCII 文字を表現する +ための方法を定義しています。 + +これは *encoded-word* (*Note (tm-ja)encoded-word::) と呼ばれる型式で、 +MIME charset(*Note (tm-ja)MIME charset::) を宣言し、かつ、7bit(*Note +(tm-ja)7bit::) で表現することを可能にしています。 + + +* Menu: + +* evil setting in header:: どうしても encoded-word を使いたくない場合 +* API about header:: header に関する関数・変数 + + + +File: tm-edit-ja.info, Node: evil setting in header, Next: API about header, Prev: header, Up: header + +どうしても encoded-word を使いたくない場合 +========================================== + +ところで、header で encoded-word を用いずに生で非 ASCII 文字列を入れるの +は間違っています。なぜなら、Internet ではさまざまな符号化文字集合(*Note +(tm-ja)Coded character set::)が使われており、MIME charset(*Note +(tm-ja)MIME charset::)を明示的に宣言しなければそれらを正確に区別すること +はできないからです。 + +例えば、MIME charset を宣言しなければ iso-8859-1(*Note +(tm-ja)iso-8859-1::) と iso-8859-2(*Note (tm-ja)iso-8859-2::) は見分けが +付かないでしょう。 + +しかしながら、どうしても encoded-word を使いたくない場合には以下の変数を +設定してください。 + + + -- Variable: mime/field-encoding-method-alist + + field 名と符号化法を表す symbol の対からなる連想 list. + + field 名は文字列、もしくは、任意の文字列を表す `t' である。 + + 符号化法は、`nil' ならば無変換、`mime' ならばencoded-word, MIME + charset を表す symbol ならばその符号化文字集合へencoded-word を用い + ずに変換することを表す。 + + field 名は文字列から検索され、指定した文字列が見付からなければ`t' + を用いる。 + + 既定値は + + (("X-Nsubject" . iso-2022-jp-2) + ("Newsgroups" . nil) + (t . mime) + )) + + である。即ち、X-Nsubject field は生の iso-2022-jp-2(*Note + (tm-ja)iso-2022-jp-2::), Newsgroup は無変換、それ以外の field は + encoded-word に変換される。 + + +また、field 毎ではなく、符号化文字集合毎に指定したい場合は、変数 +`mime-eword/charset-encoding-alist' を用いてください。(*Note API about +header::) + + + + +File: tm-edit-ja.info, Node: API about header, Prev: evil setting in header, Up: header + +header に関する関数・変数 +========================= + + -- Command: mime/encode-message-header &optional CODE-CONVERSION + + Current buffer の message header に存在する非 ASCII 文字をnetwork + 表現に変換します。 + + optional 引数の CODE-CONVERSION に非-nil が指定された場合、 + encoded-word にしない field を`mime/field-encoding-method-alist' に + 従って、code 変換します。 + + + -- Function: mime/encode-field STRING + + STRING を field として encoded-word に変換します。 + + 長い行は RFC 822 に従って折返されます。 + + + -- Function: mime-eword/encode-string STRING &optional COLUMN MODE + + STRING を encoded-word に変換します。 + + 長い行は RFC 822 に従って折返されます。 + + COLUMN はこの文字列が何桁目から始まっているかを指定します。既定値は + 0 です。 + + MODE はこの文字列がどういう部分で使われているかを示します。指定でき + る値としては `text', `comment', `phrase' があります。既定値は + `phrase' です。 + + + -- Variable: mime-eword/charset-encoding-alist + + MIME charset を表す symbol と nil, もしくは、`"B"' か`"Q"' の文字列 + の対からなる連想 list. + + `nil' はその MIME charset を encoded-word にしないことを表し、`"B"' + はその MIME charset を B 方式の encoded-word にすることを表し、 + `"Q"' はその MIME charset を Q 方式の encoded-word にすることを表す。 + + + + + +File: tm-edit-ja.info, Node: PGP, Next: Concept Index, Prev: header, Up: Top + +PGP +*** + +tm-edit では *PGP/MIME* (*Note (tm-ja)PGP/MIME::) (RFC 2015) および +*PGP-kazu* (*Note (tm-ja)PGP-kazu::) (draft-kazu-pgp-mime-00.txt) による +暗号化・電子署名・公開鍵の挿入機能を利用することができます。 + +但し、この機能を利用するには Mailcrypt package (*Note (mailcrypt)::) と +pgp command が必要です。 + +また、変数 `mimed-editor/signing-type' と変数 +`mime-editor/encrypting-type' に `pgp-elkins' か `pgp-kazu' を代入してく +ださい。 + +`pgp-elkins' を指定した場合 PGP/MIME が使われ、`pgp-kazu' を指定した場合 +PGP-kazu が使われます。 + + + -- Variable: mimed-editor/signing-type + + PGP での電子書名の形式を指定します。 + + `pgp-elkins' か `pgp-kazu' を指定してください。 + + 既定値は `nil' です。 + + + -- Variable: mime-editor/encrypting-type + + PGP での暗号化の形式を指定します。 + + `pgp-elkins' か `pgp-kazu' を指定してください。 + + 既定値は `nil' です。 + + + + + +File: tm-edit-ja.info, Node: Concept Index, Next: Function Index, Prev: PGP, Up: Top + +概念索引 +******** + + +* Menu: + +* enclosure: mime/editor-mode. 49. +* encoded-word: header. 9. +* mime/editor-mode: mime/editor-mode. 6. +* multi-part 開始 tag: mime/editor-mode. 41. +* multi-part 終了 tag: mime/editor-mode. 46. +* PGP-kazu: PGP. 7. +* PGP/MIME: PGP. 6. +* tag: mime/editor-mode. 7. +* transfer level: transfer level. 28. + + + +File: tm-edit-ja.info, Node: Function Index, Next: Variable Index, Prev: Concept Index, Up: Top + +関数索引 +******** + + +* Menu: + +* mime/encode-field: API about header. 17. +* mime/encode-message-header: API about header. 7. +* mime-eword/encode-string: API about header. 24. + + + +File: tm-edit-ja.info, Node: Variable Index, Prev: Function Index, Up: Top + +変数索引 +******** + + +* Menu: + +* mimed-editor/signing-type: PGP. 22. +* mime-editor/encrypting-type: PGP. 31. +* mime-editor/transfer-level: transfer level. 34. +* mime-eword/charset-encoding-alist: API about header. 38. +* mime/field-encoding-method-alist: evil setting in header. 21. diff --git a/doc/tm-edit-ja.sgml b/doc/tm-edit-ja.sgml new file mode 100644 index 0000000..b0566e0 --- /dev/null +++ b/doc/tm-edit-ja.sgml @@ -0,0 +1,460 @@ + + + +tm-edit Manual(日本語版) +<author>守岡 知彦 <mail>morioka@jaist.ac.jp</mail> +<date>1996/10/11 + +<toc> +</head> + +<body> + +<abstract> +<p> +tm-edit は GNU Emacs で動作する汎用的な MIME viewer です。 +<p> +tm-edit は GNUS の作者としても有名な 梅田 政信 +<mail>umerin@mse.kyutech.ac.jp</mail> さんが書かれた +<file>mime.el</file> を基に + +<ul> +<li> +RFC 1521/1522 化 +<li> +<a file="tm-ja" node="Content-Disposition">Content-Disposition +field</a> (RFC 1806) の利用 +<li> +入れ子になった <a file="tm-ja" node="multipart"> multi-part +message</a> +<li> +<dref node="PGP"> +<li> +file type における parameter の自動指定の強化 +</ul> + +<noindent> +などの改良を行いました。 +<p> +<dref file="tm-ja" node="tm-MUA"> では tm-edit を使うことにより、容易 +に MIME message を作成できます。 +</abstract> + +<h1> mime/editor-mode +<node> mime/editor-mode +<p> +<concept name="mime/editor-mode"> は MIME message を作成するための +minor mode です。この mode では <concept name="tag"> を使ってさまざま +な種類の data を表現し、<a file="tm-ja" node="multipart">複数の部分か +らなる message</a> を編集することを可能にしています。 +<p> +tag には + +<ul> +<li> single-part tag +<li> multi-part tag +</ul> + +<noindent> +の2つがあります。 +<p> +single-part tag は single part を表現するための tag で、 +<p> +<verb> + --[[TYPE/SUBTYPE;PARAMETERS][ENCODING] + OPTIONAL-FIELDS] +</verb> +<p> +<noindent> +というような形をしています。 +<p> +TYPE/SUBTYPE および PARAMETERS は <dref file="tm-ja" +node="Content-Type field"> の type/subtype および parameters を表しま +す。TYPE/SUBTYPE は必須であり、PARAMETERS は省略可です。 +<p> +ENCODING は Content-Transfer-Encoding field を表します。これも省略可で +す。 +<p> +OPTIONAL-FIELDS は Content-Type, Content-Transfer-Encoding 以外の +field を書くための部分で、省略可です。 +<p> +multi-part tag は <a file="tm-ja" node="multipart">multi part</a> を表 +現するための tag で、 +<p> +<verb> + --<<TYPE>>-@{ +</verb> +<p> +<noindent> +という形の <concept name="multi-part 開始 tag"> と呼ばれる multi part +の開始を示す tag と +<p> +<verb> + --@}-<<TYPE>> +</verb> +<p> +<noindent> +という形の <concept name="multi-part 終了 tag"> と呼ばれる multi part +の終了を示す tag があります。 +<p> +また、multi-part 開始 tag と multi-part 終了 tag で囲まれた部分を +<concept name="enclosure"> と呼びます。 + + +<h1> single-part に対する操作 +<node> single-part operations +<p> +single-part を作るための操作には以下のようなものがあります。 + +<kl> +<kt>C-c C-x C-t +<kd> +text part を表す single-part tag を挿入します。 +</kd> +<kt>C-c C-x C-i +<kd> +file を MIME part として添付します。 +</kd> +<kt>C-c C-x C-e +<kd> +external part を挿入します。 +</kd> +<kt>C-c C-x C-v +<kd> +<kbd>C-g</kbd> が押されるまで録音を行い、音声 part を挿入します。(使 +用できない場合があります) +</kd> +<kt>C-c C-x C-y +<kd> +現在表示中の (mail or news) message を挿入します。(実際の動作は使用し +ている MUA に依存します) +</kd> +<kt>C-c C-x C-m +<kd> +mail message を挿入します。 +</kd> +<dt><key>C-c C-x C-w</key>, <key>C-c C-x C-s</key> +<dd> +signature を挿入します。 +</dd> +<kt>C-c C-x C-k +<kd> +<dref node="PGP"> の公開鍵を挿入します。 +</kd> +<kt>C-c C-x t +<kd> +任意の single-part tag を挿入します。 +</kl> + + +<h1> enclosure に対する操作 +<node> enclosure operation +<p> +enclosure を作るための操作としては以下のようなものがあります。 + +<kl> +<kt>C-c C-x a +<kd> +指定した region を multipart/alternative として囲みます。 +</kd> +<kt>C-c C-x p +<kd> +指定した region を multipart/parallel として囲みます。 +</kd> +<kt>C-c C-x m +<kd> +指定した region を multipart/mixed として囲みます。 +</kd> +<kt>C-c C-x d +<kd> +指定した region を multipart/digest として囲みます。 +</kd> +<kt>C-c C-x s +<kd> +指定した region に電子署名を行います。(<ref node="PGP">) +</kd> +<kt>C-c C-x e +<kd> +指定した region を暗号化します。(<ref node="PGP">) +<kt>C-c C-x q +<kd> +指定した region 内の tag を無効にし、その tag を文字列として利用できる +ようにします。(現在の版ではうまく働かないことがあります。また、電子署 +名との併用に関しても不完全です) +</kl> + + +<h1> mime/editor-mode におけるその他の操作 +<node> other operations of mime/editor-mode +<p> +mime/editor-mode におけるその他の操作を説明します。 + +<kl> +<kt>C-c C-c +<kd> +編集中の message を送信します。 +</kd> +<kt>C-c C-x C-p +<kd> +編集中の message を preview します。(<ref file="tm-view-ja" +node="mime/viewer-mode">) +</kd> +<kt>C-c C-x C-z +<kd> +編集中の message を送信することなく、mime/editor-mode を終了します。 +</kd> +<kt>C-c C-x ? +<kd> +help message を表示します。 +</kd> +<kt>C-c C-x / +<kd> +大きな message を送信する場合に message/partial 形式に自動分割可能とす +るかどうかを決めます。 +</kd> +<kt>C-c C-x 7 +<kd> +<dref node="transfer level"> を <dref file="tm-ja" node="7bit"> にしま +す。 +</kd> +<kt>C-c C-x 8 +<kd> +<dref node="transfer level"> を <dref file="tm-ja" node="8bit"> にしま +す。 +</kd> +<kt>C-c C-x v +<kd> +message 全体を電子署名するかどうかを決めます。(<ref node="PGP">) +</kd> +<kt>C-c C-x h +<kd> +message 全体を暗号化するかどうかを決めます。(<ref node="PGP">) +<kt>C-c C-x ? +<kd> +help message を表示します。 +</kl> + + +<h1> transfer level +<node> transfer level +<p> +message に挿入する data は <dref file="tm-ja" node="7bit"> ないし<dref +file="tm-ja" node="8bit"> もしくは <dref file="tm-ja" node="binary"> +で表現することができます。 +<p> +よって、7bit しか通さない <dref file="tm-ja" node="MTA"> を経由する場 +合、7bit の data はそのままで送れますが、8bit や binary の data は +7bit に変換しなければなりません。 +<p> +同様に、8bit しか通さない MTA を経由する場合、7bit や 8bit の data は +そのままで送れますが、binary の data は 7bit か 8bit に変換しなければ +なりません。 +<p> +<memo> +EBCDIC しか通さない MTA を経由する場合、7bit の data も base64 等で変 +換しないと送れませんが、私は EBCDIC のことまでは知りません。(^_^; +<p> +同様に、制御文字を通さない MTA のことや code 変換を行なう MTA も消えて +なくなって欲しいです。(^_^; +<p> +binary も通す MTA も存在するんでしょうが、今のところあまり一般的とはい +えないでしょう。 +</memo> +<p> +<concept name="transfer level"> というのはどの範囲の data まで送れるか +ということを表すものです。tm-edit は +<code>mime-editor/transfer-level</code> という変数を持っており、これで +transfer level を表現します。 + + +<defvar name="mime-editor/transfer-level"> +<p> +transfer level を表す。 +<p> +ある data の transfer level がこの値を越える場合、7bit data への変換が +行われる。 +<p> +現在のところ、7 か 8 が有効である。既定値は 7 である。 +<p> +EBCDIC を 5, ASCII printable のみを 6, binary を 9 とすることを計画し +ているが、実装の予定はない。 +</defvar> + + +<memo> +transfer level は <a node="header">message header</a> には関係しない。 +RFC 1521 は body において、8bit の data を使えるように <dref +file="tm-ja" node="RFC 822"> を拡張しているが、message header では +<dref file="tm-ja" node="us-ascii"> のみを用いることを求めている。 +</memo> + + +<h1> header での非 ASCII 文字の使用<node> header +<p> +<dref file="tm-ja" node="RFC 1522"> では header で非 ASCII 文字を表現 +するための方法を定義しています。 +<p> +これは <a file="tm-ja" node="encoded-word"><concept +name="encoded-word"></a> と呼ばれる型式で、<dref file="tm-ja" +node="MIME charset"> を宣言し、かつ、<dref file="tm-ja" node="7bit"> +で表現することを可能にしています。 + + +<h2> どうしても encoded-word を使いたくない場合 +<node> evil setting in header +<p> +ところで、header で encoded-word を用いずに生で非 ASCII 文字列を入れる +のは間違っています。なぜなら、Internet ではさまざまな<a file="tm-ja" +node="Coded character set">符号化文字集合</a>が使われており、<dref +file="tm-ja" node="MIME charset">を明示的に宣言しなければそれらを正確 +に区別することはできないからです。 +<p> +例えば、MIME charset を宣言しなければ <dref file="tm-ja" +node="iso-8859-1"> と <dref file="tm-ja" node="iso-8859-2"> は見分けが +付かないでしょう。 +<p> +しかしながら、どうしても encoded-word を使いたくない場合には以下の変数 +を設定してください。 + + +<defvar name="mime/field-encoding-method-alist"> +<p> +field 名と符号化法を表す symbol の対からなる連想 list. +<p> +field 名は文字列、もしくは、任意の文字列を表す <code>t</code> である。 +<p> +符号化法は、<code>nil</code> ならば無変換、<code>mime</code> ならば +encoded-word, MIME charset を表す symbol ならばその符号化文字集合へ +encoded-word を用いずに変換することを表す。 +<p> +field 名は文字列から検索され、指定した文字列が見付からなければ +<code>t</code> を用いる。 +<p> +既定値は + +<lisp> +(("X-Nsubject" . iso-2022-jp-2) + ("Newsgroups" . nil) + (t . mime) + )) +</lisp> + +<noindent> +である。即ち、X-Nsubject field は生の <dref file="tm-ja" +node="iso-2022-jp-2">, Newsgroup は無変換、それ以外の field は +encoded-word に変換される。 +</defvar> + +<p> +また、field 毎ではなく、符号化文字集合毎に指定したい場合は、変数 +<code>mime-eword/charset-encoding-alist</code> を用いてください。 +(<ref node="API about header">) + + +<h2> header に関する関数・変数 +<node> API about header +<p> +<define type="Command" name="mime/encode-message-header"> +<opts> code-conversion +<p> +Current buffer の message header に存在する非 ASCII 文字を +network 表現に変換します。 +<p> +optional 引数の <var>code-conversion</var> に非-nil が指定された場合、 +encoded-word にしない field を +<code>mime/field-encoding-method-alist</code> に従って、code 変換しま +す。 +</define> + +<defun name="mime/encode-field"> +<args> string +<p> +<var>string</var> を field として encoded-word に変換します。 +<p> +長い行は RFC 822 に従って折返されます。 +</defun> + +<defun name="mime-eword/encode-string"> +<args> string <opts> column mode +<p> +<var>string</var> を encoded-word に変換します。 +<p> +長い行は RFC 822 に従って折返されます。 +<p> +<var>column</var> はこの文字列が何桁目から始まっているかを指定します。 +既定値は 0 です。 +<p> +<var>mode</var> はこの文字列がどういう部分で使われているかを示します。 +指定できる値としては <code>text</code>, <code>comment</code>, +<code>phrase</code> があります。既定値は <code>phrase</code> です。 +</defun> + +<defvar name="mime-eword/charset-encoding-alist"> +<p> +MIME charset を表す symbol と nil, もしくは、<code>"B"</code> か +<code>"Q"</code> の文字列の対からなる連想 list. +<p> +<code>nil</code> はその MIME charset を encoded-word にしないことを表 +し、<code>"B"</code> はその MIME charset を B 方式の encoded-word にす +ることを表し、<code>"Q"</code> はその MIME charset を Q 方式の +encoded-word にすることを表す。 +</defvar> + + +<h1> PGP +<node> PGP +<p> +tm-edit では <a file="tm-ja" node="PGP/MIME"><concept +name="PGP/MIME"></a> (RFC 2015) および <a file="tm-ja" +node="PGP-kazu"><concept name="PGP-kazu"></a> +(draft-kazu-pgp-mime-00.txt) による暗号化・電子署名・公開鍵の挿入機能 +を利用することができます。 +<p> +但し、この機能を利用するには <a file="mailcrypt">Mailcrypt package</a> +と pgp command が必要です。 +<p> +また、変数 <code>mimed-editor/signing-type</code> と変数 +<code>mime-editor/encrypting-type</code> に <code>pgp-elkins</code> か +<code>pgp-kazu</code> を代入してください。 +<p> +<code>pgp-elkins</code> を指定した場合 PGP/MIME が使われ、 +<code>pgp-kazu</code> を指定した場合 PGP-kazu が使われます。 + + +<defvar name="mimed-editor/signing-type"> +<p> +PGP での電子書名の形式を指定します。 +<p> +<code>pgp-elkins</code> か <code>pgp-kazu</code> を指定してください。 +<p> +既定値は <code>nil</code> です。 +</defvar> + +<defvar name="mime-editor/encrypting-type"> +<p> +PGP での暗号化の形式を指定します。 +<p> +<code>pgp-elkins</code> か <code>pgp-kazu</code> を指定してください。 +<p> +既定値は <code>nil</code> です。 +</defvar> + + +<h1> 概念索引 +<node> Concept Index + +<cindex> + + +<h1> 関数索引 +<node> Function Index + +<findex> + + +<h1> 変数索引 +<node> Variable Index + +<vindex> + +</body> diff --git a/doc/tm-edit-ja.texi b/doc/tm-edit-ja.texi new file mode 100644 index 0000000..b1e3021 --- /dev/null +++ b/doc/tm-edit-ja.texi @@ -0,0 +1,462 @@ +\input texinfo.tex +@setfilename tm-edit-ja.info +@settitle{tm-edit Manual(日本語版)} +@titlepage +@title tm-edit Manual(日本語版) +@author 守岡 知彦 <morioka@@jaist.ac.jp> +@subtitle 1996/10/11 +@end titlepage +@node Top, mime/editor-mode, (dir), (dir) +@top tm-edit Manual(日本語版) + +@ifinfo + +tm-edit は GNU Emacs で動作する汎用的な MIME viewer です。@refill + +tm-edit は GNUS の作者としても有名な 梅田 政信 +<umerin@@mse.kyutech.ac.jp> さんが書かれた +@file{mime.el} を基に + +@itemize @bullet +@item +RFC 1521/1522 化 +@item +Content-Disposition field (@ref{(tm-ja)Content-Disposition}) (RFC 1806) +の利用 +@item +入れ子になった multi-part message (@ref{(tm-ja)multipart}) +@item +PGP(@ref{PGP}) +@item +file type における parameter の自動指定の強化 +@end itemize + +@noindent +などの改良を行いました。 + +tm-MUA(@ref{(tm-ja)tm-MUA}) では tm-edit を使うことにより、容易に MIME +message を作成できます。 +@end ifinfo + +@menu +* mime/editor-mode:: +* single-part operations:: single-part に対する操作 +* enclosure operation:: enclosure に対する操作 +* other operations of mime/editor-mode:: mime/editor-mode におけるその他の操作 +* transfer level:: +* header:: header での非 ASCII 文字の使用 +* PGP:: +* Concept Index:: 概念索引 +* Function Index:: 関数索引 +* Variable Index:: 変数索引 +@end menu + +@node mime/editor-mode, single-part operations, Top, Top +@chapter mime/editor-mode + +@strong{mime/editor-mode}@cindex{mime/editor-mode} は MIME message を作 +成するための minor mode です。この mode では @strong{tag}@cindex{tag} を +使ってさまざまな種類の data を表現し、複数の部分からなる message +(@ref{(tm-ja)multipart}) を編集することを可能にしています。@refill + +tag には + +@itemize @bullet +@item + single-part tag +@item + multi-part tag +@end itemize + +@noindent +の2つがあります。 + +single-part tag は single part を表現するための tag で、@refill + +@example + --[[TYPE/SUBTYPE;PARAMETERS][ENCODING] + OPTIONAL-FIELDS] +@end example + +@noindent +というような形をしています。 + +TYPE/SUBTYPE および PARAMETERS は Content-Type +field(@ref{(tm-ja)Content-Type field}) の type/subtype および parameters +を表します。TYPE/SUBTYPE は必須であり、PARAMETERS は省略可です。@refill + +ENCODING は Content-Transfer-Encoding field を表します。これも省略可です。 +@refill + +OPTIONAL-FIELDS は Content-Type, Content-Transfer-Encoding 以外の field +を書くための部分で、省略可です。@refill + +multi-part tag は multi part (@ref{(tm-ja)multipart}) を表現するための +tag で、@refill + +@example + --<<TYPE>>-@@@{ +@end example + +@noindent +という形の @strong{multi-part 開始 tag}@cindex{multi-part 開始 tag} と呼ばれる multi part +の開始を示す tag と + +@example + --@@@}-<<TYPE>> +@end example + +@noindent +という形の @strong{multi-part 終了 tag}@cindex{multi-part 終了 tag} と呼ばれる multi part +の終了を示す tag があります。 + +また、multi-part 開始 tag と multi-part 終了 tag で囲まれた部分を +@strong{enclosure}@cindex{enclosure} と呼びます。 + + +@node single-part operations, enclosure operation, mime/editor-mode, Top +@chapter single-part に対する操作 + +single-part を作るための操作には以下のようなものがあります。 + +@table @kbd +@item @key{C-c C-x C-t} +text part を表す single-part tag を挿入します。 + +@item @key{C-c C-x C-i} +file を MIME part として添付します。 + +@item @key{C-c C-x C-e} +external part を挿入します。 + +@item @key{C-c C-x C-v} +@kbd{C-g} が押されるまで録音を行い、音声 part を挿入します。(使 +用できない場合があります) + +@item @key{C-c C-x C-y} +現在表示中の (mail or news) message を挿入します。(実際の動作は使用し +ている MUA に依存します) + +@item @key{C-c C-x C-m} +mail message を挿入します。 + +@item @key{C-c C-x C-w}, @key{C-c C-x C-s} +signature を挿入します。 + +@item @key{C-c C-x C-k} +PGP(@ref{PGP}) の公開鍵を挿入します。 + +@item @key{C-c C-x t} +任意の single-part tag を挿入します。 + +@end table + + + +@node enclosure operation, other operations of mime/editor-mode, single-part operations, Top +@chapter enclosure に対する操作 + +enclosure を作るための操作としては以下のようなものがあります。 + +@table @kbd +@item @key{C-c C-x a} +指定した region を multipart/alternative として囲みます。 + +@item @key{C-c C-x p} +指定した region を multipart/parallel として囲みます。 + +@item @key{C-c C-x m} +指定した region を multipart/mixed として囲みます。 + +@item @key{C-c C-x d} +指定した region を multipart/digest として囲みます。 + +@item @key{C-c C-x s} +指定した region に電子署名を行います。(@ref{PGP}) + +@item @key{C-c C-x e} +指定した region を暗号化します。(@ref{PGP}) + +@item @key{C-c C-x q} +指定した region 内の tag を無効にし、その tag を文字列として利用できる +ようにします。(現在の版ではうまく働かないことがあります。また、電子署 +名との併用に関しても不完全です) + +@end table + + + +@node other operations of mime/editor-mode, transfer level, enclosure operation, Top +@chapter mime/editor-mode におけるその他の操作 + +mime/editor-mode におけるその他の操作を説明します。 + +@table @kbd +@item @key{C-c C-c} +編集中の message を送信します。 + +@item @key{C-c C-x C-p} +編集中の message を preview します。(@ref{(tm-view-ja)mime/viewer-mode}) + +@item @key{C-c C-x C-z} +編集中の message を送信することなく、mime/editor-mode を終了します。 + +@item @key{C-c C-x ?} +help message を表示します。 + +@item @key{C-c C-x /} +大きな message を送信する場合に message/partial 形式に自動分割可能とす +るかどうかを決めます。 + +@item @key{C-c C-x 7} +transfer level(@ref{transfer level}) を 7bit(@ref{(tm-ja)7bit}) にしま +す。 + +@item @key{C-c C-x 8} +transfer level(@ref{transfer level}) を 8bit(@ref{(tm-ja)8bit}) にしま +す。 + +@item @key{C-c C-x v} +message 全体を電子署名するかどうかを決めます。(@ref{PGP}) + +@item @key{C-c C-x h} +message 全体を暗号化するかどうかを決めます。(@ref{PGP}) + +@item @key{C-c C-x ?} +help message を表示します。 + +@end table + + + +@node transfer level, header, other operations of mime/editor-mode, Top +@chapter transfer level + +message に挿入する data は 7bit(@ref{(tm-ja)7bit}) ないし +8bit(@ref{(tm-ja)8bit}) もしくは binary(@ref{(tm-ja)binary}) で表現する +ことができます。@refill + +よって、7bit しか通さない MTA(@ref{(tm-ja)MTA}) を経由する場合、7bit の +data はそのままで送れますが、8bit や binary の data は 7bit に変換しなけ +ればなりません。@refill + +同様に、8bit しか通さない MTA を経由する場合、7bit や 8bit の data はそ +のままで送れますが、binary の data は 7bit か 8bit に変換しなければなり +ません。@refill + +@noindent +@strong{[Memo]} +@quotation +EBCDIC しか通さない MTA を経由する場合、7bit の data も base64 等で変 +換しないと送れませんが、私は EBCDIC のことまでは知りません。(^_^; + +同様に、制御文字を通さない MTA のことや code 変換を行なう MTA も消えてな +くなって欲しいです。(^_^;@refill + +binary も通す MTA も存在するんでしょうが、今のところあまり一般的とはいえ +ないでしょう。 +@end quotation + +@strong{transfer level}@cindex{transfer level} というのはどの範囲の data まで送れるか +ということを表すものです。tm-edit は +@code{mime-editor/transfer-level} という変数を持っており、これで +transfer level を表現します。 + + +@defvar mime-editor/transfer-level + +transfer level を表す。@refill + +ある data の transfer level がこの値を越える場合、7bit data への変換が行 +われる。@refill + +現在のところ、7 か 8 が有効である。既定値は 7 である。@refill + +EBCDIC を 5, ASCII printable のみを 6, binary を 9 とすることを計画して +いるが、実装の予定はない。 +@end defvar + + + +@noindent +@strong{[Memo]} +@quotation +transfer level は message header (@ref{header}) には関係しない。RFC 1521 +は body において、8bit の data を使えるように RFC 822(@ref{(tm-ja)RFC +822}) を拡張しているが、message header では +us-ascii(@ref{(tm-ja)us-ascii}) のみを用いることを求めている。 +@end quotation + + + +@node header, PGP, transfer level, Top +@chapter header での非 ASCII 文字の使用 + +RFC 1522(@ref{(tm-ja)RFC 1522}) では header で非 ASCII 文字を表現するた +めの方法を定義しています。@refill + +これは @strong{encoded-word}@cindex{encoded-word} +(@ref{(tm-ja)encoded-word}) と呼ばれる型式で、MIME +charset(@ref{(tm-ja)MIME charset}) を宣言し、かつ、 +7bit(@ref{(tm-ja)7bit}) で表現することを可能にしています。 + + +@menu +* evil setting in header:: どうしても encoded-word を使いたくない場合 +* API about header:: header に関する関数・変数 +@end menu + +@node evil setting in header, API about header, header, header +@section どうしても encoded-word を使いたくない場合 + +ところで、header で encoded-word を用いずに生で非 ASCII 文字列を入れるの +は間違っています。なぜなら、Internet ではさまざまな符号化文字集合 +(@ref{(tm-ja)Coded character set})が使われており、MIME +charset(@ref{(tm-ja)MIME charset})を明示的に宣言しなければそれらを正確に +区別することはできないからです。@refill + +例えば、MIME charset を宣言しなければ +iso-8859-1(@ref{(tm-ja)iso-8859-1}) と +iso-8859-2(@ref{(tm-ja)iso-8859-2}) は見分けが付かないでしょう。@refill + +しかしながら、どうしても encoded-word を使いたくない場合には以下の変数 +を設定してください。 + + +@defvar mime/field-encoding-method-alist + +field 名と符号化法を表す symbol の対からなる連想 list.@refill + +field 名は文字列、もしくは、任意の文字列を表す @code{t} である。@refill + +符号化法は、@code{nil} ならば無変換、@code{mime} ならばencoded-word, +MIME charset を表す symbol ならばその符号化文字集合へencoded-word を用い +ずに変換することを表す。@refill + +field 名は文字列から検索され、指定した文字列が見付からなければ@code{t} +を用いる。@refill + +既定値は + +@lisp +(("X-Nsubject" . iso-2022-jp-2) + ("Newsgroups" . nil) + (t . mime) + )) +@end lisp + +@noindent +である。即ち、X-Nsubject field は生の iso-2022-jp-2(@ref{(tm-ja)iso-2022-jp-2}), Newsgroup は無変換、それ以外の field は +encoded-word に変換される。 +@end defvar + + +また、field 毎ではなく、符号化文字集合毎に指定したい場合は、変数 +@code{mime-eword/charset-encoding-alist} を用いてください。 +(@ref{API about header}) + + +@node API about header, , evil setting in header, header +@section header に関する関数・変数 + +@deffn{Command} mime/encode-message-header &optional code-conversion + +Current buffer の message header に存在する非 ASCII 文字をnetwork 表現に +変換します。@refill + +optional 引数の @var{code-conversion} に非-nil が指定された場合、 +encoded-word にしない field を@code{mime/field-encoding-method-alist} に +従って、code 変換します。 +@end deffn + + +@defun mime/encode-field string + +@var{string} を field として encoded-word に変換します。@refill + +長い行は RFC 822 に従って折返されます。 +@end defun + + +@defun mime-eword/encode-string string &optional column mode + +@var{string} を encoded-word に変換します。@refill + +長い行は RFC 822 に従って折返されます。@refill + +@var{column} はこの文字列が何桁目から始まっているかを指定します。既定値 +は 0 です。@refill + +@var{mode} はこの文字列がどういう部分で使われているかを示します。指定で +きる値としては @code{text}, @code{comment}, @code{phrase} があります。既 +定値は @code{phrase} です。 +@end defun + + +@defvar mime-eword/charset-encoding-alist + +MIME charset を表す symbol と nil, もしくは、@code{"B"} か@code{"Q"} の +文字列の対からなる連想 list.@refill + +@code{nil} はその MIME charset を encoded-word にしないことを表し、 +@code{"B"} はその MIME charset を B 方式の encoded-word にすることを表し、 +@code{"Q"} はその MIME charset を Q 方式の encoded-word にすることを表す。 +@end defvar + + + +@node PGP, Concept Index, header, Top +@chapter PGP + +tm-edit では @strong{PGP/MIME}@cindex{PGP/MIME} (@ref{(tm-ja)PGP/MIME}) +(RFC 2015) および @strong{PGP-kazu}@cindex{PGP-kazu} +(@ref{(tm-ja)PGP-kazu}) (draft-kazu-pgp-mime-00.txt) による暗号化・電子 +署名・公開鍵の挿入機能を利用することができます。@refill + +但し、この機能を利用するには Mailcrypt package (@ref{(mailcrypt)}) と +pgp command が必要です。@refill + +また、変数 @code{mimed-editor/signing-type} と変数 +@code{mime-editor/encrypting-type} に @code{pgp-elkins} か +@code{pgp-kazu} を代入してください。@refill + +@code{pgp-elkins} を指定した場合 PGP/MIME が使われ、 +@code{pgp-kazu} を指定した場合 PGP-kazu が使われます。 + + +@defvar mimed-editor/signing-type + +PGP での電子書名の形式を指定します。@refill + +@code{pgp-elkins} か @code{pgp-kazu} を指定してください。@refill + +既定値は @code{nil} です。 +@end defvar + + +@defvar mime-editor/encrypting-type + +PGP での暗号化の形式を指定します。@refill + +@code{pgp-elkins} か @code{pgp-kazu} を指定してください。@refill + +既定値は @code{nil} です。 +@end defvar + + + +@node Concept Index, Function Index, PGP, Top +@chapter 概念索引 + +@printindex cp + +@node Function Index, Variable Index, Concept Index, Top +@chapter 関数索引 + +@printindex fn + +@node Variable Index, , Function Index, Top +@chapter 変数索引 + +@printindex vr +@bye diff --git a/doc/tm-ja.info b/doc/tm-ja.info new file mode 100644 index 0000000..9a3c1e9 --- /dev/null +++ b/doc/tm-ja.info @@ -0,0 +1,2368 @@ +Info file: tm-ja.info, -*-Text-*- +produced by `texinfo-format-buffer' +from file `tm-ja.texi' +using `texinfmt.el' version 2.32 of 19 November 1993. + + + +File: tm-ja.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir) + +tm 7.90 Manual(日本語版) +************************** + + +This file documents tm, a MIME package for GNU Emacs. + +GNU Emacs で MIME を楽しむための package である `tm' について説明します。 + +* Menu: + +* Introduction:: tm って何? +* Setting:: 設定 +* Bug report:: bug 報告の仕方 +* Concept Index:: 概念索引 +* Variable Index:: 変数索引 + + + +File: tm-ja.info, Node: Introduction, Next: Setting, Prev: Top, Up: Top + +tm って何? +*********** + +tm は GNU Emacs で MIME を楽しむための package です。tm を使うと、 + + * tm-view による MIME message の閲覧・再生 + * tm-edit による MIME message の作成 + * mh-e, GNUS, Gnus, RMAIL, VM での MIME 機能の強化 + +というようなことが行なえます。 + +個別の項目については以下を御参照下さい: + + * tm-MUA for Gnus (*Note (gnus-mime-ja)::) + * tm-MUA for GNUS (*Note (tm-gnus-ja)::) + * tm-MUA for mh-e (*Note (tm-mh-e-ja)::) + * mime/viewer-mode (*Note (tm-view-ja)::) + * mime/editor-mode (*Note (tm-edit-ja)::) + + + +* Menu: + +* What is MIME?:: ところで、MIME っていったい何? +* How is MIME?:: MIME でどんなこと出来るの? +* Glossary:: 用語 + + + +File: tm-ja.info, Node: What is MIME?, Next: How is MIME?, Prev: Introduction, Up: Introduction + +ところで、MIME っていったい何? +=============================== + +*MIME* とは *Multipurpose Internet Mail +Extensions* の略で、従来の、基本的に us-ascii(*Note us-ascii::) の plain +text(*Note plain text::) であった Internet Mail/News に対する拡張になっ +ています。 + +MIME には、RFC 1521 (*Note RFC 1521::) で規定されている多目的message の +側面と、RFC 1522 (*Note encoded-word::) で規定されているmessage header +における非 ASCII 文字の表現法のような、多言語化の側面があります。 + + + + +File: tm-ja.info, Node: How is MIME?, Next: Glossary, Prev: What is MIME?, Up: Introduction + +MIME でどんなこと出来るの? +=========================== + +まず、多目的 message の側面を考えると、従来の Internet Mail/News が基本 +的に us-ascii(*Note us-ascii::) の plain text(*Note plain text::) しか表 +現できなかったのに対して、絵や音声や動画などの様々な data を表現すること +ができます。 + +また、面白いことに、ftp (*Note FTP::) や ftp mail をしたり、file を取り +出したり、patch を当てたり、といった、『手続き』を送ることができます。 + +# もっとも、こういうのは、ある意味では危険だったりするのですが。 + +こうした message は、内容の種類を +*Content-Type* (*Note Content-Type field::) と +いう field に書いた message の型で指定します。すると、受け手は各 +content-type(*Note content-type::) に対応した処理の種類を設定しておいて、 +message を『読む』だけで、絵や動画を見たり、音を鳴らしたり、ftp で file +を取ったり、fileを取り出したりできます。 + +また、ある message に複数の content-type が存在する +*Multipart* (*Note multipart::) の message という +のも可能で、一つの message の中に、絵と音と文章を入れたりといったような +ことができます。 + +MIME にはこのような『宣言』の思想があるように思われます。つまり、 +us-ascii(*Note us-ascii::) を「アルファベット」とする MIME という +message 記述言語で、いろいろなものを記述していこうということです。これは +RFC 1522 (*Note encoded-word::) で規定された encoded-word でもいえると思 +います。 + +そして、受け手は、理解できないものは無視するが、その結果、data を壊すこ +とはしないというものがあります。 + +例えば、ASCII (*Note ASCII::) しか表示できない環境で JIS X0208 (*Note +JIS X0208::) と ISO 8859-1 (*Note ISO 8859-1::) が混じったテキストをもらっ +たら困る訳ですが、そういう時だけ多言語端末を開くというような技が使えます。 + +もちろん、MULE (*Note MULE::) のような多言語環境においても MUA (*Note +MUA::) に対して明示的に MIME charset (*Note MIME charset::) を示すことは +有益でしょう。 + + + + +File: tm-ja.info, Node: Glossary, Prev: How is MIME?, Up: Introduction + +用語 +==== + +tm で使われている用語について解説します。 + +* Menu: + +* 7bit:: +* 8bit:: +* 94 character set:: 94 文字集合 +* 96 character set:: 96 文字集合 +* 94x94 character set:: 94×94 文字集合 +* ASCII:: +* Base64:: +* binary:: +* Character Set:: Character Set(文字集合) +* cn-gb:: cn-gb, gb2312 +* cn-big5:: cn-big5, big5 +* CNS:: CNS 11643-1992 +* Coded character set:: Coded character set(符号化文字集合), Character code(文字符号) +* Code extension:: Code extension(符号拡張) +* Content-Disposition:: Content-Disposition field +* content-type:: +* Content-Type field:: +* Emacs:: +* encoded-word:: +* encapsulation:: +* euc-kr:: +* FTP:: FTP +* GB 2312:: GB 2312-1980 +* GB 8565.2:: GB 8565.2-1988 +* hz-gb2312:: +* ISO 2022:: +* iso-2022-cn:: +* iso-2022-cn-ext:: +* iso-2022-jp:: +* iso-2022-jp-2:: +* iso-2022-kr:: +* ISO 646:: +* ISO 8859-1:: +* iso-8859-1:: +* ISO 8859-2:: +* iso-8859-2:: +* ISO 8859-3:: +* ISO 8859-4:: +* ISO 8859-5:: +* iso-8859-5:: +* ISO 8859-6:: +* ISO 8859-7:: +* iso-8859-7:: +* ISO 8859-8:: +* ISO 8859-9:: +* ISO-IR-165:: ISO-IR-165, CCITT Extended GB +* JIS X0201:: +* JIS C6226:: JIS C6226-1978 +* JIS X0208:: +* JIS X0212:: JIS X0212-1990 +* koi8-r:: +* KS C5601:: KS C5601-1987 +* message:: +* message/rfc822:: +* method:: +* MIME:: +* MIME charset:: +* MTA:: +* MUA:: +* MULE:: +* multipart:: Multipart +* multipart/alternative:: +* multipart/digest:: +* multipart/encrypted:: +* multipart/mixed:: +* multipart/parallel:: +* multipart/signed:: +* PGP:: +* PGP-kazu:: +* PGP/MIME:: +* Quoted-Printable:: +* RFC 821:: +* RFC 822:: +* RFC 934:: +* RFC 1036:: +* RFC 1153:: +* RFC 1521:: RFC 1521 +* RFC 1557:: +* RFC 1922:: +* plain text:: +* Security multipart:: +* text/enriched:: +* text/plain:: +* tm-kernel:: tm-kernel, tm +* tm-MUA:: +* us-ascii:: + + + +File: tm-ja.info, Node: 7bit, Next: 8bit, Prev: Glossary, Up: Glossary + +7bit +---- + +ここでは 0 から 127 の整数を指します。 + +0 から 127 の整数の列で表現できるような data を "7bit の data" と呼びま +す。 + +また、0 から 31 および 127 で表現される制御文字と 32 で表現される空白と +33 から 126 で表現される図形文字からなる文字列のことを "7bit の文字列" +と呼びます(これは ISO 2022 (*Note ISO 2022::) の「7 単位系」と同様です)。 + +伝統的な Internet の MTA (*Note MTA::) は 7bit の data を転送できるので、 +7bit の data は Quoted-Printable (*Note Quoted-Printable::) や Base64 +(*Note Base64::) といった変換を行わなくてもそのまま転送できます。 + +しかし、7bit であればどんな data でも良いとはいえません。なぜなら、1行 +の長さがあまりに長いと、MTA はその message を転送することができないから +です。ちなみに、RFC 821 (*Note RFC 821::) は1行は改行文字を除いて 998 +byte 以内であることを求めています。よって、これ以上の行が含まれる可能性 +のある data, 例えば、Postscript の data などは Quoted-Printable 等で +encodeする必用があります。 + + + + +File: tm-ja.info, Node: 8bit, Next: 94 character set, Prev: 7bit, Up: Glossary + +8bit +---- + +ここでは 0 から 255 の整数を指します。 + +0 から 255 の整数の列で表現できるような data を "8bit の data" と呼びま +す。 + +また、0 から 31, 127 および 128 から 159 で表現される制御文字と 32 で表 +現される空白と 33 から 126 と 160 から 255 で表現される図形文字からなる +文字列のことを "8bit の文字列" と呼びます(これは ISO 2022 (*Note ISO +2022::) の「8 単位系」と同様です)。 + +iso-8859-1 (*Note iso-8859-1::) や euc-kr (*Note euc-kr::) といった符号 +化文字集合は 8bit の文字列です。 + +伝統的な Internet の MTA (*Note MTA::) は 7bit (*Note 7bit::) の data し +か転送できないので、そうした MTA を経由する場合、Quoted-Printable (*Note +Quoted-Printable::) や Base64 (*Note Base64::) といった変換を行わなくて +はなりません。 + +しかし、最近では 8bit の文字列をそのまま通すことができる MTA も登場して +きたので、そのまま送ることができる場合も増えてきました。 + +しかし、8bit であればどんな data でも良いとはいえません。なぜなら、1行 +の長さがあまりに長いと、MTA はその message を転送することができないから +です。ちなみに、RFC 821 は1行は改行文字を除いて 998 byte 以内であること +を求めています。よって、これ以上の行が含まれる可能性のある data, 例えば、 +Postscript の data などは Quoted-Printable 等で encodeする必用があります。 + + +また、こうした理由から、1行が 999 byte 以上の行が存在する可能性のある +data は *binary* (*Note binary::) と呼ぶことにします。 + +ちなみに、7bit で表現できる data は 8bit でも表現できます。よって、 +"8bit" と言った場合、1行が 998 byte 以下の任意の data を指すことがあり +ます。 + + + + +File: tm-ja.info, Node: 94 character set, Next: 96 character set, Prev: 8bit, Up: Glossary + +94 文字集合 +----------- + +33 から 126 の範囲の 1 byte からなる 文字集合(*Note Character set::)。 +ASCII (*Note ASCII::) や JIS X0201-Latin はその一種。 + + + + +File: tm-ja.info, Node: 96 character set, Next: 94x94 character set, Prev: 94 character set, Up: Glossary + +96 文字集合 +----------- + +32 から 127 の範囲の 1 byte からなる 文字集合(*Note Character set::)。 +ISO 8859 シリーズはその一種。 + + + + +File: tm-ja.info, Node: 94x94 character set, Next: ASCII, Prev: 96 character set, Up: Glossary + +94×94 文字集合 +--------------- + +33 から 126 の範囲の 2 byte からなる 文字集合(*Note Character set::)。 +JIS X0208 (*Note JIS X0208::) や GB 2312 (*Note GB 2312::) はその一種。 + + + + +File: tm-ja.info, Node: ASCII, Next: Base64, Prev: 94x94 character set, Up: Glossary + +ASCII +----- + +アメリカ連邦で使われる文字を符号化した 94 文字集合(*Note 94 character +set::)。A-Z, a-z の Latin 文字と数字、幾つかの記号からなる。ISO 646 +(*Note ISO 646::) の一つ。 + + +[ASCII] "Coded Character Set -- 7-Bit American Standard Code for + Information Interchange", ANSI X3.4:1986. + + + + + +File: tm-ja.info, Node: Base64, Next: binary, Prev: ASCII, Up: Glossary + +Base64 +------ + +RFC 1521 (*Note RFC 1521::) で定義されている MIME (*Note MIME::) におけ +る binary data (*Note binary::) の network での変換法の1つ。 + +『64 進数』という意味で、3 byte の data を 0 から 63 の数を表す +ASCII(*Note ASCII::) 4 文字に変換する方法。(もし、4 文字にならなければ +*pad* と呼ばれる詰め物をして長さを調整する) + +この 65 種類の文字は ASCII と EBCDIC の共通部分から選ばれており、 +Internet 以外の network を経由する場合でも安全に転送できるように設計され +ている。 + + + + +File: tm-ja.info, Node: binary, Next: Character Set, Prev: Base64, Up: Glossary + +binary +------ + +任意の byte 列を *binary* と呼ぶことにします。 + + +8bit (*Note 8bit::) と異なるのは data に行の構造を仮定しないことです。 + +また、行の構造があっても、999 byte 以上からなる行がある場合も binaryと呼 +ぶことにします。 + +ちなみに、7bit (*Note 7bit::) や 8bit で表現できる data は binary でも表 +現できます。よって、*binary data* と言った場合、任意の data を指すことが +あります。 + + + + +File: tm-ja.info, Node: Character Set, Next: cn-gb, Prev: binary, Up: Glossary + +Character Set(文字集合) +------------------------- + +符号化文字集合(*Note Coded character set::)。但し、ここでは 符号拡張 +(*Note Code extension::) されてない文字集合というニュアンスを込めている。 + + + + +File: tm-ja.info, Node: cn-gb, Next: cn-big5, Prev: Character Set, Up: Glossary + +cn-gb, gb2312 +------------- + +中国大陸でられている簡体字で表記される中国語を表現するための MIME +charset (*Note MIME charset::) の1つ。 + +ISO 2022 (*Note ISO 2022::) に基いて ASCII (*Note ASCII::) に GB 2312 +(*Note GB 2312::) を 8bit (*Note 8bit::) で符号拡張 (*Note Code +extension::)している。 + +RFC 1922 (*Note RFC 1922::) で定義されている。 + + + + +File: tm-ja.info, Node: cn-big5, Next: CNS, Prev: cn-gb, Up: Glossary + +cn-big5, big5 +------------- + +台湾や香港で用いられている主に繁体字で表記される中国語を表現するための +MIME charset (*Note MIME charset::) の1つ。 + +ISO 2022 (*Note ISO 2022::) に基かない 8bit (*Note 8bit::) の符号化文字 +集合(*Note Coded character set::)で de-fact standard である。RFC 1922 +(*Note RFC 1922::) で定義されている。 + +cf. [BIG5] Institute for Information Industry, "Chinese Coded + Character Set in Computer", March 1984. + +CNS 11643-1986 (*Note CNS::) と対応関係がある。 + + + + +File: tm-ja.info, Node: CNS, Next: Coded character set, Prev: cn-big5, Up: Glossary + +CNS 11643-1992 +-------------- + +台湾や香港で用いられている主に繁体字で表記される中国語を表現するための +文字集合(*Note Character set::)。台湾の標準。現在、94×94 (*Note 94x94 +character set::) の面が第1面から第7面まである。 + +ISO 2022 (*Note ISO 2022::) での終端文字は、第1面が `G', 第2面が `H', +第3面が `I', 第4面が `J', 第5面が `K', 第6面が `L', 第7面が `M' で +ある。 + + +[CNS 11643-1992] "Standard Interchange Code for Generally-Used + Chinese Characters", CNS 11643:1992. + + + + + +File: tm-ja.info, Node: Coded character set, Next: Code extension, Prev: CNS, Up: Glossary + +Coded character set(符号化文字集合), Character code(文字符号) +----------------------------------------------------------------- + +文字と byte 列と1対1に対応付ける曖昧でない規則の集合。 + + + + +File: tm-ja.info, Node: Code extension, Next: Content-Disposition, Prev: Coded character set, Up: Glossary + +Code extension(符号拡張) +-------------------------- + +与えられた文字集合(*Note Character set::)に含まれていない文字の符号化の +ために用いる手法。ISO 2022 (*Note ISO 2022::) はその1つ。 + + + + +File: tm-ja.info, Node: Content-Disposition, Next: content-type, Prev: Code extension, Up: Glossary + +Content-Disposition field +------------------------- + +Content の表示の仕方や file 名を表現するための field. MIME (*Note +MIME::) の拡張の1つ。 + + +[RFC 1806] E R. Troost and S. Dorner, "Communicating Presentation + Information in Internet Messages: The Content-Disposition Header", + June 1995, Experimental. + + + + + +File: tm-ja.info, Node: content-type, Next: Content-Type field, Prev: Content-Disposition, Up: Glossary + +content-type +------------ + +MIME(*Note MIME::) における part(*Note part::) の種類。 +*type* と *subtype* からなる。 +RFC 1521(*Note RFC 1521::) で定義されている。 + +type は標準では *application*, +*audio*, *image*, +*message*, *multipart* +(*Note multipart::), *text*, +*video* が定義され、それぞれには +application/octet-stream, audio/basic, image/jpeg, multipart/mixed(*Note +multipart/mixed::), text/plain(*Note text/plain::), video/mpeg などのさ +まざまな subtype が定義されている。 + +*[注意]* + + ここでは、text/plain などの type/subtype の組をしばしば + *content-type/subtype* と書く。 + + +content-type は、RFC 1521 で定義されているものに加えて、登録することもで +きる。現在、登録されているものは MEDIA TYPES +(ftp://ftp.isi.edu/in-notes/iana/assignments/media-types) で参照できる。 + +また、type もしくは subtype に、前に `x-' を付けた +*x-token* を用いることにより、登録されていないも +のを私的に用いることもできる。しかし、当然のことながら、こうした私的な +content-type は諒解を得た者の間でしか解釈できないので利用には注意するこ +と。 + +(cf. *Note Content-Type field::) + + + + + +File: tm-ja.info, Node: Content-Type field, Next: Emacs, Prev: content-type, Up: Glossary + +Content-Type field +------------------ + +content-type(*Note content-type::) や MIME charset(*Note MIME charset::) +などの part に関する情報を表現するための field. RFC 1521(*Note RFC +1521::) で定義されている。 + +*[Memo]* + + 歴史的には RFC 1049 で Content-Type field が提案されている。但し、 + ここでは type と subtype の区別はない。しかし、文法的には RFC 1521 + parserは RFC 1049 に基づく message を未知の content-type を持った + message として parse できるだろう。 + + +Content-Type field は + + "Content-Type" ":" *type* "/" *subtype* *( ";" *parameter* ) + +と定義される。 + +例えば、 + + Content-Type: image/jpeg + +や + + Content-Type: text/plain; charset=iso-2022-jp + +などのように書かれる。 + +*[Memo]* + + content-type のない part は + + Content-Type: text/plain; charset=us-ascii + + として解釈される。(cf. *Note us-ascii::) + + + + + +File: tm-ja.info, Node: Emacs, Next: encoded-word, Prev: Content-Type field, Up: Glossary + +Emacs +----- + +ここでは `Emacs' で FSF が配布している GNU Emacs を指し、`emacs' でGNU +Emacs の変種の総称とする。 + + + + +File: tm-ja.info, Node: encoded-word, Next: encapsulation, Prev: Emacs, Up: Glossary + +encoded-word +------------ + +header における非 ASCII (*Note ASCII::) 文字の表現。*RFC 1522* で定義さ +れている。 + + +[RFC 1522] K. Moore, "MIME (Multipurpose Internet Mail Extensions) + Part Two: Message Header Extensions for Non-ASCII Text", September + 1993, Standards Track. + + + + + +File: tm-ja.info, Node: encapsulation, Next: euc-kr, Prev: encoded-word, Up: Glossary + +encapsulation +------------- + +Internet mail (*Note RFC 822::) を他の記事にまるごと入れる方法。 + +例えば、記事を転送したりするのに用いる。 + +(cf. *Note message/rfc822::) + + + + + +File: tm-ja.info, Node: euc-kr, Next: FTP, Prev: encapsulation, Up: Glossary + +euc-kr +------ + +韓国語を表現するための MIME charset (*Note MIME charset::) の1つ。 + +ISO 2022 (*Note ISO 2022::) に基いて ASCII (*Note ASCII::) にKS C5601 +(*Note KS C5601::) を 8bit (*Note 8bit::) で符号拡張 (*Note Code +extension::)している。 + +RFC 1557 (*Note RFC 1557::) で定義されている。 + +cf. [euc-kr] Korea Industrial Standards Association, "Hangul Unix + Environment", KS C 5861:1992. + + + + + +File: tm-ja.info, Node: FTP, Next: GB 2312, Prev: euc-kr, Up: Glossary + +FTP +--- + +Internet で file を転送するための protocol の1つ。RFC 959 で定義されて +いる。 + + +[FTP: RFC 959] Postel, J. and J. Reynolds, "File Transfer + Protocol", October 1985, STD 9. + + + + + +File: tm-ja.info, Node: GB 2312, Next: GB 8565.2, Prev: FTP, Up: Glossary + +GB 2312-1980 +------------ + +中国大陸で用いられている簡体字で表記される中国語を表すための 94×94 文字 +集合(*Note 94x94 character set::)。中国の国家標準。ISO 2022 (*Note ISO +2022::) での終端文字は `A'. + +これは GB における基本集である。 + + +[GB 2312]『信息交換用漢字編碼字符集 -- 基本集』, "Code of Chinese + Graphic Character Set for Information Interchange - Primary Set", + GB 2312:1980. + + + + + +File: tm-ja.info, Node: GB 8565.2, Next: hz-gb2312, Prev: GB 2312, Up: Glossary + +GB 8565.2-1988 +-------------- + +中国語のための補助文字集合(*Note Character set::)。中国の国家標準。GB +2312 (*Note GB 2312::) の空き部分に補充するように定義されたらしい。 + + +[GB 8565.2] "Information Processing - Coded Character Sets for Text + Communication - Part 2: Graphic Characters used with Primary Set", + GB 8565.2:1988. + + + + + +File: tm-ja.info, Node: hz-gb2312, Next: ISO 2022, Prev: GB 8565.2, Up: Glossary + +hz-gb2312 +--------- + +中国大陸で用いられている簡体字で表記される中国語を表現するための MIME +charset (*Note MIME charset::) の1つ。 + +ASCII (*Note ASCII::) に GB 2312 (*Note GB 2312::) を 7bit で符号拡張 +(*Note Code extension::)したものを ASCII printable になるように工夫して +いる。 + +RFC 1842, 1843 で定義されている。 + + +[RFC 1842] Y. Wei, Y. Zhang, J. Li, J. Ding and Y. Jiang, "ASCII + Printable Characters-Based Chinese Character Encoding for Internet + Messages", August 1995, Informational. + + +[RFC 1843] F. Lee, "HZ - A Data Format for Exchanging Files of + Arbitrarily Mixed Chinese and ASCII characters", August 1995, + Informational. + + + + + +File: tm-ja.info, Node: ISO 2022, Next: iso-2022-cn, Prev: hz-gb2312, Up: Glossary + +ISO 2022 +-------- + +符号拡張(*Note Code extension::)のための国際標準。 + +これを用いて複数の文字集合(*Note Character set::)を組合せて 7bit (*Note +7bit::) ないし 8bit (*Note 8bit::) の 符号化文字集合(*Note Coded +character set::) を作ることができる。 + + +[ISO 2022] International Organization for Standardization (ISO), + "Information Processing: ISO 7-bit and 8-bit coded character sets: + Code extension techniques", ISO/IEC 2022:1994. + + + + + +File: tm-ja.info, Node: iso-2022-cn, Next: iso-2022-cn-ext, Prev: ISO 2022, Up: Glossary + +iso-2022-cn +----------- + +中国語を表現するための MIME charset (*Note MIME charset::) の1つ。 + +ISO 2022 (*Note ISO 2022::) に基いて ASCII (*Note ASCII::) に GB 2312 +(*Note GB 2312::), CNS 11643 plain 1, plain 2 (*Note CNS::) を 7bit +(*Note 7bit::) で符号拡張 (*Note Code extension::)している。 + +RFC 1922 (*Note RFC 1922::) で定義されている。 + + + + +File: tm-ja.info, Node: iso-2022-cn-ext, Next: iso-2022-jp, Prev: iso-2022-cn, Up: Glossary + +iso-2022-cn-ext +--------------- + +中国語を表現するための MIME charset (*Note MIME charset::) の1つ。 + +ISO 2022 (*Note ISO 2022::) に基いて ASCII (*Note ASCII::) に GB 2312 +(*Note GB 2312::), CNS 11643 plain 1 .. 7 (*Note CNS::), ISO-IR-165 +(*Note ISO-IR-165::) 等を 7bit (*Note 7bit::) で符号拡張 (*Note Code +extension::)している。 + +RFC 1922 (*Note RFC 1922::) で定義されている。 + +*[Memo]* + MULE 2.3 および、現在の XEmacs/mule では正しく扱うことはできない。 + + Emacs/mule では利用可能である。 + + + + + +File: tm-ja.info, Node: iso-2022-jp, Next: iso-2022-jp-2, Prev: iso-2022-cn-ext, Up: Glossary + +iso-2022-jp +----------- + +日本語を表現するための MIME charset (*Note MIME charset::) の一つ。 + +古い ISO 2022 (*Note ISO 2022::) に基いて ASCII (*Note ASCII::), JIS +X0201-Latin, JIS X0208-1978 (*Note JIS C6226-1978::), JIS X0208-1983 +(*Note JIS X0208::) を切り替える 7bit (*Note 7bit::) 文字符号。 + +RFC 1468 で定義されている。 + +*[Memo]* + JIS X0208-1996? では ISO 2022 (*Note ISO 2022::) と独立に定義される + 予定。 + + + +[iso-2022-jp: RFC 1468] Murai J., M. Crispin, and E. van der Poel, + "Japanese Character Encoding for Internet Messages", June 1993. + + + + + +File: tm-ja.info, Node: iso-2022-jp-2, Next: iso-2022-kr, Prev: iso-2022-jp, Up: Glossary + +iso-2022-jp-2 +------------- + +iso-2022-jp (*Note iso-2022-jp::) を拡張した MIME charset (*Note MIME +charset::) の一つ。 + +RFC 1554 で定義されている。 + + +[iso-2022-jp-2: RFC 1554] Ohta M. and Handa K., "ISO-2022-JP-2: + Multilingual Extension of ISO-2022-JP", December 1993, + Informational. + + + + + +File: tm-ja.info, Node: iso-2022-kr, Next: ISO 646, Prev: iso-2022-jp-2, Up: Glossary + +iso-2022-kr +----------- + +韓国語を表現するための MIME charset (*Note MIME charset::) の1つ。 + +ISO 2022 (*Note ISO 2022::) に基いて ASCII (*Note ASCII::) に KS C5601 +(*Note KS C5601::) を 7bit (*Note 7bit::) で符号拡張 (*Note Code +extension::)している。 + +RFC 1557 (*Note RFC 1557::) で定義されている。 + + + + +File: tm-ja.info, Node: ISO 646, Next: ISO 8859-1, Prev: iso-2022-kr, Up: Glossary + +ISO 646 +------- + +各国で共通に使える最小限度の文字集合(*Note Character set::)を定めたもの。 +94 文字集合 (*Note 94 character set::)の1つ。ISO 646 IRV(国際基準版) +を元に幾つかの文字は各国で違う文字を割当ることを許していて、幾つかの変種 +が存在する。ASCII (*Note ASCII::) や JIS X0201-Latin はその一種。 + + +[ISO 646] International Organization for Standardization (ISO), + "Information technology: ISO 7-bit coded character set for + information interchange", ISO/IEC 646:1991. + + + + + +File: tm-ja.info, Node: ISO 8859-1, Next: iso-8859-1, Prev: ISO 646, Up: Glossary + +ISO 8859-1 +---------- + +西欧諸語で用いられる拡張 Latin 文字や記号からなる 96 文字集合(*Note 96 +character set::)。 + + +[ISO 8859-1] International Organization for Standardization (ISO), + "Information Processing -- 8-bit Single-Byte Coded Graphic + Character Sets -- Part 1: Latin Alphabet No.1", ISO 8859-1:1987. + + + + + +File: tm-ja.info, Node: iso-8859-1, Next: ISO 8859-2, Prev: ISO 8859-1, Up: Glossary + +iso-8859-1 +---------- + +西欧諸語などを表現するための MIME charset (*Note MIME charset::) の1つ。 + +ISO 2022 (*Note ISO 2022::) に基いて、ASCII (*Note ASCII::) に ISO +8859-1 (*Note ISO 8859-1::) を 8bit (*Note 8bit::) で符号拡張 (*Note +Code extension::)している。 + +RFC 1521 (*Note RFC 1521::) で定義されている。 + + + + +File: tm-ja.info, Node: ISO 8859-2, Next: iso-8859-2, Prev: iso-8859-1, Up: Glossary + +ISO 8859-2 +---------- + +東欧諸語で用いられる拡張 Latin 文字や記号からなる 96 文字集合(*Note 96 +character set::)。 + + +[ISO 8859-2] International Organization for Standardization (ISO), + "Information Processing -- 8-bit Single-Byte Coded Graphic + Character Sets -- Part 2: Latin alphabet No.2", ISO 8859-2:1987. + + + + + +File: tm-ja.info, Node: iso-8859-2, Next: ISO 8859-3, Prev: ISO 8859-2, Up: Glossary + +iso-8859-2 +---------- + +東欧諸語を表現するための MIME charset (*Note MIME charset::) の1つ。 + +ISO 2022 (*Note ISO 2022::) に基いて、ASCII (*Note ASCII::) に ISO +8859-2 (*Note ISO 8859-2::) を 8bit (*Note 8bit::) で符号拡張 (*Note +Code extension::)している。 + +RFC 1521 (*Note RFC 1521::) で定義されている。 + + + + +File: tm-ja.info, Node: ISO 8859-3, Next: ISO 8859-4, Prev: iso-8859-2, Up: Glossary + +ISO 8859-3 +---------- + + +[ISO 8859-3] International Organization for Standardization (ISO), + "Information Processing -- 8-bit Single-Byte Coded Graphic + Character Sets -- Part 3: Latin alphabet No.3", ISO 8859-3:1988. + + + + + +File: tm-ja.info, Node: ISO 8859-4, Next: ISO 8859-5, Prev: ISO 8859-3, Up: Glossary + +ISO 8859-4 +---------- + + +[ISO 8859-4] International Organization for Standardization (ISO), + "Information Processing -- 8-bit Single-Byte Coded Graphic + Character Sets -- Part 4: Latin alphabet No.4", ISO 8859-4:1988. + + + + + +File: tm-ja.info, Node: ISO 8859-5, Next: iso-8859-5, Prev: ISO 8859-4, Up: Glossary + +ISO 8859-5 +---------- + +キリル文字や記号からなる 96 文字集合(*Note 96 character set::)。 + + +[ISO 8859-5] International Organization for Standardization (ISO), + "Information Processing -- 8-bit Single-Byte Coded Graphic + Character Sets -- Part 5: Latin/Cyrillic alphabet", ISO + 8859-5:1988. + + + + + +File: tm-ja.info, Node: iso-8859-5, Next: ISO 8859-6, Prev: ISO 8859-5, Up: Glossary + +iso-8859-5 +---------- + +キリル文字を表現するための MIME charset (*Note MIME charset::) の1つ。 + +ISO 2022 (*Note ISO 2022::) に基いて、ASCII (*Note ASCII::) に ISO +8859-5 (*Note ISO 8859-5::) を 8bit (*Note 8bit::) で符号拡張 (*Note +Code extension::)している。 + +RFC 1521 (*Note RFC 1521::) で定義されている。 + + + + +File: tm-ja.info, Node: ISO 8859-6, Next: ISO 8859-7, Prev: iso-8859-5, Up: Glossary + +ISO 8859-6 +---------- + + +[ISO 8859-6] International Organization for Standardization (ISO), + "Information Processing -- 8-bit Single-Byte Coded Graphic + Character Sets -- Part 6: Latin/Arabic alphabet", ISO 8859-6:1987. + + + + + +File: tm-ja.info, Node: ISO 8859-7, Next: iso-8859-7, Prev: ISO 8859-6, Up: Glossary + +ISO 8859-7 +---------- + +ギリシア文字や記号からなる 96 文字集合(*Note 96 character set::)。 + + +[ISO 8859-7] International Organization for Standardization (ISO), + "Information Processing -- 8-bit Single-Byte Coded Graphic + Character Sets -- Part 7: Latin/Greek alphabet", ISO 8859-7:1987. + + + + + +File: tm-ja.info, Node: iso-8859-7, Next: ISO 8859-8, Prev: ISO 8859-7, Up: Glossary + +iso-8859-7 +---------- + +ギリシア語を表現するための MIME charset (*Note MIME charset::) の1つ。 + +ISO 2022 (*Note ISO 2022::) に基いて、ASCII (*Note ASCII::) に ISO +8859-7 (*Note ISO 8859-7::) を 8bit (*Note 8bit::) で符号拡張 (*Note +Code extension::)している。 + +RFC 1947 で定義されている。 + + +[iso-8859-7: RFC 1947] D. Spinellis, "Greek Character Encoding for + Electronic Mail Messages", May 1996, Informational. + + + + + +File: tm-ja.info, Node: ISO 8859-8, Next: ISO 8859-9, Prev: iso-8859-7, Up: Glossary + +ISO 8859-8 +---------- + + +[ISO 8859-8] International Organization for Standardization (ISO), + "Information Processing -- 8-bit Single-Byte Coded Graphic + Character Sets -- Part 8: Latin/Hebrew alphabet", ISO 8859-8:1988. + + + + + +File: tm-ja.info, Node: ISO 8859-9, Next: ISO-IR-165, Prev: ISO 8859-8, Up: Glossary + +ISO 8859-9 +---------- + + +[ISO 8859-9] International Organization for Standardization (ISO), + "Information Processing -- 8-bit Single-Byte Coded Graphic + Character Sets -- Part 9: Latin alphabet No.5", ISO 8859-9:1990. + + + + + +File: tm-ja.info, Node: ISO-IR-165, Next: JIS X0201, Prev: ISO 8859-9, Up: Glossary + +ISO-IR-165, CCITT Extended GB +----------------------------- + +CCITT が登録した、中国大陸で用いられている簡体字で表記される中国語を表現 +するための 94×94 文字集合(*Note 94x94 character set::)。 + +GB 2312 (*Note GB 2312::) と GB 8565 表2 (*Note GB 8865.2::) に 150 文 +字ほどを追加したものらしい。 + +ISO 2022 (*Note ISO 2022::) での終端文字は `E' である。 + + + + +File: tm-ja.info, Node: JIS X0201, Next: JIS C6226, Prev: ISO-IR-165, Up: Glossary + +JIS X0201 +--------- + +ISO 646 (*Note ISO 646::) の変種の1つである Latin 文字集合と 1 byte の +カタカナ文字集合からなる。 + +元は *JIS C6220-1976* と言ったが *JIS X0201* に番号が変更された。 + + +[JIS X0201-1976]日本規格協会 (Japanese Standards Association),『情 + 報交換用符号』, "Code for Information Interchange", JIS X + 0201-1976:. + + +また、1996 年に改定版が出る予定。 + + +[JIS X0201-1996?] 日本規格協会 (Japanese Standards Association), + 『7ビット及び8ビットの情報交換用符号化文字集合』, "7-bit and + 8-bit coded character sets for information interchange", JIS X + 0201:1996? draft. + + + + + +File: tm-ja.info, Node: JIS C6226, Next: JIS X0208, Prev: JIS X0201, Up: Glossary + +JIS C6226-1978 +-------------- + +日本語を表すために作られた 94×94 文字集合(*Note 94x94 character set::)。 +日本の国家標準。JIS X0208-1978 ともいう。 + +(cf. *Note JIS X0208::) + + + + + +File: tm-ja.info, Node: JIS X0208, Next: JIS X0212, Prev: JIS C6226, Up: Glossary + +JIS X0208 +--------- + +日本語を表すために作られた 94×94 文字集合(*Note 94x94 character set::)。 +日本の国家標準。1978 年版、1983 年版、1990 年版があるが、Internet では +1983 年版がもっとも良く使われている。 + +JIS X0208 は記号、数字、ローマ字、ひらがな、カタカナ、ギリシャ文字、キリ +ル文字、罫線素、第1水準、第2水準の漢字が含まれる。但し、1983 年版の一 +部の記号と罫線素は 1978 年版にはない。また、一部の漢字の字形が 1983 年版 +では変更され、また、第1水準と第2水準が入れ替わっていたりする。このため、 +1978 年版と 1983 年版は異なる文字集合として扱われる。 + +1990 年の改定では 1983 年版に対する追加が行われた。このため、1990 年版を +指示する場合は前に更新シーケンスを用いる。 + + +[JIS X0208-1978]日本規格協会 (Japanese Standards Association),『情 + 報交換用漢字符号系』, "Code of the Japanese graphic character set + for information interchange", JIS C6226:1978. + + +[JIS X0208-1983,1990]日本規格協会 (Japanese Standards Association), + 『情報交換用漢字符号系』, "Code of the Japanese graphic character + set for information interchange", JIS X0208:1983,1990. + + +また、1996 年に改定版が出版される予定。(字形の変更は行われないので文字 +集合としては 1990 年版と同一である) + + +[JIS X0208-1996?] 日本規格協会 (Japanese Standards Association), + 『7ビット及び8ビットの 2バイト情報交換用符号化漢字集合』, "7-bit + and 8-bit double byte coded Kanji sets for information + interchange", JIS X 0208:1996? draft. + + + + + +File: tm-ja.info, Node: JIS X0212, Next: koi8-r, Prev: JIS X0208, Up: Glossary + +JIS X0212-1990 +-------------- + +JIS X0208 (*Note JIS X0208::) になかった文字を集めた 94×94 文字集合 +(*Note 94x94 character set::)。「補助漢字」とも呼ばれる。日本の国家標準。 +ISO 2022 (*Note ISO 2022::) での終端文字は `D'. + + + + +File: tm-ja.info, Node: koi8-r, Next: KS C5601, Prev: JIS X0212, Up: Glossary + +koi8-r +------ + +ロシヤ語等で用いられるキリル文字を表現するための MIME charset (*Note +MIME charset::) の1つ。 + +ISO 2022 (*Note ISO 2022::) に基かない 8bit (*Note 8bit::) の符号化文字 +集合(*Note Coded character set::)で de-fact standard である。 + +RFC 1489 で定義されている。 + + +[RFC 1489] A. Chernov, "Registration of a Cyrillic Character Set", + July 1993. + + + + + +File: tm-ja.info, Node: KS C5601, Next: message, Prev: koi8-r, Up: Glossary + +KS C5601-1987 +------------- + +韓国語を表すための 94×94 文字集合(*Note 94x94 character set::)。韓国の +国家標準。ISO 2022 (*Note ISO 2022::) での終端文字は `C'. + + +[KS C5601] Korea Industrial Standards Association, "Code for + Information Interchange (Hangul and Hanja)", KS C 5601:1987. + + + + + +File: tm-ja.info, Node: message, Next: message/rfc822, Prev: KS C5601, Up: Glossary + +message +------- + +ここでは RFC 822(*Note RFC 822::) で定義される mail と RFC 1036(*Note +RFC 1036::) で定義される news 記事の総称として用いる。 + + + + +File: tm-ja.info, Node: message/rfc822, Next: method, Prev: message, Up: Glossary + +message/rfc822 +-------------- + +伝統的な RFC 934(*Note RFC 934::) に代わり、RFC 822(*Note RFC 822::) で +定義される mail を表す MIME の形式。RFC 1521(*Note RFC 1521::) で定義さ +れている。 + + + + +File: tm-ja.info, Node: method, Next: MIME, Prev: message/rfc822, Up: Glossary + +method +------ + +tm で特定の種類の data を再生したとき実際にその処理を行なう +program. Emacs Lisp で書かれた *internal method* と C や script 言語など +で書かれた *external method* がある。 + +(cf. *Note (tm-view-ja)method::) + + + + + +File: tm-ja.info, Node: MIME, Next: MIME charset, Prev: method, Up: Glossary + +MIME +---- + +*Multipurpose Internet Mail Extensions* の略で、Internet の mail や news で us-ascii +plain text (*Note us-ascii::) 以外の文字を使うための RFC 822(*Note RFC +822::) に対する拡張。 + +RFC 1521 (*Note RFC 1521::) と RFC 1522 (*Note encoded-word::) で定義さ +れている。 + +(cf. *Note What is MIME?::) + + + + + +File: tm-ja.info, Node: MIME charset, Next: MTA, Prev: MIME, Up: Glossary + +MIME charset +------------ + +Content-Type field(*Note Content-Type field::) や encoded-word (*Note +encoded-word::) の charset parameter で用いられる登録された符号化文字集 +合 (*Note Coded character set::)。 + +RFC 1521 (*Note RFC 1521::) で定義されている。 + +iso-2022-jp (*Note iso-2022-jp::) や euc-kr (*Note euc-kr::) はその1つ。 +(ここでは、MIME charset は文字集合 (*Note Character set::)と区別して小 +文字で書いている) + + + + +File: tm-ja.info, Node: MTA, Next: MUA, Prev: MIME charset, Up: Glossary + +MTA +--- + +*Message Transfer Agent* の略で、 +sendmail などの mail 配送 program と news server の総称。 + +(cf. *Note MUA::) + + + + + +File: tm-ja.info, Node: MUA, Next: MULE, Prev: MTA, Up: Glossary + +MUA +--- + +*Message User Agent* の略で、mail +reader と news reader の総称。 + +(cf. *Note MTA::) + + + + + +File: tm-ja.info, Node: MULE, Next: multipart, Prev: MUA, Up: Glossary + +MULE +---- + +半田 剣一氏らが作った、多言語された Emacs (*Note Emacs::). + +[MULE] Nishikimi M., Handa K. and Tomura S., "Mule: MULtilingual +Enhancement to GNU Emacs", Proc. of INET'93, August, 1993. + +現在、MULE の機能を Emacs に merge する作業が行われており、alpha 版 +(ftp://etlport.etl.go.jp/pub/mule/mule-19.33-gamma.taz) が存在する。 + +その他、XEmacs に merge したものも存在する。 + +このため、現在では多言語 Emacs は、元々の MULE を含めて3種類あることに +なる。 + +そこで、ここでは、多言語 Emacs の総称を *mule*, 元々の MULE を *MULE*, +mule 機能を merge した Emacs を*Emacs/mule*, mule 機能を merge した +XEmacs を *XEmacs/mule* と呼ぶことにする。 + + + + +File: tm-ja.info, Node: multipart, Next: multipart/alternative, Prev: MULE, Up: Glossary + +Multipart +--------- + +1つの message(*Note message::) に複数の part を入れるための MIME(*Note +MIME::) における表現法、もしくは、複数の part からなる message を指す。 +(cf. *Note content-type::) + +現在、定義されている *multipart* としては、RFC 1521(*Note RFC 1521::) で +定義された + + * multipart/mixed(*Note multipart/mixed::) + * multipart/alternative(*Note multipart/alternative::) + * multipart/digest(*Note multipart/digest::) + * multipart/parallel(*Note multipart/parallel::) + +のほか RFC 1847 (*Note Security multipart::) で定義された + + * multipart/signed(*Note multipart/signed::) + * multipart/encrypted(*Note multipart/encrypted::) + +などがある。 + + + + +File: tm-ja.info, Node: multipart/alternative, Next: multipart/digest, Prev: multipart, Up: Glossary + +multipart/alternative +--------------------- + +multipart(*Note multipart::) の1つで、同じ情報を異った形式で入れ、選択 +肢とする場合に用いる。 + +(cf. *Note RFC 1521::) + + + + + +File: tm-ja.info, Node: multipart/digest, Next: multipart/encrypted, Prev: multipart/alternative, Up: Glossary + +multipart/digest +---------------- + +multipart(*Note multipart::) の1つで、含まれる part の default の +content-type(*Note content-type::) が +multipart/mixed(*Note multipart/mixed::) などの場合 +text/plain(*Note text/plain::) であるのに対し、 +*multipart/digest*では +message/rfc822(*Note message/rfc822::) が用いられる点が異なる。 + +これは伝統的な RFC 1153(*Note RFC 1153::) に基づく encapsulation(*Note +encapsulation::) に代わるものである。 + +(cf. *Note RFC 1521::) + + + + + +File: tm-ja.info, Node: multipart/encrypted, Next: multipart/mixed, Prev: multipart/digest, Up: Glossary + +multipart/encrypted +------------------- + +RFC 1847 で定義された Security multipart(*Note Security multipart::) の +1つで、暗号化された message を表現するのに用いる。 + +(cf. *Note PGP/MIME::) + + + + + +File: tm-ja.info, Node: multipart/mixed, Next: multipart/parallel, Prev: multipart/encrypted, Up: Glossary + +multipart/mixed +--------------- + +multipart(*Note multipart::) の主要な subtype で、複数の part を順序付け +て並べる場合に用いる。 + +(cf. *Note RFC 1521::) + + + + + +File: tm-ja.info, Node: multipart/parallel, Next: multipart/signed, Prev: multipart/mixed, Up: Glossary + +multipart/parallel +------------------ + +multipart(*Note multipart::) の1つで、複数の part を順序付けずに含める +場合に用いる。 + +(cf. *Note RFC 1521::) + + + + + +File: tm-ja.info, Node: multipart/signed, Next: PGP, Prev: multipart/parallel, Up: Glossary + +multipart/signed +---------------- + +RFC 1847 で定義された Security multipart(*Note Security multipart::) の +1つで、電子署名を表現するのに用いる。 + +(cf. *Note PGP/MIME::) + + + + + +File: tm-ja.info, Node: PGP, Next: PGP-kazu, Prev: multipart/signed, Up: Glossary + +PGP +--- + +Phil Zimmermann 氏が作成した公開鍵暗号処理系の1つ。message(*Note +message::) の暗号化や電子署名を行うことができる。Pretty Good Privacy の +略。 + +伝統的な PGP では encapsulation(*Note encapsulation::) に RFC 934(*Note +RFC 934::)に準じた方法を用いる。これは MIME(*Note MIME::) と矛盾するので +PGP/MIME(*Note PGP/MIME::) が提案されている。一方、MIME において PGP の +encapsulation を用いる方法 (cf. *Note PGP-kazu::) + も利用されてきた。しかし、今後は PGP/MIME に統一していく方が望ましい。 + + + +[PGP: RFC 1991] D. Atkins, W. Stallings and P. Zimmermann, "PGP + Message Exchange Formats", August 1996, Informational. + + + + + + +File: tm-ja.info, Node: PGP-kazu, Next: PGP/MIME, Prev: PGP, Up: Glossary + +PGP-kazu +-------- + +山本 和彦 氏が提案した MIME (*Note MIME::) で PGP (*Note PGP::) を利用す +るための方法をここでは *PGP-kazu* と呼ぶことにする。 + +PGP-kazu は *application/pgp* という content-type(*Note content-type::) +を定義する。 + +application/pgp の part では PGP の encapsulation(*Note encapsulation::) +が用いられる。PGP の encapsulation (cf. *Note RFC 934::) + と MIME の encapsulation は矛盾するので、PGP の encapsulation を解かな +い限り、中に含まれた MIME message を読むことができなくなる。即ち、 +PGP-kazu に対応していない MIME に対応した MUA(*Note MUA::) はその part +が読めなくなる。その代わり、MIME に対応していない PGP 対応の MUA(*Note +MUA::) でも message を読むことができる。 + +PGP-kazu では MUA は PGP のと MIME のという2つの encapsulation を知らな +ければならない。また、application/pgp part を parse するためには、まず、 +pgp の処理を行わなければならないので、parse 処理が複雑になる。 + +また、Internet では今後 PGP/MIME(*Note PGP/MIME::) の方向で標準化してい +こうということで合意が取れている。よって、今後は PGP-kazu は用いないのが +望ましい。 + +[draft-kazu-pgp-mime-00.txt] Yamamoto K., "PGP MIME Integration", +October, 1995 + + + + +File: tm-ja.info, Node: PGP/MIME, Next: Quoted-Printable, Prev: PGP-kazu, Up: Glossary + +PGP/MIME +-------- + +Michael Elkins 氏が提案した MIME (*Note MIME::) で PGP (*Note PGP::) を +利用するための方法。 + +RFC 1847 (*Note Security multipart::) に基き、MIME の multipart による +encapsulation(*Note encapsulation::) を行う。このため、MIME の自然な拡張 +になっている。しかし、伝統的な PGPとの互換性が失われている。 + +PGP/MIME では PGP-kazu(*Note PGP-kazu::) と異なり、MIME の encapsulation +のみを用いる。また、このため、PGP の処理を行う前に message の parse を行 +うことができる。 + +Internet では今後 PGP/MIME(*Note PGP/MIME::) の方向で標準化していこうと +いうことで合意が取れている。よって、今後は PGP を用いる場合は PGP/MIMEを +用いるのが望ましい。 + + +[PGP/MIME: RFC 2015] M. Elkins, "MIME Security with Pretty Good + Privacy (PGP)", October 1996, Standards Track. + + + + + +File: tm-ja.info, Node: Quoted-Printable, Next: RFC 821, Prev: PGP/MIME, Up: Glossary + +Quoted-Printable +---------------- + +RFC 1521 (*Note RFC 1521::) で定義されている MIME (*Note MIME::) におけ +る binary data (*Note binary::) の network での変換法の1つ。 + +`=' や制御文字や 128 以上の文字などは `=AF' のように `=' の後に続く 16 +進数で表現する。このため、ASCII (*Note ASCII::) 文字中心の data では +Base64 (*Note Base64::) に比べると可読性が高くなる可能性がある。 + +しかしながら、EBCDIC には存在しない文字を利用する場合、EBCDIC を利用して +いる network では安全に転送することができず、Base64 に比べて安全性は低い。 + + + + +File: tm-ja.info, Node: RFC 821, Next: RFC 822, Prev: Quoted-Printable, Up: Glossary + +RFC 821 +------- + +*SMTP* と呼ばれる Internet mail の配送法の標準を定めて +いる RFC. + + +[SMTP: RFC 821] J. Postel, "Simple Mail Transfer Protocol", August + 1982, STD 10. + + + + + +File: tm-ja.info, Node: RFC 822, Next: RFC 934, Prev: RFC 821, Up: Glossary + +RFC 822 +------- + +Internet mail の主に *message header* に関する形式に関する標準を定めてい +る RFC. + +*[Memo]* + + news message もこれに準じているので、*Internet mail* と書くよりも、 + *Internet message* と書いた方が良いかもしれない。 + + + +[RFC 822] D. Crocker, "Standard for the Format of ARPA Internet + Text Messages", August 1982, STD 11. + + + + + +File: tm-ja.info, Node: RFC 934, Next: RFC 1036, Prev: RFC 822, Up: Glossary + +RFC 934 +------- + +Internet mail (*Note RFC 822::) の +*encapsulation* (*Note encapsulation::)の方法 +を定めた RFC. + +MIME(*Note MIME::) と矛盾するので、現在では message/rfc822(*Note +message/rfc822::) を用いるべきである。 + + + +[RFC 934] Marshall T. Rose and Einar A. Stefferud, "Proposed + Standard for Message Encapsulation", January 1985. + + + + + +File: tm-ja.info, Node: RFC 1036, Next: RFC 1153, Prev: RFC 934, Up: Glossary + +RFC 1036 +-------- + +USENET での message の形式を定めた RFC. RFC 822 (*Note RFC 822::)の +subset になっている。Internet の標準ではないが、USENET 以外の netnews で +もこれに準じているものが多い。 + + +[USENET: RFC 1036] M. Horton and R. Adams, "Standard for + Interchange of USENET Messages", December 1987, (obsolete RFC 850). + + + + + +File: tm-ja.info, Node: RFC 1153, Next: RFC 1521, Prev: RFC 1036, Up: Glossary + +RFC 1153 +-------- + +複数の Internet mail (*Note RFC 822::) を +*encapsulation* (*Note encapsulation::)するた +めの方法を定めた RFC. RFC 934(*Note RFC 934::) を用いる。 + +MIME(*Note MIME::) と矛盾するので、現在では message/rfc822(*Note +message/rfc822::) を用いた multipart(*Note multipart::) を用いるべきであ +る。 + +(cf. *Note multipart/digest::) + + + +[RFC 1153] F. Wancho, "Digest Message Format", April 1990. + + + + + +File: tm-ja.info, Node: RFC 1521, Next: RFC 1557, Prev: RFC 1153, Up: Glossary + +RFC 1521 +-------- + +MIME (*Note MIME::) を定義している RFC の1つ。 + + +[RFC 1521] N. Borenstein and N. Freed, "MIME (Multipurpose Internet + Mail Extensions) Part One: Mechanisms for Specifying and Describing + the Format of Internet Message Bodies", September 1993, Standards + Track (obsolete RFC 1341). + + +(RFC 1522 (*Note encoded-word::)) + + + + +File: tm-ja.info, Node: RFC 1557, Next: RFC 1922, Prev: RFC 1521, Up: Glossary + +RFC 1557 +-------- + +euc-kr(*Note euc-kr::) と iso-2022-kr(*Note iso-2022-kr::) という韓国語 +のための MIME charset (*Note MIME charset::) を定義している RFC. + + +[RFC 1557] U. Choi, K. Chon and H. Park, "Korean Character Encoding + for Internet Messages", December 1993, Informational. + + + + + +File: tm-ja.info, Node: RFC 1922, Next: plain text, Prev: RFC 1557, Up: Glossary + +RFC 1922 +-------- + +iso-2022-cn(*Note iso-2022-cn::), iso-2022-cn-ext(*Note +iso-2022-cn-ext::), cn-gb(*Note cn-gb::), cn-big5(*Note cn-big5::) といっ +た中国語のための MIME charset (*Note MIME charset::) を定義している RFC. + +これに加えて、*charset-edition* と *charset-extension* という +Content-Type field(*Note Content-Type field::) の parameter を定義してい +る。 + + +[RFC 1922] Zhu, HF., Hu, DY., Wang, ZG., Kao, TC., Chang, WCH. and + Crispin, M., "Chinese Character Encoding for Internet Messages", + March 1996, Informational. + + + + + +File: tm-ja.info, Node: plain text, Next: Security multipart, Prev: RFC 1922, Up: Glossary + +plain text +---------- + +書体や組版に関する情報を持たない 文字符号(*Note Coded character set::)の +みで表現される text 情報。(cf. *Note text/plain::) + + + + + +File: tm-ja.info, Node: Security multipart, Next: text/enriched, Prev: plain text, Up: Glossary + +Security multipart +------------------ + +MIME (*Note MIME::) で暗号や電子書名を用いるための形式。 +*multipart/signed* +(*Note multipart/signed::) と +*multipart/encrypted* +(*Note multipart/encrypted::) という multipart を用いる。MOSS や +PGP/MIME (*Note PGP/MIME::) はこれに基いている。 + + +[Security multipart: RFC 1847] James Galvin, Gale Murphy, Steve + Crocker and Ned Freed, "Security Multiparts for MIME: + Multipart/Signed and Multipart/Encrypted", October 1995, Standards + Track. + + + + + +File: tm-ja.info, Node: text/enriched, Next: text/plain, Prev: Security multipart, Up: Glossary + +text/enriched +------------- + +RFC 1521 (*Note RFC 1521::) で定義された +*text/richtext* に代わって、書体や組版に関 +する情報を持った textを表現するための content-type(*Note +content-type::). + + +[text/enriched: RFC 1896] P. Resnick and A. Walker, "The + text/enriched MIME Content-type", February 1996, (obsolete RFC + 1563). + + + + + +File: tm-ja.info, Node: text/plain, Next: tm-kernel, Prev: text/enriched, Up: Glossary + +text/plain +---------- + +RFC 1521(*Note RFC 1521::) で定義された、plain text(*Note plain text::) +を表現するための content-type(*Note content-type::). + +非 MIME message などの content-type が定義されない part は MIME +charset(*Note MIME charset::) が us-ascii(*Note us-ascii::) である +*text/plain* の part であると見做されることになっている。 + + + + +File: tm-ja.info, Node: tm-kernel, Next: tm-MUA, Prev: text/plain, Up: Glossary + +tm-kernel, tm +------------- + +Emacs で MIME (*Note MIME::) を利用するための user interface を提供する +library 群。`tools for MIME' の略。 + +*[どうでも良いこと(^-^;]* + + * tm は "tiny-mime" の略じゃないらしいぞ (^-^; + + * tm は作者のイニシャルじゃないらしいぞ (^-^; + + * "Tools for MIME" の略というのはこじつけらしいぞ (^-^; + + + + + +File: tm-ja.info, Node: tm-MUA, Next: us-ascii, Prev: tm-kernel, Up: Glossary + +tm-MUA +------ + +tm (*Note tm-kernel::) を用いた MUA (*Note MUA::) もしくは MUA に対する +extender. + +*tm 大盛り package* には + + * mh-e (*Note (mh-e)::) 用の *tm-mh-e* + * GNUS 用の *tm-gnus* + * Gnus 用の *gnus-mime* (*Note (gnus-mime-ja)::) + * VM 用の *tm-vm* + * RMAIL 用の *tm-rmail* + +が含まれている。 + +独立した MUA としては cmail (*Note (cmail)::) が tm を利用可能である。 + + + + +File: tm-ja.info, Node: us-ascii, Prev: tm-MUA, Up: Glossary + +us-ascii +-------- + +アメリカ連邦などで使われる英語などを表現するための MIME charset (*Note +MIME charset::) の1つ。 + +ASCII (*Note ASCII::) のみからなり ISO 2022 (*Note ISO 2022::) による符 +号拡張 (*Note Code extension::)は許されない。 + +Internet mail における標準の符号化文字集合(*Note Coded character set::)で +あり、明示的に MIME charset が示されない場合は原則として +*us-ascii* が使われる。 + +また、RFC 822 (*Note RFC 822::) における *ASCII* は us-ascii を指すもの +と解釈すべきである。 + + + + +File: tm-ja.info, Node: Setting, Next: Bug report, Prev: Introduction, Up: Top + +設定 +**** + +この package には `mime-setup.el' と `tm-setup.el' という簡易設定 file +が附属しています。 + +`mime-setup.el' では `tm-edit.el' を使った MIME message の作成も含めた +MIME 全般の設定を行ない、`tm-setup.el' では tm-MUA に関するMIME message +の閲覧の設定のみを行ないます。 + + +* Menu: + +* mime-setup:: 標準的な設定 +* tm-setup:: tm-edit を使わない設定 +* setting for VM:: VM を使う場合の設定 +* manual setting:: 設定 file を使わない場合 + + + +File: tm-ja.info, Node: mime-setup, Next: tm-setup, Prev: Setting, Up: Setting + +標準的な設定 +============ + +tm の一般的な設定を行いたい場合は、 +*mime-setup* という標準設定 file を使ってくだ +さい。例えば、`~/.emacs' 等で、 + + (load "mime-setup") + +とするだけで OK です。 + +`mime-setup.el' は `tm-setup.el' を呼んでいるので、`tm-setup.el' を load +する必要はありません。(過去の Gnus FAQ の記述は間違っています!) + + +* Menu: + +* signature:: signature.el +* Notice about GNUS:: GNUS の場合の注意 + + + +File: tm-ja.info, Node: signature, Next: Notice about GNUS, Prev: mime-setup, Up: mime-setup + +signature.el +------------ + +tm には *signature* という signature の自動切替え tool が附属しており、 +`mime-setup.el' はこの設定も行ないます。message header の field に合わせ +て signature の自動切替を行ないたい場合は `~/.emacs' に以下のようなもの +を入れて下さい。(詳しくは signature.el の説明書を参照して下さい) + + (setq signature-file-alist + '((("Newsgroups" . "jokes") . "~/.signature-jokes") + (("Newsgroups" . ("zxr" "nzr")) . "~/.signature-sun") + (("To" . ("ishimaru" "z-suzuki")) . "~/.signature-sun") + (("To" . "tea") . "~/.signature-jokes") + (("To" . ("sim" "oku" "takuo")) . "~/.signature-formal") + )) + + + + -- Variable: mime-setup-use-signature + + この変数が `nil' 以外の時、`signature.el' を使います。既定値は `t' + です。 + + + + -- Variable: mime-setup-signature-key-alist + + 各 major-mode において signature 挿入命令を設定すべき key を指定し + ます。既定値は + + ((mail-mode . "\C-c\C-w")) + + + です。 + + これを変更したい場合は、関数 set-alist などを使ってこの変数を書き換 + えて下さい。 + + (set-alist 'mime-setup-signature-key-alist + 'news-reply-mode "\C-c\C-w") + + + + -- Variable: mime-setup-default-signature-key + + ある major-mode において signature 挿入命令を設定すべき key が見つ + からない場合、この変数に設定された key が用いられます。既定値は、 + `"\C-c\C-s"' です。 + + + + + +File: tm-ja.info, Node: Notice about GNUS, Prev: signature, Up: mime-setup + +GNUS の場合の注意 +----------------- + +`signature.el' を使う場合、`mime-setup.el' は変数 `gnus-signature-file' +を `nil' に設定します。よって、送信時に自動的に `signature' が付く機能は +抑制されます。このようなことをしているのは以下の理由からです。 + +GNUS が signature を付けるのは `tm-edit.el' によって MIME message が作成 +された後です。よって、GNUS が付けた signature は MIME message として正し +く処理されていません。例えば multipart message の場合、MIME message の外 +の非 MIME part に付きます。よって、MIME 対応 MUA で見た場合、signature +は表示されないかも知れません。 + +もう一つの注意は標準設定では signature を挿入する key は `C-c C-w' では +なく mh-e (*Note (mh-e)::) と同じ `C-c C-s' に割り当てられていることです。 +これは + + (set-alist 'mime-setup-signature-key-alist 'news-reply-mode "\C-c\C-w") + +によって GNUS の標準に戻すことができます。 + + + + +File: tm-ja.info, Node: tm-setup, Next: setting for VM, Prev: mime-setup, Up: Setting + +tm-edit を使わない設定 +====================== + + +*tm-setup* は tm-MUA (*Note tm-MUA::) の設定のみを +行なう module です。この設定 file では tm-edit (*Note (tm-edit-ja)::) を +使った MIME message の作成に関する設定は行われず、MIME message の閲覧に +関する設定のみが行われます。MIME message を読みたいが自分では作成しない +とか、tm-edit 以外の MIME composer を使いたい場合には mime-setup.el の代 +わりにこの設定 file を使ってください。 + +例えば、`~/.emacs' 等に + + (load "tm-setup") + +を入れれば OK です。 + + +*[Memo]* + + `mime-setup.el' を load している場合、これを陽に load する必要はあ + りません。 + + + + + +File: tm-ja.info, Node: setting for VM, Next: manual setting, Prev: tm-setup, Up: Setting + +VM を使う場合の設定 +=================== + + +*vm* を使う場合は `~/.vm' に + + (require 'tm-vm) + +を入れて下さい。 + + +*[注意]* + + *BBDB* を使う場合は `(bbdb-insinuate-vm)' の + *後* に `(require 'tm-vm)' を入れてください。 + + + + + +File: tm-ja.info, Node: manual setting, Prev: setting for VM, Up: Setting + +設定 file を使わない場合 +======================== + + +`mime-setup.el' や `tm-setup.el' を参考にして下さい。 + + +*[Memo]* + + 現在の tm では tm-edit の使用を仮定した幾つかの便利な機能が存在し、 + これらの機能は `mime-setup.el' を使わないと利用できません。もし、 + tm-edit を使う独自の設定を行う場合は、 + + (provide 'mime-setup) + + という宣言を行ってください。 + + + + + +File: tm-ja.info, Node: Bug report, Next: Concept Index, Prev: Setting, Up: Top + +bug 報告の仕方 +************** + +tm のバグを見つけたら、以下の address に mail を送ってください: + + * 日本語 <bug-tm-ja@chamonix.jaist.ac.jp> + * 英語 <bug-tm-en@chamonix.jaist.ac.jp> + + +但し、あまりにも古い版に関する報告は歓迎されません。古い版の bug は、新 +しい版では治っているかもしれません。まず、最新版で確認してみましょう。 + + +それから、適切な報告をしましょう。単に「うまく動かない」と言われてもどう +いう状況なのかはさっぱり判りません。最低限、OS, emacs, tm, 使っている +MUA の種類および版、設定を書く必要があります。また、error が起っている場 +合は backtrace を送ることも重要です。(cf. *Note (emacs)Bugs::) + +また、bug は大抵複数の人が遭遇するものです(そうでなければ、bug ではない +可能性があります)。だから、作者に直接 mail を送ると作者は同じ mailを何 +通も書く羽目になります。だから、必ず bug 報告は上記の address に送ってく +ださい。 + +tm ML では tm のバグ情報の交換や最新版の配布、tm の改良に関する議論を行 +なっています。tm ML に参加したい方は + + * 日本語 <tm-ja-admin@chamonix.jaist.ac.jp> + * 英語 <tm-en-admin@chamonix.jaist.ac.jp> + +まで mail を送って下さい。登録は手動ですので、できれば、自然言語で書いて +下さい。(^_^) + + + + +File: tm-ja.info, Node: Concept Index, Next: Variable Index, Prev: Bug report, Up: Top + +概念索引 +******** + + +* Menu: + +* ANSI X3.4:1986: ASCII. 9. +* application: content-type. 10. +* application/pgp: PGP-kazu. 9. +* ASCII: ASCII. 9. +* ASCII: us-ascii. 16. +* audio: content-type. 11. +* BBDB: setting for VM. 16. +* BIG5: cn-big5. 13. +* binary: 8bit. 35. +* binary: binary. 6. +* binary data: binary. 15. +* charset-edition: RFC 1922. 10. +* charset-extension: RFC 1922. 10. +* CNS 11643:1992: CNS. 13. +* CNS 11643-1992: CNS. 13. +* Content-Type: How is MIME?. 17. +* content-type/subtype: content-type. 22. +* Emacs/mule: MULE. 20. +* encapsulation: RFC 1153. 7. +* encapsulation: RFC 934. 7. +* euc-kr: euc-kr. 14. +* Experimental: Content-Disposition. 8. +* external method: method. 8. +* FTP: FTP. 8. +* GB 2312: GB 2312. 11. +* GB 2312:1980: GB 2312. 11. +* GB 8565.2: GB 8565.2. 8. +* GB 8565.2:1988: GB 8565.2. 8. +* gnus-mime: tm-MUA. 16. +* image: content-type. 11. +* Informational: hz-gb2312. 14. +* Informational: hz-gb2312. 19. +* Informational: iso-2022-jp-2. 10. +* Informational: iso-8859-7. 13. +* Informational: PGP. 16. +* Informational: RFC 1557. 8. +* Informational: RFC 1922. 13. +* internal +* Internet mail: RFC 822. 12. +* Internet message: RFC 822. 13. +* ISO 2022: ISO 2022. 11. +* ISO 646: ISO 646. 10. +* ISO 8859-1: ISO 8859-1. 8. +* ISO 8859-1:1987: ISO 8859-1. 8. +* ISO 8859-2: ISO 8859-2. 8. +* ISO 8859-2:1987: ISO 8859-2. 8. +* ISO 8859-3: ISO 8859-3. 5. +* ISO 8859-3:1988: ISO 8859-3. 5. +* ISO 8859-4: ISO 8859-4. 5. +* ISO 8859-4:1988: ISO 8859-4. 5. +* ISO 8859-5: ISO 8859-5. 7. +* ISO 8859-5:1988: ISO 8859-5. 7. +* ISO 8859-6: ISO 8859-6. 5. +* ISO 8859-6:1987: ISO 8859-6. 5. +* ISO 8859-7: ISO 8859-7. 7. +* ISO 8859-7:1987: ISO 8859-7. 7. +* ISO 8859-8: ISO 8859-8. 5. +* ISO 8859-8:1988: ISO 8859-8. 5. +* ISO 8859-9: ISO 8859-9. 5. +* ISO 8859-9:1990: ISO 8859-9. 5. +* iso-2022-jp: iso-2022-jp. 18. +* iso-2022-jp-2: iso-2022-jp-2. 10. +* iso-8859-7: iso-8859-7. 13. +* ISO/IEC 2022:1994: ISO 2022. 11. +* ISO/IEC 646:1991: ISO 646. 10. +* JIS X 0201-1976:: JIS X0201. 10. +* JIS C6220-1976: JIS X0201. 9. +* JIS C6226:1978: JIS X0208. 18. +* JIS X 0201:1996? draft: JIS X0201. 18. +* JIS X 0208:1996? draft: JIS X0208. 32. +* JIS X0201: JIS X0201. 9. +* JIS X0201-1976: JIS X0201. 10. +* JIS X0201-1996?: JIS X0201. 18. +* JIS X0208-1978: JIS X0208. 18. +* JIS X0208-1983,1990: JIS X0208. 23. +* JIS X0208:1983,1990: JIS X0208. 23. +* JIS X0208-1996?: JIS X0208. 32. +* KS C 5601:1987: KS C5601. 8. +* KS C 5861:1992: euc-kr. 14. +* KS C5601: KS C5601. 8. +* message: content-type. 12. +* message header: RFC 822. 6. +* Message Transfer Agent: MTA. 6. +* Message User Agent: MUA. 6. +* MIME: What is MIME?. 6. +* mime-setup: mime-setup. 7. +* mule: MULE. 19. +* MULE: MULE. 20. +* multipart: content-type. 12. +* Multipart: How is MIME?. 24. +* multipart: multipart. 10. +* multipart/digest: multipart/digest. 10. +* multipart/encrypted: Security multipart. 9. +* multipart/signed: Security multipart. 7. +* Multipurpose +* Multipurpose Internet Mail Extensions: What is MIME?. 7. +* pad: Base64. 11. +* parameter: Content-Type field. 20. +* PGP: PGP. 16. +* PGP-kazu: PGP-kazu. 7. +* PGP/MIME: PGP/MIME. 20. +* RFC 1036: RFC 1036. 9. +* RFC 1153: RFC 1153. 16. +* RFC 1468: iso-2022-jp. 18. +* RFC 1489: koi8-r. 13. +* RFC 1521: RFC 1521. 7. +* RFC 1522: encoded-word. 7. +* RFC 1522: encoded-word. 8. +* RFC 1554: iso-2022-jp-2. 10. +* RFC 1557: RFC 1557. 8. +* RFC 1806: Content-Disposition. 8. +* RFC 1842: hz-gb2312. 14. +* RFC 1843: hz-gb2312. 19. +* RFC 1847: Security multipart. 12. +* RFC 1896: text/enriched. 10. +* RFC 1922: RFC 1922. 13. +* RFC 1947: iso-8859-7. 13. +* RFC 1991: PGP. 16. +* RFC 2015: PGP/MIME. 20. +* RFC 821: RFC 821. 8. +* RFC 822: RFC 822. 14. +* RFC 934: RFC 934. 13. +* RFC 959: FTP. 8. +* Security multipart: Security multipart. 12. +* signature: signature. 6. +* SMTP: RFC 821. 6. +* SMTP: RFC 821. 8. +* Standards Track: encoded-word. 8. +* Standards Track: PGP/MIME. 20. +* Standards Track: RFC 1521. 7. +* Standards Track: Security multipart. 12. +* STD 10: RFC 821. 8. +* STD 11: RFC 822. 14. +* STD 9: FTP. 8. +* subtype: content-type. 7. +* subtype: Content-Type field. 20. +* text: content-type. 13. +* text/enriched: text/enriched. 10. +* text/plain: text/plain. 9. +* text/richtext: text/enriched. 7. +* tm 大盛り package: tm-MUA. 9. +* tm-gnus: tm-MUA. 14. +* tm-mh-e: tm-MUA. 12. +* tm-rmail: tm-MUA. 20. +* tm-setup: tm-setup. 7. +* tm-vm: tm-MUA. 18. +* type: content-type. 7. +* type: Content-Type field. 20. +* us-ascii: us-ascii. 14. +* USENET: RFC 1036. 9. +* video: content-type. 14. +* vm: setting for VM. 7. +* XEmacs/mule: MULE. 20. +* x-token: content-type. 30. +Internet Mail Extensions: MIME. 6. +method: method. 7. + + + +File: tm-ja.info, Node: Variable Index, Prev: Concept Index, Up: Top + +変数索引 +******** + + +* Menu: + +* mime-setup-default-signature-key: signature. 47. +* mime-setup-signature-key-alist: signature. 29. +* mime-setup-use-signature: signature. 22. + +Tag table: +Node: Top152 +Node: Introduction680 +Node: What is MIME?1569 +Node: How is MIME?2245 +Node: Glossary4716 +Node: 7bit8104 +Node: 8bit9421 +Node: 94 character set11476 +Node: 96 character set11749 +Node: 94x94 character set12016 +Node: ASCII12320 +Node: Base6412750 +Node: binary13448 +Node: Character Set14038 +Node: cn-gb14368 +Node: cn-big514854 +Node: CNS15490 +Node: Coded character set16171 +Node: Code extension16498 +Node: Content-Disposition16842 +Node: content-type17284 +Node: Content-Type field18686 +Node: Emacs19772 +Node: encoded-word20006 +Node: encapsulation20397 +Node: euc-kr20692 +Node: FTP21209 +Node: GB 231221494 +Node: GB 8565.222048 +Node: hz-gb231222511 +Node: ISO 202223320 +Node: iso-2022-cn23899 +Node: iso-2022-cn-ext24375 +Node: iso-2022-jp25047 +Node: iso-2022-jp-225762 +Node: iso-2022-kr26171 +Node: ISO 64626604 +Node: ISO 8859-127264 +Node: iso-8859-127695 +Node: ISO 8859-228140 +Node: iso-8859-228574 +Node: ISO 8859-329013 +Node: ISO 8859-429330 +Node: ISO 8859-529647 +Node: iso-8859-530056 +Node: ISO 8859-630498 +Node: ISO 8859-730817 +Node: iso-8859-731221 +Node: ISO 8859-831771 +Node: ISO 8859-932090 +Node: ISO-IR-16532407 +Node: JIS X020132922 +Node: JIS C622633716 +Node: JIS X020834009 +Node: JIS X021235892 +Node: koi8-r36244 +Node: KS C560136742 +Node: message37143 +Node: message/rfc82237404 +Node: method37709 +Node: MIME38060 +Node: MIME charset38481 +Node: MTA39042 +Node: MUA39256 +Node: MULE39430 +Node: multipart40282 +Node: multipart/alternative41109 +Node: multipart/digest41413 +Node: multipart/encrypted42055 +Node: multipart/mixed42384 +Node: multipart/parallel42676 +Node: multipart/signed42962 +Node: PGP43257 +Node: PGP-kazu44088 +Node: PGP/MIME45571 +Node: Quoted-Printable46601 +Node: RFC 82147362 +Node: RFC 82247642 +Node: RFC 93448126 +Node: RFC 103648578 +Node: RFC 115349032 +Node: RFC 152149568 +Node: RFC 155750013 +Node: RFC 192250402 +Node: plain text51063 +Node: Security multipart51339 +Node: text/enriched51972 +Node: text/plain52437 +Node: tm-kernel52920 +Node: tm-MUA53425 +Node: us-ascii53944 +Node: Setting54610 +Node: mime-setup55290 +Node: signature55912 +Node: Notice about GNUS57670 +Node: tm-setup58822 +Node: setting for VM59663 +Node: manual setting60029 +Node: Bug report60584 +Node: Concept Index62194 +Node: Variable Index71524 + +End tag table diff --git a/doc/tm-ja.sgml b/doc/tm-ja.sgml new file mode 100644 index 0000000..0f483f6 --- /dev/null +++ b/doc/tm-ja.sgml @@ -0,0 +1,1631 @@ +<!doctype sinfo system> +<!-- $Id: tm-ja.sgml,v 5.1 1996/10/16 00:19:26 morioka Exp $ --> +<head> +<title>tm 7.90 Manual(日本語版) +<author>守岡 知彦 <mail>morioka@jaist.ac.jp</mail> +<date>1996/10/15 + +<toc> +</head> + +<body> + +<abstract> +<p> +This file documents tm, a MIME package for GNU Emacs. +<p> +GNU Emacs で MIME を楽しむための package である `tm' について説明しま +す。 +</abstract> + +<h1> tm って何? +<node> Introduction +<p> +tm は GNU Emacs で MIME を楽しむための package です。tm を使うと、 + +<ul> +<li> tm-view による MIME message の閲覧・再生 +<li> tm-edit による MIME message の作成 +<li> mh-e, GNUS, Gnus, RMAIL, VM での MIME 機能の強化 +</ul> + +<noindent> +というようなことが行なえます。 +<p> +個別の項目については以下を御参照下さい: + +<ul> +<li><a file="gnus-mime-ja">tm-MUA for Gnus</a> +<li><a file="tm-gnus-ja">tm-MUA for GNUS</a> +<li><a file="tm-mh-e-ja">tm-MUA for mh-e</a> +<li><a file="tm-view-ja">mime/viewer-mode</a> +<li><a file="tm-edit-ja">mime/editor-mode</a> +</ul> + + +<h2> ところで、MIME っていったい何? +<node> What is MIME? +<p> +<concept name="MIME"> とは <concept name="Multipurpose Internet Mail +Extensions"> の略で、従来の、基本的に <dref node="us-ascii"> の <dref +node="plain text"> であった Internet Mail/News に対する拡張になってい +ます。 +<p> +MIME には、<a node="RFC 1521">RFC 1521</a> で規定されている多目的 +message の側面と、<a node="encoded-word">RFC 1522</a> で規定されている +message header における非 ASCII 文字の表現法のような、多言語化の側面が +あります。 + + +<h2> MIME でどんなこと出来るの? +<node> How is MIME? +<P> +まず、多目的 message の側面を考えると、従来の Internet Mail/News が基 +本的に <dref node="us-ascii"> の <dref node="plain text"> しか表現でき +なかったのに対して、絵や音声や動画などの様々な data を表現することがで +きます。 +<P> +また、面白いことに、<a node="FTP">ftp</a> や ftp mail をしたり、file +を取り出したり、patch を当てたり、といった、『手続き』を送ることができ +ます。 +<P> +# もっとも、こういうのは、ある意味では危険だったりするのですが。 +<P> +こうした message は、内容の種類を <a node="Content-Type +field"><concept name="Content-Type"></a> という field に書いた message +の型で指定します。すると、受け手は各 <dref node="content-type"> に対応 +した処理の種類を設定しておいて、message を『読む』だけで、絵や動画を見 +たり、音を鳴らしたり、ftp で file を取ったり、fileを取り出したりできま +す。 +<p> +また、ある message に複数の content-type が存在する <a +node="multipart"><concept name="Multipart"></a> の message というのも +可能で、一つの message の中に、絵と音と文章を入れたりといったようなこ +とができます。 +<p> +MIME にはこのような『宣言』の思想があるように思われます。つまり、<dref +node="us-ascii"> を「アルファベット」とする MIME という message 記述言 +語で、いろいろなものを記述していこうということです。これは <a +node="encoded-word">RFC 1522</a> で規定された encoded-word でもいえる +と思います。 +<P> +そして、受け手は、理解できないものは無視するが、その結果、data を壊す +ことはしないというものがあります。 +<p> +例えば、<a node="ASCII">ASCII</a> しか表示できない環境で <a node="JIS +X0208">JIS X0208</a> と <a node="ISO 8859-1">ISO 8859-1</a> が混じった +テキストをもらったら困る訳ですが、そういう時だけ多言語端末を開くという +ような技が使えます。 +<p> +もちろん、<a node="MULE">MULE</a> のような多言語環境においても <a +node="MUA">MUA</a> に対して明示的に <a node="MIME charset">MIME +charset</a> を示すことは有益でしょう。 + + +<h2> 用語 +<node> Glossary +<p> +tm で使われている用語について解説します。 + +<h3> 7bit +<node> 7bit +<p> +ここでは 0 から 127 の整数を指します。 +<p> +0 から 127 の整数の列で表現できるような data を ``7bit の data'' と呼 +びます。 +<p> +また、0 から 31 および 127 で表現される制御文字と 32 で表現される空白 +と 33 から 126 で表現される図形文字からなる文字列のことを ``7bit の文 +字列'' と呼びます(これは <a node="ISO 2022">ISO 2022</a> の「7 単位系」 +と同様です)。 +<p> +伝統的な Internet の <a node="MTA">MTA</a> は 7bit の data を転送でき +るので、7bit の data は <a +node="Quoted-Printable">Quoted-Printable</a> や <a +node="Base64">Base64</a> といった変換を行わなくてもそのまま転送できま +す。 +<p> +しかし、7bit であればどんな data でも良いとはいえません。なぜなら、1 +行の長さがあまりに長いと、MTA はその message を転送することができない +からです。ちなみに、<a node="RFC 821">RFC 821</a> は1行は改行文字を除 +いて 998 byte 以内であることを求めています。よって、これ以上の行が含ま +れる可能性のある data, 例えば、Postscript の data などは +Quoted-Printable 等で encodeする必用があります。 + + +<h3> 8bit +<node> 8bit +<p> +ここでは 0 から 255 の整数を指します。 +<p> +0 から 255 の整数の列で表現できるような data を ``8bit の data'' と呼 +びます。 +<p> +また、0 から 31, 127 および 128 から 159 で表現される制御文字と 32 で +表現される空白と 33 から 126 と 160 から 255 で表現される図形文字から +なる文字列のことを ``8bit の文字列'' と呼びます(これは <a node="ISO +2022">ISO 2022</a> の「8 単位系」と同様です)。 +<p> +<a node="iso-8859-1">iso-8859-1</a> や <a node="euc-kr">euc-kr</a> と +いった符号化文字集合は 8bit の文字列です。 +<p> +伝統的な Internet の <a node="MTA">MTA</a> は <a node="7bit">7bit</a> +の data しか転送できないので、そうした MTA を経由する場合、<a +node="Quoted-Printable">Quoted-Printable</a> や <a +node="Base64">Base64</a> といった変換を行わなくてはなりません。 +<p> +しかし、最近では 8bit の文字列をそのまま通すことができる MTA も登場し +てきたので、そのまま送ることができる場合も増えてきました。 +<p> +しかし、8bit であればどんな data でも良いとはいえません。なぜなら、1 +行の長さがあまりに長いと、MTA はその message を転送することができない +からです。ちなみに、RFC 821 は1行は改行文字を除いて 998 byte 以内であ +ることを求めています。よって、これ以上の行が含まれる可能性のある data, +例えば、Postscript の data などは Quoted-Printable 等で encodeする必用 +があります。 +<p> +また、こうした理由から、1行が 999 byte 以上の行が存在する可能性のある +data は <a node="binary"><concept name="binary"></a> と呼ぶことにしま +す。 +<p> +ちなみに、7bit で表現できる data は 8bit でも表現できます。よって、 +``8bit'' と言った場合、1行が 998 byte 以下の任意の data を指すことが +あります。 + + +<h3> 94 文字集合 +<node> 94 character set +<p> +33 から 126 の範囲の 1 byte からなる <a node="Character set">文字集合 +</a>。<a node="ASCII">ASCII</a> や JIS X0201-Latin はその一種。 + + +<h3> 96 文字集合 +<node> 96 character set +<p> +32 から 127 の範囲の 1 byte からなる <a node="Character set">文字集合 +</a>。ISO 8859 シリーズはその一種。 + + +<h3> 94×94 文字集合 +<node> 94x94 character set +<p> +33 から 126 の範囲の 2 byte からなる <a node="Character set">文字集合 +</a>。<a node="JIS X0208">JIS X0208</a> や <a node="GB 2312">GB +2312</a> はその一種。 + + +<h3> ASCII +<node> ASCII +<p> +アメリカ連邦で使われる文字を符号化した <a node="94 character set">94 +文字集合</a>。A-Z, a-z の Latin 文字と数字、幾つかの記号からなる。<a +node="ISO 646">ISO 646</a> の一つ。 + +<standard abbrev="ASCII" title-en="Coded Character Set -- 7-Bit + American Standard Code for Information Interchange" + number="ANSI X3.4" year="1986"> + + +<h3> Base64 +<node> Base64 +<p> +<a node="RFC 1521">RFC 1521</a> で定義されている <a +node="MIME">MIME</a> における <a node="binary">binary data</a> の +network での変換法の1つ。 +<p> +『64 進数』という意味で、3 byte の data を 0 から 63 の数を表す <dref +node="ASCII"> 4 文字に変換する方法。(もし、4 文字にならなければ +<concept name="pad"> と呼ばれる詰め物をして長さを調整する) +<p> +この 65 種類の文字は ASCII と EBCDIC の共通部分から選ばれており、 +Internet 以外の network を経由する場合でも安全に転送できるように設計さ +れている。 + + +<h3> binary +<node> binary +<p> +任意の byte 列を <concept name="binary"> と呼ぶことにします。 +<p> +<a node="8bit">8bit</a> と異なるのは data に行の構造を仮定しないことで +す。 +<p> +また、行の構造があっても、999 byte 以上からなる行がある場合も binary +と呼ぶことにします。 +<p> +ちなみに、<a node="7bit">7bit</a> や 8bit で表現できる data は binary +でも表現できます。よって、<concept name="binary data"> と言った場合、 +任意の data を指すことがあります。 + + +<h3> Character Set(文字集合) +<node> Character Set +<p> +<a node="Coded character set">符号化文字集合</a>。但し、ここでは <a +node="Code extension">符号拡張</a> されてない文字集合というニュアンス +を込めている。 + + +<h3> cn-gb, gb2312 +<node> cn-gb +<p> +中国大陸でられている簡体字で表記される中国語を表現するための <a +node="MIME charset">MIME charset</a> の1つ。 +<p> +<a node="ISO 2022">ISO 2022</a> に基いて <a node="ASCII">ASCII</a> に +<a node="GB 2312">GB 2312</a> を <a node="8bit">8bit</a> で<a +node="Code extension">符号拡張</a>している。 +<p> +<a node="RFC 1922">RFC 1922</a> で定義されている。 + + +<h3> cn-big5, big5 +<node> cn-big5 +<p> +台湾や香港で用いられている主に繁体字で表記される中国語を表現するための +<a node="MIME charset">MIME charset</a> の1つ。 +<p> +<a node="ISO 2022">ISO 2022</a> に基かない <a node="8bit">8bit</a> の +<a node="Coded character set">符号化文字集合</a>で de-fact standard で +ある。<a node="RFC 1922">RFC 1922</a> で定義されている。 +<p> +cf. <report abbrev="BIG5" author="Institute for Information Industry" + title-en="Chinese Coded Character Set in Computer" + date="March 1984"> +<p> +<a node="CNS">CNS 11643-1986</a> と対応関係がある。 + + +<h3> CNS 11643-1992 +<node> CNS +<p> +台湾や香港で用いられている主に繁体字で表記される中国語を表現するための +<a node="Character set">文字集合</a>。台湾の標準。現在、<a node="94x94 +character set">94×94</a> の面が第1面から第7面まである。 +<p> +<a node="ISO 2022">ISO 2022</a> での終端文字は、第1面が `G', 第2面が +`H', 第3面が `I', 第4面が `J', 第5面が `K', 第6面が `L', 第7面が +`M' である。 + +<standard abbrev="CNS 11643-1992" title-en="Standard Interchange Code + for Generally-Used Chinese Characters" number="CNS + 11643" year="1992"> + + +<h3> Coded character set(符号化文字集合), Character code(文字符号) +<node> Coded character set +<p> +文字と byte 列と1対1に対応付ける曖昧でない規則の集合。 + + +<h3> Code extension(符号拡張) +<node> Code extension +<p> +与えられた<a node="Character set">文字集合</a>に含まれていない文字の符 +号化のために用いる手法。<a node="ISO 2022">ISO 2022</a> はその1つ。 + + +<h3> Content-Disposition field +<node> Content-Disposition +<p> +Content の表示の仕方や file 名を表現するための field. <a +node="MIME">MIME</a> の拡張の1つ。 +<p> +<rfc number="1806" type="Experimental" author="E R. Troost and + S. Dorner" title="Communicating Presentation Information + in Internet Messages: The Content-Disposition Header" + date="June 1995"> + + +<h3> content-type +<node> content-type +<p> +<dref node="MIME"> における <dref node="part"> の種類。<concept +name="type"> と <concept name="subtype"> からなる。<dref node="RFC +1521"> で定義されている。 +<p> +type は標準では <concept name="application">, <concept name="audio">, +<concept name="image">, <concept name="message">, <a node="multipart"> +<concept name="multipart"></a>, <concept name="text">, <concept +name="video"> が定義され、それぞれには application/octet-stream, +audio/basic, image/jpeg, <dref node="multipart/mixed">, <dref +node="text/plain">, video/mpeg などのさまざまな subtype が定義されてい +る。 + +<memo title="注意"> +<p> +ここでは、text/plain などの type/subtype の組をしばしば <concept +name="content-type/subtype"> と書く。 +</memo> + +<p> +content-type は、RFC 1521 で定義されているものに加えて、登録することも +できる。現在、登録されているものは <a +href="ftp://ftp.isi.edu/in-notes/iana/assignments/media-types">MEDIA +TYPES</a> で参照できる。 +<p> +また、type もしくは subtype に、前に `x-' を付けた <concept +name="x-token"> を用いることにより、登録されていないものを私的に用いる +こともできる。しかし、当然のことながら、こうした私的な content-type は +諒解を得た者の間でしか解釈できないので利用には注意すること。 +<p> +<cf node="Content-Type field"> + + +<h3> Content-Type field +<node> Content-Type field +<p> +<dref node="content-type"> や <dref node="MIME charset"> などの part +に関する情報を表現するための field. <dref node="RFC 1521"> で定義され +ている。 + +<memo> +<p> +歴史的には RFC 1049 で Content-Type field が提案されている。但し、ここ +では type と subtype の区別はない。しかし、文法的には RFC 1521 parser +は RFC 1049 に基づく message を未知の content-type を持った message と +して parse できるだろう。 +</memo> + +<p> +Content-Type field は + +<quote> +``Content-Type'' ``:'' <concept name="type"> ``/'' <concept +name="subtype"> *( ``;'' <concept name="parameter"> ) +</quote> + +<noindent> +と定義される。 +<p> +例えば、 + +<quote> +<verb> +Content-Type: image/jpeg +</verb> +</quote> + +<noindent> +や + +<quote> +<verb> +Content-Type: text/plain; charset=iso-2022-jp +</verb> +</quote> + +<noindent> +などのように書かれる。 + +<memo> +<p> +content-type のない part は + +<quote> +<verb> +Content-Type: text/plain; charset=us-ascii +</verb> +</quote> + +<noindent> +として解釈される。<cf node="us-ascii"> +</memo> + + +<h3> Emacs +<node> Emacs +<p> +ここでは `Emacs' で FSF が配布している GNU Emacs を指し、`emacs' で +GNU Emacs の変種の総称とする。 + + +<h3> encoded-word +<node> encoded-word +<p> +header における非 <a node="ASCII">ASCII</a> 文字の表現。<concept +name="RFC 1522"> で定義されている。 +<p> +<rfc number="1522" type="Standards Track" author="K. Moore" + title="MIME (Multipurpose Internet Mail Extensions) Part + Two: Message Header Extensions for Non-ASCII Text" + date="September 1993"> + + +<h3> encapsulation +<node> encapsulation +<p> +<a node="RFC 822">Internet mail</a> を他の記事にまるごと入れる方法。 +<p> +例えば、記事を転送したりするのに用いる。 +<p> +<cf node="message/rfc822"> + + +<h3> euc-kr +<node> euc-kr +<p> +韓国語を表現するための <a node="MIME charset">MIME charset</a> の1つ。 +<p> +<a node="ISO 2022">ISO 2022</a> に基いて <a node="ASCII">ASCII</a> に +<a node="KS C5601">KS C5601</a> を <a node="8bit">8bit</a> で<a +node="Code extension">符号拡張</a>している。 +<p> +<a node="RFC 1557">RFC 1557</a> で定義されている。 +<p> +cf. <standard abbrev="euc-kr" org="Korea Industrial Standards + Association" title-en="Hangul Unix Environment" + number="KS C 5861" year="1992"> + + +<h3> FTP <node> FTP +<p> +Internet で file を転送するための protocol の1つ。RFC 959 で定義され +ている。 +<p> +<rfc name="FTP" number="959" type="STD 9" author="Postel, J. and + J. Reynolds" title="File Transfer Protocol" + date="October 1985"> + + +<h3> GB 2312-1980 +<node> GB 2312 +<p> +中国大陸で用いられている簡体字で表記される中国語を表すための <a +node="94x94 character set">94×94 文字集合</a>。中国の国家標準。<a +node="ISO 2022">ISO 2022</a> での終端文字は `A'. +<p> +これは GB における基本集である。 + +<standard abbrev="GB 2312" + title-cn="信息交換用漢字編碼字符集 -- 基本集" + title-en="Code of Chinese Graphic Character Set for + Information Interchange - Primary Set" number="GB 2312" + year="1980"> + + +<h3> GB 8565.2-1988 +<node> GB 8565.2 +<p> +中国語のための補助<a node="Character set">文字集合</a>。中国の国家標準。 +<a node="GB 2312">GB 2312</a> の空き部分に補充するように定義されたらし +い。 + +<standard abbrev="GB 8565.2" title-en="Information Processing - Coded + Character Sets for Text Communication - Part 2: Graphic + Characters used with Primary Set" number="GB 8565.2" + year="1988"> + + +<h3> hz-gb2312 +<node> hz-gb2312 +<p> +中国大陸で用いられている簡体字で表記される中国語を表現するための <a +node="MIME charset">MIME charset</a> の1つ。 +<p> +<a node="ASCII">ASCII</a> に <a node="GB 2312">GB 2312</a> を 7bit で +<a node="Code extension">符号拡張</a>したものを ASCII printable になる +ように工夫している。 +<p> +RFC 1842, 1843 で定義されている。 + +<rfc number="1842" type="Informational" author="Y. Wei, Y. Zhang, + J. Li, J. Ding and Y. Jiang" title="ASCII Printable + Characters-Based Chinese Character Encoding for Internet + Messages" date="August 1995"> +<rfc number="1843" type="Informational" author="F. Lee" title="HZ - A + Data Format for Exchanging Files of Arbitrarily Mixed + Chinese and ASCII characters" date="August 1995"> + + +<h3> ISO 2022 +<node> ISO 2022 +<p> +<a node="Code extension">符号拡張</a>のための国際標準。 +<p> +これを用いて複数の<a node="Character set">文字集合</a>を組合せて <a +node="7bit">7bit</a> ないし <a node="8bit">8bit</a> の <a node="Coded +character set">符号化文字集合</a> を作ることができる。 + +<standard abbrev="ISO 2022" org="International Organization for + Standardization (ISO)" title-en="Information Processing: + ISO 7-bit and 8-bit coded character sets: Code extension + techniques" number="ISO/IEC 2022" year="1994"> + + +<h3> iso-2022-cn +<node> iso-2022-cn +<p> +中国語を表現するための <a node="MIME charset">MIME charset</a> の1つ。 +<p> +<a node="ISO 2022">ISO 2022</a> に基いて <a node="ASCII">ASCII</a> に +<a node="GB 2312">GB 2312</a>, <a node="CNS">CNS 11643 plain 1, plain +2</a> を <a node="7bit">7bit</a> で<a node="Code extension">符号拡張 +</a>している。 +<p> +<a node="RFC 1922">RFC 1922</a> で定義されている。 + + +<h3> iso-2022-cn-ext +<node> iso-2022-cn-ext +<p> +中国語を表現するための <a node="MIME charset">MIME charset</a> の1つ。 +<p> +<a node="ISO 2022">ISO 2022</a> に基いて <a node="ASCII">ASCII</a> に +<a node="GB 2312">GB 2312</a>, <a node="CNS">CNS 11643 plain 1 +.. 7</a>, <a node="ISO-IR-165">ISO-IR-165</a> 等を <a +node="7bit">7bit</a> で<a node="Code extension">符号拡張</a>している。 +<p> +<a node="RFC 1922">RFC 1922</a> で定義されている。 +<p> +<memo> +MULE 2.3 および、現在の XEmacs/mule では正しく扱うことはできない。 +<p> +Emacs/mule では利用可能である。 +</memo> + + +<h3> iso-2022-jp +<node> iso-2022-jp +<p> +日本語を表現するための <a node="MIME charset">MIME charset</a> の一つ。 +<p> +古い <a node="ISO 2022">ISO 2022</a> に基いて <a +node="ASCII">ASCII</a>, JIS X0201-Latin, <a node="JIS C6226-1978">JIS +X0208-1978</a>, <a node="JIS X0208">JIS X0208-1983</a> を切り替える <a +node="7bit">7bit</a> 文字符号。 +<p> +RFC 1468 で定義されている。 +<p> +<memo> +JIS X0208-1996? では <a node="ISO 2022">ISO 2022</a> と独立に定義され +る予定。 +</memo> + +<rfc name="iso-2022-jp" number="1468" author="Murai J., M. Crispin, + and E. van der Poel" title="Japanese Character Encoding + for Internet Messages" date="June 1993"> + + +<h3> iso-2022-jp-2 +<node> iso-2022-jp-2 +<p> +<a node="iso-2022-jp">iso-2022-jp</a> を拡張した <a node="MIME +charset">MIME charset</a> の一つ。 +<p> +RFC 1554 で定義されている。 + +<rfc name="iso-2022-jp-2" number="1554" type="Informational" + author="Ohta M. and Handa K." title="ISO-2022-JP-2: + Multilingual Extension of ISO-2022-JP" date="December + 1993"> + + +<h3> iso-2022-kr +<node> iso-2022-kr +<p> +韓国語を表現するための <a node="MIME charset">MIME charset</a> の1つ。 +<p> +<a node="ISO 2022">ISO 2022</a> に基いて <a node="ASCII">ASCII</a> に +<a node="KS C5601">KS C5601</a> を <a node="7bit">7bit</a> で<a +node="Code extension">符号拡張</a>している。 +<p> +<a node="RFC 1557">RFC 1557</a> で定義されている。 + + +<h3> ISO 646 +<node> ISO 646 +<p> +各国で共通に使える最小限度の<a node="Character set">文字集合</a>を定め +たもの。<a node="94 character set">94 文字集合</a>の1つ。ISO 646 IRV +(国際基準版)を元に幾つかの文字は各国で違う文字を割当ることを許してい +て、幾つかの変種が存在する。<a node="ASCII">ASCII</a> や JIS +X0201-Latin はその一種。 + +<standard abbrev="ISO 646" org="International Organization for + Standardization (ISO)" title-en="Information technology: + ISO 7-bit coded character set for information + interchange" number="ISO/IEC 646" year="1991"> + + +<h3> ISO 8859-1 +<node> ISO 8859-1 +<p> +西欧諸語で用いられる拡張 Latin 文字や記号からなる <a node="96 +character set">96 文字集合</a>。 + +<standard abbrev="ISO 8859-1" org="International Organization for + Standardization (ISO)" title-en="Information Processing + -- 8-bit Single-Byte Coded Graphic Character Sets -- + Part 1: Latin Alphabet No.1" number="ISO 8859-1" + year="1987"> + + +<h3> iso-8859-1 +<node> iso-8859-1 +<p> +西欧諸語などを表現するための <a node="MIME charset">MIME charset</a> +の1つ。 +<p> +<a node="ISO 2022">ISO 2022</a> に基いて、<a node="ASCII">ASCII</a> に +<a node="ISO 8859-1">ISO 8859-1</a> を <a node="8bit">8bit</a> で<a +node="Code extension">符号拡張</a>している。 +<p> +<a node="RFC 1521">RFC 1521</a> で定義されている。 + + +<h3> ISO 8859-2 +<node> ISO 8859-2 +<p> +東欧諸語で用いられる拡張 Latin 文字や記号からなる <a node="96 +character set">96 文字集合</a>。 + +<standard abbrev="ISO 8859-2" org="International Organization for + Standardization (ISO)" title-en="Information Processing + -- 8-bit Single-Byte Coded Graphic Character Sets -- + Part 2: Latin alphabet No.2" number="ISO 8859-2" + year="1987"> + + +<h3> iso-8859-2 +<node> iso-8859-2 +<p> +東欧諸語を表現するための <a node="MIME charset">MIME charset</a> の1 +つ。 +<p> +<a node="ISO 2022">ISO 2022</a> に基いて、<a node="ASCII">ASCII</a> に +<a node="ISO 8859-2">ISO 8859-2</a> を <a node="8bit">8bit</a> で<a +node="Code extension">符号拡張</a>している。 +<p> +<a node="RFC 1521">RFC 1521</a> で定義されている。 + + +<h3> ISO 8859-3 +<node> ISO 8859-3 +<p> +<standard abbrev="ISO 8859-3" org="International Organization for + Standardization (ISO)" title-en="Information + Processing -- 8-bit Single-Byte Coded Graphic + Character Sets -- Part 3: Latin alphabet No.3" + number="ISO 8859-3" year="1988"> + + +<h3> ISO 8859-4 +<node> ISO 8859-4 +<p> +<standard abbrev="ISO 8859-4" org="International Organization for + Standardization (ISO)" title-en="Information + Processing -- 8-bit Single-Byte Coded Graphic + Character Sets -- Part 4: Latin alphabet No.4" + number="ISO 8859-4" year="1988"> + + +<h3> ISO 8859-5 +<node> ISO 8859-5 +<p> +キリル文字や記号からなる <a node="96 character set">96 文字集合</a>。 + +<standard abbrev="ISO 8859-5" org="International Organization for + Standardization (ISO)" title-en="Information Processing + -- 8-bit Single-Byte Coded Graphic Character Sets -- + Part 5: Latin/Cyrillic alphabet" number="ISO 8859-5" + year="1988"> + + +<h3> iso-8859-5 +<node> iso-8859-5 +<p> +キリル文字を表現するための <a node="MIME charset">MIME charset</a> の +1つ。 +<p> +<a node="ISO 2022">ISO 2022</a> に基いて、<a node="ASCII">ASCII</a> に +<a node="ISO 8859-5">ISO 8859-5</a> を <a node="8bit">8bit</a> で<a +node="Code extension">符号拡張</a>している。 +<p> +<a node="RFC 1521">RFC 1521</a> で定義されている。 + + +<h3> ISO 8859-6 +<node> ISO 8859-6 +<p> +<standard abbrev="ISO 8859-6" org="International Organization for + Standardization (ISO)" title-en="Information + Processing -- 8-bit Single-Byte Coded Graphic + Character Sets -- Part 6: Latin/Arabic alphabet" + number="ISO 8859-6" year="1987"> + + +<h3> ISO 8859-7 +<node> ISO 8859-7 +<p> +ギリシア文字や記号からなる <a node="96 character set">96 文字集合</a>。 + +<standard abbrev="ISO 8859-7" org="International Organization for + Standardization (ISO)" title-en="Information Processing + -- 8-bit Single-Byte Coded Graphic Character Sets -- + Part 7: Latin/Greek alphabet" number="ISO 8859-7" + year="1987"> + + +<h3> iso-8859-7 +<node> iso-8859-7 +<p> +ギリシア語を表現するための <a node="MIME charset">MIME charset</a> の +1つ。 +<p> +<a node="ISO 2022">ISO 2022</a> に基いて、<a node="ASCII">ASCII</a> に +<a node="ISO 8859-7">ISO 8859-7</a> を <a node="8bit">8bit</a> で<a +node="Code extension">符号拡張</a>している。 +<p> +RFC 1947 で定義されている。 + +<rfc name="iso-8859-7" number="1947" type="Informational" + author="D. Spinellis" title="Greek Character Encoding + for Electronic Mail Messages" date="May 1996"> + + +<h3> ISO 8859-8 +<node> ISO 8859-8 +<p> +<standard abbrev="ISO 8859-8" org="International Organization for + Standardization (ISO)" title-en="Information + Processing -- 8-bit Single-Byte Coded Graphic + Character Sets -- Part 8: Latin/Hebrew alphabet" + number="ISO 8859-8" year="1988"> + + +<h3> ISO 8859-9 +<node> ISO 8859-9 +<p> +<standard abbrev="ISO 8859-9" org="International Organization for + Standardization (ISO)" title-en="Information + Processing -- 8-bit Single-Byte Coded Graphic + Character Sets -- Part 9: Latin alphabet No.5" + number="ISO 8859-9" year="1990"> + + +<h3> ISO-IR-165, CCITT Extended GB <node> ISO-IR-165 +<p> +CCITT が登録した、中国大陸で用いられている簡体字で表記される中国語を表 +現するための <a node="94x94 character set">94×94 文字集合</a>。 +<p> +<a node="GB 2312">GB 2312</a> と <a node="GB 8865.2">GB 8565 表2</a> +に 150 文字ほどを追加したものらしい。 +<p> +<a node="ISO 2022">ISO 2022</a> での終端文字は `E' である。 + + +<h3> JIS X0201 +<node> JIS X0201 +<p> +<a node="ISO 646">ISO 646</a> の変種の1つである Latin 文字集合と 1 +byte のカタカナ文字集合からなる。 +<p> +元は <concept name="JIS C6220-1976"> と言ったが <concept name="JIS +X0201"> に番号が変更された。 + +<standard abbrev="JIS X0201-1976" org="日本規格協会 (Japanese + Standards Association)" title-ja="情報交換用符号" + title-en="Code for Information Interchange" number="JIS + X 0201-1976"> + +また、1996 年に改定版が出る予定。 + +<standard abbrev="JIS X0201-1996?" org="日本規格協会 (Japanese + Standards Association)" + title-ja="7ビット及び8ビットの情報交換用符号化文字集合" + title-en="7-bit and 8-bit coded character sets for + information interchange" number="JIS X 0201" year="1996? + draft"> + + +<h3> JIS C6226-1978 +<node> JIS C6226 +<p> +日本語を表すために作られた <a node="94x94 character set">94×94 文字集 +合</a>。日本の国家標準。JIS X0208-1978 ともいう。 +<p> +<cf node="JIS X0208"> + + +<h3> JIS X0208 +<node> JIS X0208 +<p> +日本語を表すために作られた <a node="94x94 character set">94×94 文字集 +合</a>。日本の国家標準。1978 年版、1983 年版、1990 年版があるが、 +Internet では 1983 年版がもっとも良く使われている。 +<p> +JIS X0208 は記号、数字、ローマ字、ひらがな、カタカナ、ギリシャ文字、キ +リル文字、罫線素、第1水準、第2水準の漢字が含まれる。但し、1983 年版 +の一部の記号と罫線素は 1978 年版にはない。また、一部の漢字の字形が +1983 年版では変更され、また、第1水準と第2水準が入れ替わっていたりす +る。このため、1978 年版と 1983 年版は異なる文字集合として扱われる。 +<p> +1990 年の改定では 1983 年版に対する追加が行われた。このため、1990 年版 +を指示する場合は前に更新シーケンスを用いる。 + +<standard abbrev="JIS X0208-1978" org="日本規格協会 (Japanese Standards + Association)" title-ja="情報交換用漢字符号系" + title-en="Code of the Japanese graphic character set for + information interchange" number="JIS C6226" year="1978"> +<standard abbrev="JIS X0208-1983,1990" org="日本規格協会 (Japanese Standards + Association)" title-ja="情報交換用漢字符号系" + title-en="Code of the Japanese graphic character set for + information interchange" number="JIS X0208" year="1983,1990"> + +<p> +また、1996 年に改定版が出版される予定。(字形の変更は行われないので文 +字集合としては 1990 年版と同一である) + +<standard abbrev="JIS X0208-1996?" org="日本規格協会 (Japanese + Standards Association)" title-ja="7ビット及び8ビットの + 2バイト情報交換用符号化漢字集合" title-en="7-bit and + 8-bit double byte coded Kanji sets for information + interchange" number="JIS X 0208" year="1996? draft"> + + +<h3> JIS X0212-1990 +<node> JIS X0212 +<p> +<a node="JIS X0208">JIS X0208</a> になかった文字を集めた <a +node="94x94 character set">94×94 文字集合</a>。「補助漢字」とも呼ばれ +る。日本の国家標準。<a node="ISO 2022">ISO 2022</a> での終端文字は +`D'. + + +<h3> koi8-r +<node> koi8-r +<p> +ロシヤ語等で用いられるキリル文字を表現するための <a node="MIME +charset">MIME charset</a> の1つ。 +<p> +<a node="ISO 2022">ISO 2022</a> に基かない <a node="8bit">8bit</a> の +<a node="Coded character set">符号化文字集合</a>で de-fact standard で +ある。 +<p> +RFC 1489 で定義されている。 +<p> +<rfc number="1489" author="A. Chernov" title="Registration of a + Cyrillic Character Set" date="July 1993"> + + +<h3> KS C5601-1987 +<node> KS C5601 +<p> +韓国語を表すための <a node="94x94 character set">94×94 文字集合</a>。 +韓国の国家標準。<a node="ISO 2022">ISO 2022</a> での終端文字は `C'. + +<standard abbrev="KS C5601" org="Korea Industrial Standards + Association" title-en="Code for Information Interchange + (Hangul and Hanja)" number="KS C 5601" year="1987"> + + +<h3> message +<node> message +<p> +ここでは <dref node="RFC 822"> で定義される mail と <dref node="RFC +1036"> で定義される news 記事の総称として用いる。 + + +<h3> message/rfc822 +<node> message/rfc822 +<p> +伝統的な <dref node="RFC 934"> に代わり、<dref node="RFC 822"> で定義 +される mail を表す MIME の形式。<dref node="RFC 1521"> で定義されてい +る。 + + +<h3> method +<node> method +<p> +tm で特定の種類の data を再生したとき実際にその処理を行なう +program. Emacs Lisp で書かれた <concept name="internal method"> と C +や script 言語などで書かれた <concept name="external method"> がある。 +<p> +<cf file="tm-view-ja" node="method"> + + +<h3> MIME +<node> MIME +<p> +<concept name="Multipurpose Internet Mail Extensions"> の略で、 +Internet の mail や news で <a node="us-ascii">us-ascii plain text</a> +以外の文字を使うための <dref node="RFC 822"> に対する拡張。 +<p> +<a node="RFC 1521">RFC 1521</a> と <a node="encoded-word">RFC 1522</a> +で定義されている。 +<p> +<cf node="What is MIME?"> + + +<h3> MIME charset +<node> MIME charset +<p> +<dref node="Content-Type field"> や <a +node="encoded-word">encoded-word</a> の charset parameter で用いられる +登録された<a node="Coded character set">符号化文字集合</a>。 +<p> +<a node="RFC 1521">RFC 1521</a> で定義されている。 +<p> +<a node="iso-2022-jp">iso-2022-jp</a> や <a node="euc-kr">euc-kr</a> +はその1つ。(ここでは、MIME charset は<a node="Character set">文字集 +合</a>と区別して小文字で書いている) + + +<h3> MTA +<node> MTA +<p> +<concept name="Message Transfer Agent"> の略で、sendmail などの mail +配送 program と news server の総称。 +<p> +<cf node="MUA"> + + +<h3> MUA +<node> MUA +<p> +<concept name="Message User Agent"> の略で、mail reader と news reader +の総称。 +<p> +<cf node="MTA"> + + +<h3> MULE +<node> MULE +<p> +半田 剣一氏らが作った、多言語された <a node="Emacs">Emacs</a>. +<p> +[MULE] Nishikimi M., Handa K. and Tomura S., ``Mule: MULtilingual +Enhancement to GNU Emacs'', Proc. of INET'93, August, 1993. +<p> +現在、MULE の機能を Emacs に merge する作業が行われており、<a +href="ftp://etlport.etl.go.jp/pub/mule/mule-19.33-gamma.taz"> alpha 版 +</a> が存在する。 +<p> +その他、XEmacs に merge したものも存在する。 +<p> +このため、現在では多言語 Emacs は、元々の MULE を含めて3種類あること +になる。 +<p> +そこで、ここでは、多言語 Emacs の総称を <concept name="mule">, 元々の +MULE を <concept name="MULE">, mule 機能を merge した Emacs を<concept +name="Emacs/mule">, mule 機能を merge した XEmacs を <concept +name="XEmacs/mule"> と呼ぶことにする。 + + +<h3> Multipart +<node> multipart +<p> +1つの <dref node="message"> に複数の part を入れるための <dref +node="MIME"> における表現法、もしくは、複数の part からなる message を +指す。<cf node="content-type"> +<p> +現在、定義されている <concept name="multipart"> としては、<dref +node="RFC 1521"> で定義された + +<ul> +<li><dref node="multipart/mixed"> +<li><dref node="multipart/alternative"> +<li><dref node="multipart/digest"> +<li><dref node="multipart/parallel"> +</ul> + +<noindent> +のほか <a node="Security multipart">RFC 1847</a> で定義された + +<ul> +<li><dref node="multipart/signed"> +<li><dref node="multipart/encrypted"> +</ul> + +<noindent> +などがある。 + + +<h3> multipart/alternative +<node> multipart/alternative +<p> +<dref node="multipart"> の1つで、同じ情報を異った形式で入れ、選択肢と +する場合に用いる。 +<p> +<cf node="RFC 1521"> + + +<h3> multipart/digest +<node> multipart/digest +<p> +<dref node="multipart"> の1つで、含まれる part の default の<dref +node="content-type"> が <dref node="multipart/mixed"> などの場合 <dref +node="text/plain"> であるのに対し、<concept name="multipart/digest">で +は <dref node="message/rfc822"> が用いられる点が異なる。 +<p> +これは伝統的な <dref node="RFC 1153"> に基づく <dref +node="encapsulation"> に代わるものである。 +<p> +<cf node="RFC 1521"> + + +<h3> multipart/encrypted +<node> multipart/encrypted +<p> +RFC 1847 で定義された <dref node="Security multipart"> の1つで、暗号 +化された message を表現するのに用いる。 +<p> +<cf node="PGP/MIME"> + + +<h3> multipart/mixed +<node> multipart/mixed +<p> +<dref node="multipart"> の主要な subtype で、複数の part を順序付けて +並べる場合に用いる。 +<p> +<cf node="RFC 1521"> + + +<h3> multipart/parallel +<node> multipart/parallel +<p> +<dref node="multipart"> の1つで、複数の part を順序付けずに含める場合 +に用いる。 +<p> +<cf node="RFC 1521"> + + +<h3> multipart/signed +<node> multipart/signed +<p> +RFC 1847 で定義された <dref node="Security multipart"> の1つで、電子 +署名を表現するのに用いる。 +<p> +<cf node="PGP/MIME"> + + +<h3> PGP +<node> PGP +<p> +Phil Zimmermann 氏が作成した公開鍵暗号処理系の1つ。<dref +node="message"> の暗号化や電子署名を行うことができる。Pretty Good +Privacy の略。 +<p> +伝統的な PGP では <dref node="encapsulation"> に <dref node="RFC 934"> +に準じた方法を用いる。これは <dref node="MIME"> と矛盾するので <dref +node="PGP/MIME"> が提案されている。一方、MIME において PGP の +encapsulation を用いる方法 <cf node="PGP-kazu"> も利用されてきた。しか +し、今後は PGP/MIME に統一していく方が望ましい。 +<p> +<rfc name="PGP" number="1991" type="Informational" author="D. Atkins, + W. Stallings and P. Zimmermann" title="PGP Message + Exchange Formats" date="August 1996"> + + + +<h3> PGP-kazu +<node> PGP-kazu +<p> +山本 和彦 氏が提案した <a node="MIME">MIME</a> で <a +node="PGP">PGP</a> を利用するための方法をここでは <concept +name="PGP-kazu"> と呼ぶことにする。 +<p> +PGP-kazu は <concept name="application/pgp"> という <dref +node="content-type"> を定義する。 +<p> +application/pgp の part では PGP の <dref node="encapsulation"> が用い +られる。PGP の encapsulation <cf node="RFC 934"> と MIME の +encapsulation は矛盾するので、PGP の encapsulation を解かない限り、中 +に含まれた MIME message を読むことができなくなる。即ち、PGP-kazu に対 +応していない MIME に対応した <dref node="MUA"> はその part が読めなく +なる。その代わり、MIME に対応していない PGP 対応の <dref node="MUA"> +でも message を読むことができる。 +<p> +PGP-kazu では MUA は PGP のと MIME のという2つの encapsulation を知ら +なければならない。また、application/pgp part を parse するためには、ま +ず、pgp の処理を行わなければならないので、parse 処理が複雑になる。 +<p> +また、Internet では今後 <dref node="PGP/MIME"> の方向で標準化していこ +うということで合意が取れている。よって、今後は PGP-kazu は用いないのが +望ましい。 +<p> +[draft-kazu-pgp-mime-00.txt] Yamamoto K., ``PGP MIME Integration'', +October, 1995 + + +<h3> PGP/MIME +<node> PGP/MIME +<p> +Michael Elkins 氏が提案した <a node="MIME">MIME</a> で <a +node="PGP">PGP</a> を利用するための方法。 +<p> +<a node="Security multipart">RFC 1847</a> に基き、MIME の multipart に +よる <dref node="encapsulation"> を行う。このため、MIME の自然な拡張に +なっている。しかし、伝統的な PGPとの互換性が失われている。 +<p> +PGP/MIME では <dref node="PGP-kazu"> と異なり、MIME の encapsulation +のみを用いる。また、このため、PGP の処理を行う前に message の parse を +行うことができる。 +<p> +Internet では今後 <dref node="PGP/MIME"> の方向で標準化していこうとい +うことで合意が取れている。よって、今後は PGP を用いる場合は PGP/MIME +を用いるのが望ましい。 + +<rfc name="PGP/MIME" number="2015" type="Standards Track" + author="M. Elkins" title="MIME Security with Pretty Good + Privacy (PGP)" date="October 1996"> + + +<h3> Quoted-Printable +<node> Quoted-Printable +<p> +<a node="RFC 1521">RFC 1521</a> で定義されている <a +node="MIME">MIME</a> における <a node="binary">binary data</a> の +network での変換法の1つ。 +<p> +`=' や制御文字や 128 以上の文字などは `=AF' のように `=' の後に続く 16 +進数で表現する。このため、<a node="ASCII">ASCII</a> 文字中心の data で +は <a node="Base64">Base64</a> に比べると可読性が高くなる可能性がある。 +<p> +しかしながら、EBCDIC には存在しない文字を利用する場合、EBCDIC を利用し +ている network では安全に転送することができず、Base64 に比べて安全性は +低い。 + + +<h3> RFC 821 +<node> RFC 821 +<p> +<concept name="SMTP"> と呼ばれる Internet mail の配送法の標準を定めて +いる RFC. + +<rfc name="SMTP" number="821" type="STD 10" author="J. Postel" + title="Simple Mail Transfer Protocol" date="August + 1982"> + + +<h3> RFC 822 +<node> RFC 822 +<p> +Internet mail の主に <concept name="message header"> に関する形式に関 +する標準を定めている RFC. + +<memo> +<p> +news message もこれに準じているので、<concept name="Internet mail"> と +書くよりも、<concept name="Internet message"> と書いた方が良いかもしれ +ない。 +</memo> + +<rfc number="822" type="STD 11" author="D. Crocker" title="Standard + for the Format of ARPA Internet Text Messages" + date="August 1982"> + + +<h3> RFC 934 +<node> RFC 934 +<p> +<a node="RFC 822">Internet mail</a> の <a node="encapsulation"> +<concept name="encapsulation"></a>の方法を定めた RFC. +<p> +<dref node="MIME"> と矛盾するので、現在では <dref +node="message/rfc822"> を用いるべきである。 + + +<rfc number="934" author="Marshall T. Rose and Einar A. Stefferud" + title="Proposed Standard for Message Encapsulation" + date="January 1985"> + + +<h3> RFC 1036 +<node> RFC 1036 +<p> +USENET での message の形式を定めた RFC. <a node="RFC 822">RFC 822</a> +の subset になっている。Internet の標準ではないが、USENET 以外の +netnews でもこれに準じているものが多い。 + +<rfc name="USENET" number="1036" author="M. Horton and R. Adams" + title="Standard for Interchange of USENET Messages" + date="December 1987" obsolete="850"> + + +<h3> RFC 1153 +<node> RFC 1153 +<p> +複数の <a node="RFC 822">Internet mail</a> を <a node="encapsulation"> +<concept name="encapsulation"></a>するための方法を定めた RFC. <dref +node="RFC 934"> を用いる。 +<p> +<dref node="MIME"> と矛盾するので、現在では <dref +node="message/rfc822"> を用いた <dref node="multipart"> を用いるべきで +ある。 +<p> +<cf node="multipart/digest"> + +<rfc number="1153" author="F. Wancho" title="Digest Message Format" + date="April 1990"> + + +<h3> RFC 1521 <node> RFC 1521 +<p> +<a node="MIME">MIME</a> を定義している RFC の1つ。 + +<rfc number="1521" type="Standards Track" author="N. Borenstein and + N. Freed" title="MIME (Multipurpose Internet Mail + Extensions) Part One: Mechanisms for Specifying and + Describing the Format of Internet Message Bodies" + date="September 1993" obsolete="1341"> + +(<a node="encoded-word">RFC 1522</a>) + + +<h3> RFC 1557 +<node> RFC 1557 +<p> +<dref node="euc-kr"> と <dref node="iso-2022-kr"> という韓国語のための +<a node="MIME charset">MIME charset</a> を定義している RFC. + +<rfc number="1557" type="Informational" author="U. Choi, K. Chon and + H. Park" title="Korean Character Encoding for Internet + Messages" date="December 1993"> + + +<h3> RFC 1922 +<node> RFC 1922 +<p> +<dref node="iso-2022-cn">, <dref node="iso-2022-cn-ext">, <dref +node="cn-gb">, <dref node="cn-big5"> といった中国語のための <a +node="MIME charset">MIME charset</a> を定義している RFC. +<p> +これに加えて、<concept name="charset-edition"> と <concept +name="charset-extension"> という <dref node="Content-Type field"> の +parameter を定義している。 + +<rfc number="1922" type="Informational" author="Zhu, HF., Hu, DY., + Wang, ZG., Kao, TC., Chang, WCH. and Crispin, M." + title="Chinese Character Encoding for Internet Messages" + date="March 1996"> + + +<h3> plain text +<node> plain text +<p> +書体や組版に関する情報を持たない <a node="Coded character set">文字符 +号</a>のみで表現される text 情報。<cf node="text/plain"> + + +<h3> Security multipart +<node> Security multipart +<p> +<a node="MIME">MIME</a> で暗号や電子書名を用いるための形式。<a +node="multipart/signed"><concept name="multipart/signed"></a> と <a +node="multipart/encrypted"><concept name="multipart/encrypted"></a> と +いう multipart を用いる。MOSS や <a node="PGP/MIME">PGP/MIME</a> はこ +れに基いている。 + +<rfc name="Security multipart" number="1847" type="Standards Track" + author="James Galvin, Gale Murphy, Steve Crocker and Ned + Freed" title="Security Multiparts for MIME: + Multipart/Signed and Multipart/Encrypted" date="October + 1995"> + + +<h3> text/enriched +<node> text/enriched +<p> +<a node="RFC 1521">RFC 1521</a> で定義された <concept +name="text/richtext"> に代わって、書体や組版に関する情報を持った text +を表現するための <dref node="content-type">. + +<rfc name="text/enriched" number="1896" author="P. Resnick and + A. Walker" title="The text/enriched MIME Content-type" + date="February 1996" obsolete="1563"> + + +<h3> text/plain +<node> text/plain +<p> +<dref node="RFC 1521"> で定義された、<dref node="plain text"> を表現す +るための <dref node="content-type">. +<p> +非 MIME message などの content-type が定義されない part は <dref +node="MIME charset"> が <dref node="us-ascii"> である <concept +name="text/plain"> の part であると見做されることになっている。 + + +<h3> tm-kernel, tm +<node> tm-kernel +<p> +Emacs で <a node="MIME">MIME</a> を利用するための user interface を提 +供する library 群。`tools for MIME' の略。 + +<memo title="どうでも良いこと(^-^;"> +<p> +<ul> + <li> tm は ``tiny-mime'' の略じゃないらしいぞ (^-^; + <li> tm は作者のイニシャルじゃないらしいぞ (^-^; + <li> ``Tools for MIME'' の略というのはこじつけらしいぞ (^-^; +</ul> +</memo> + + +<h3> tm-MUA +<node> tm-MUA +<p> +<a node="tm-kernel">tm</a> を用いた <a node="MUA">MUA</a> もしくは MUA +に対する extender. +<p> +<concept name="tm 大盛り package"> には + +<ul> +<li><a file="mh-e">mh-e</a> 用の <concept name="tm-mh-e"> +<li>GNUS 用の <concept name="tm-gnus"> +<li>Gnus 用の <a file="gnus-mime-ja"><concept name="gnus-mime"></a> +<li>VM 用の <concept name="tm-vm"> +<li>RMAIL 用の <concept name="tm-rmail"> +</ul> + +<noindent> +が含まれている。 +<p> +独立した MUA としては <a file="cmail">cmail</a> が tm を利用可能である。 + + +<h3> us-ascii +<node> us-ascii +<p> +アメリカ連邦などで使われる英語などを表現するための <a node="MIME +charset">MIME charset</a> の1つ。 +<p> +<a node="ASCII">ASCII</a> のみからなり <a node="ISO 2022">ISO 2022</a> +による<a node="Code extension">符号拡張</a>は許されない。 +<p> +Internet mail における標準の<a node="Coded character set">符号化文字集 +合</a>であり、明示的に MIME charset が示されない場合は原則として +<concept name="us-ascii"> が使われる。 +<p> +また、<a node="RFC 822">RFC 822</a> における <concept name="ASCII"> は +us-ascii を指すものと解釈すべきである。 + + +<h1> 設定 +<node> Setting +<p> +この package には <file>mime-setup.el</file> と +<file>tm-setup.el</file> という簡易設定 file が附属しています。 + +<p> +<file>mime-setup.el</file> では <file>tm-edit.el</file> を使った MIME +message の作成も含めた MIME 全般の設定を行ない、 +<file>tm-setup.el</file> では tm-MUA に関するMIME message の閲覧の設定 +のみを行ないます。 + + +<h2> 標準的な設定 +<node> mime-setup +<p> +tm の一般的な設定を行いたい場合は、<concept name="mime-setup"> という +標準設定 file を使ってください。例えば、<file>~/.emacs</file> 等で、 +<p> +<lisp> +(load "mime-setup") +</lisp> +<p> +<noindent> +とするだけで OK です。 + +<p> +<file>mime-setup.el</file> は <file>tm-setup.el</file> を呼んでいるの +で、<file>tm-setup.el</file> を load する必要はありません。(過去の +Gnus FAQ の記述は間違っています!) + + +<h3> signature.el +<node> signature +<p> +tm には <concept name="signature"> という signature の自動切替え tool +が附属しており、<file>mime-setup.el</file> はこの設定も行ないます。 +message header の field に合わせて signature の自動切替を行ないたい場 +合は <file>~/.emacs</file> に以下のようなものを入れて下さい。(詳しく +は signature.el の説明書を参照して下さい) + +<lisp> +(setq signature-file-alist + '((("Newsgroups" . "jokes") . "~/.signature-jokes") + (("Newsgroups" . ("zxr" "nzr")) . "~/.signature-sun") + (("To" . ("ishimaru" "z-suzuki")) . "~/.signature-sun") + (("To" . "tea") . "~/.signature-jokes") + (("To" . ("sim" "oku" "takuo")) . "~/.signature-formal") + )) +</lisp> + + +<defvar name="mime-setup-use-signature"> +<p> +この変数が <code>nil</code> 以外の時、<file>signature.el</file> を使い +ます。既定値は <code>t</code> です。 +</defvar> + + +<defvar name="mime-setup-signature-key-alist"> +<p> +各 major-mode において signature 挿入命令を設定すべき key を指定します。 +既定値は + +<lisp> + ((mail-mode . "\C-c\C-w")) +</lisp> + +です。 + +<p> +これを変更したい場合は、関数 set-alist などを使ってこの変数を書き換え +て下さい。 + +<lisp> +(set-alist 'mime-setup-signature-key-alist + 'news-reply-mode "\C-c\C-w") +</lisp> + +</defvar> + +<defvar name="mime-setup-default-signature-key"> +<p> +ある major-mode において signature 挿入命令を設定すべき key が見つから +ない場合、この変数に設定された key が用いられます。既定値は、 +<code>"\C-c\C-s"</code> です。 +</defvar> + + +<h3> GNUS の場合の注意 +<node> Notice about GNUS +<p> +<file>signature.el</file> を使う場合、<file>mime-setup.el</file> は変 +数 <code>gnus-signature-file</code> を <code>nil</code> に設定します。 +よって、送信時に自動的に <code>signature</code> が付く機能は抑制されま +す。このようなことをしているのは以下の理由からです。 + +<p> +GNUS が signature を付けるのは <code>tm-edit.el</code> によって MIME +message が作成された後です。よって、GNUS が付けた signature は MIME +message として正しく処理されていません。例えば multipart message の場 +合、MIME message の外の非 MIME part に付きます。よって、MIME 対応 MUA +で見た場合、signature は表示されないかも知れません。 + +<p> +もう一つの注意は標準設定では signature を挿入する key は <kbd>C-c +C-w</kbd> ではなく <a file="mh-e">mh-e</a> と同じ <kbd>C-c C-s</kbd> +に割り当てられていることです。これは + +<lisp> +(set-alist 'mime-setup-signature-key-alist 'news-reply-mode "\C-c\C-w") +</lisp> + +<noindent> +によって GNUS の標準に戻すことができます。 + + +<h2> tm-edit を使わない設定 +<node> tm-setup + +<p> +<concept name="tm-setup"> は <a node="tm-MUA">tm-MUA</a> の設定のみを +行なう module です。この設定 file では <a +file="tm-edit-ja">tm-edit</a> を使った MIME message の作成に関する設定 +は行われず、MIME message の閲覧に関する設定のみが行われます。MIME +message を読みたいが自分では作成しないとか、tm-edit 以外の MIME +composer を使いたい場合には mime-setup.el の代わりにこの設定 file を使っ +てください。 + +<p> +例えば、<file>~/.emacs</file> 等に + +<lisp> +(load "tm-setup") +</lisp> + +<noindent> +を入れれば OK です。 + +<p> + +<memo> +<p> +<file>mime-setup.el</file> を load している場合、これを陽に load する +必要はありません。 +</memo> + + +<h2> VM を使う場合の設定 +<node> setting for VM + +<p> +<concept name="vm"> を使う場合は <file>~/.vm</file> に + +<lisp> +(require 'tm-vm) +</lisp> + +<noindent> +を入れて下さい。 + + +<memo title="注意"> +<p> +<concept name="BBDB"> を使う場合は <code>(bbdb-insinuate-vm)</code> の +<bf>後</bf> に <code>(require 'tm-vm)</code> を入れてください。 +</memo> + + +<h2> 設定 file を使わない場合 +<node> manual setting + +<p> +<file>mime-setup.el</file> や <file>tm-setup.el</file> を参考にして下 +さい。 + + +<memo> +<p> +現在の tm では tm-edit の使用を仮定した幾つかの便利な機能が存在し、こ +れらの機能は <file>mime-setup.el</file> を使わないと利用できません。も +し、tm-edit を使う独自の設定を行う場合は、 + +<lisp> +(provide 'mime-setup) +</lisp> + +<noindent> +という宣言を行ってください。 +</memo> + + +<h1> bug 報告の仕方 +<node> Bug report +<p> +tm のバグを見つけたら、以下の address に mail を送ってください: + +<ul> +<li> 日本語 <mail>bug-tm-ja@chamonix.jaist.ac.jp</mail> +<li> 英語 <mail>bug-tm-en@chamonix.jaist.ac.jp</mail> +</ul> + +<p> +但し、あまりにも古い版に関する報告は歓迎されません。古い版の bug は、 +新しい版では治っているかもしれません。まず、最新版で確認してみましょう。 +<p> +それから、適切な報告をしましょう。単に「うまく動かない」と言われてもど +ういう状況なのかはさっぱり判りません。最低限、OS, emacs, tm, 使ってい +る MUA の種類および版、設定を書く必要があります。また、error が起って +いる場合は backtrace を送ることも重要です。<cf file="emacs" +node="Bugs"> +<p> +また、bug は大抵複数の人が遭遇するものです(そうでなければ、bug ではな +い可能性があります)。だから、作者に直接 mail を送ると作者は同じ mail +を何通も書く羽目になります。だから、必ず bug 報告は上記の address に送っ +てください。 + +<p> +tm ML では tm のバグ情報の交換や最新版の配布、tm の改良に関する議論を +行なっています。tm ML に参加したい方は + +<ul> +<li> 日本語 <mail>tm-ja-admin@chamonix.jaist.ac.jp</mail> +<li> 英語 <mail>tm-en-admin@chamonix.jaist.ac.jp</mail> +</ul> + +<noindent> +まで mail を送って下さい。登録は手動ですので、できれば、自然言語で書い +て下さい。(^_^) + + +<h1> 概念索引 +<node> Concept Index + +<cindex> + + +<h1> 変数索引 +<node> Variable Index + +<vindex> + +</body> diff --git a/doc/tm-ja.texi b/doc/tm-ja.texi new file mode 100644 index 0000000..349b5e9 --- /dev/null +++ b/doc/tm-ja.texi @@ -0,0 +1,1987 @@ +\input texinfo.tex +@setfilename tm-ja.info +@settitle{tm 7.90 Manual(日本語版)} +@titlepage +@title tm 7.90 Manual(日本語版) +@author 守岡 知彦 <morioka@@jaist.ac.jp> +@subtitle 1996/10/15 +@end titlepage +@node Top, Introduction, (dir), (dir) +@top tm 7.90 Manual(日本語版) + +@ifinfo + +This file documents tm, a MIME package for GNU Emacs.@refill + +GNU Emacs で MIME を楽しむための package である `tm' について説明します。 +@end ifinfo + +@menu +* Introduction:: tm って何? +* Setting:: 設定 +* Bug report:: bug 報告の仕方 +* Concept Index:: 概念索引 +* Variable Index:: 変数索引 +@end menu + +@node Introduction, Setting, Top, Top +@chapter tm って何? + +tm は GNU Emacs で MIME を楽しむための package です。tm を使うと、 + +@itemize @bullet +@item + tm-view による MIME message の閲覧・再生 +@item + tm-edit による MIME message の作成 +@item + mh-e, GNUS, Gnus, RMAIL, VM での MIME 機能の強化 +@end itemize + +@noindent +というようなことが行なえます。 + +個別の項目については以下を御参照下さい: + +@itemize @bullet +@item +tm-MUA for Gnus (@ref{(gnus-mime-ja)}) +@item +tm-MUA for GNUS (@ref{(tm-gnus-ja)}) +@item +tm-MUA for mh-e (@ref{(tm-mh-e-ja)}) +@item +mime/viewer-mode (@ref{(tm-view-ja)}) +@item +mime/editor-mode (@ref{(tm-edit-ja)}) +@end itemize + + + +@menu +* What is MIME?:: ところで、MIME っていったい何? +* How is MIME?:: MIME でどんなこと出来るの? +* Glossary:: 用語 +@end menu + +@node What is MIME?, How is MIME?, Introduction, Introduction +@section ところで、MIME っていったい何? + +@strong{MIME}@cindex{MIME} とは @strong{Multipurpose Internet Mail +Extensions}@cindex{Multipurpose Internet Mail Extensions} の略で、従来の、 +基本的に us-ascii(@ref{us-ascii}) の plain text(@ref{plain text}) であっ +た Internet Mail/News に対する拡張になっています。@refill + +MIME には、RFC 1521 (@ref{RFC 1521}) で規定されている多目的message の側 +面と、RFC 1522 (@ref{encoded-word}) で規定されているmessage header にお +ける非 ASCII 文字の表現法のような、多言語化の側面があります。 + + +@node How is MIME?, Glossary, What is MIME?, Introduction +@section MIME でどんなこと出来るの? + +まず、多目的 message の側面を考えると、従来の Internet Mail/News が基本 +的に us-ascii(@ref{us-ascii}) の plain text(@ref{plain text}) しか表現で +きなかったのに対して、絵や音声や動画などの様々な data を表現することがで +きます。@refill + +また、面白いことに、ftp (@ref{FTP}) や ftp mail をしたり、file を取り出 +したり、patch を当てたり、といった、『手続き』を送ることができます。 + +# もっとも、こういうのは、ある意味では危険だったりするのですが。@refill + +こうした message は、内容の種類を +@strong{Content-Type}@cindex{Content-Type} (@ref{Content-Type field}) と +いう field に書いた message の型で指定します。すると、受け手は各 +content-type(@ref{content-type}) に対応した処理の種類を設定しておいて、 +message を『読む』だけで、絵や動画を見たり、音を鳴らしたり、ftp で file +を取ったり、fileを取り出したりできます。@refill + +また、ある message に複数の content-type が存在する +@strong{Multipart}@cindex{Multipart} (@ref{multipart}) の message という +のも可能で、一つの message の中に、絵と音と文章を入れたりといったような +ことができます。@refill + +MIME にはこのような『宣言』の思想があるように思われます。つまり、 +us-ascii(@ref{us-ascii}) を「アルファベット」とする MIME という message +記述言語で、いろいろなものを記述していこうということです。これは RFC +1522 (@ref{encoded-word}) で規定された encoded-word でもいえると思います。 + +そして、受け手は、理解できないものは無視するが、その結果、data を壊すこ +とはしないというものがあります。@refill + +例えば、ASCII (@ref{ASCII}) しか表示できない環境で JIS X0208 (@ref{JIS +X0208}) と ISO 8859-1 (@ref{ISO 8859-1}) が混じったテキストをもらったら +困る訳ですが、そういう時だけ多言語端末を開くというような技が使えます。 + +もちろん、MULE (@ref{MULE}) のような多言語環境においても MUA (@ref{MUA}) +に対して明示的に MIME charset (@ref{MIME charset}) を示すことは有益でしょ +う。 + + +@node Glossary, , How is MIME?, Introduction +@section 用語 + +tm で使われている用語について解説します。 + +@menu +* 7bit:: +* 8bit:: +* 94 character set:: 94 文字集合 +* 96 character set:: 96 文字集合 +* 94x94 character set:: 94×94 文字集合 +* ASCII:: +* Base64:: +* binary:: +* Character Set:: Character Set(文字集合) +* cn-gb:: cn-gb, gb2312 +* cn-big5:: cn-big5, big5 +* CNS:: CNS 11643-1992 +* Coded character set:: Coded character set(符号化文字集合), Character code(文字符号) +* Code extension:: Code extension(符号拡張) +* Content-Disposition:: Content-Disposition field +* content-type:: +* Content-Type field:: +* Emacs:: +* encoded-word:: +* encapsulation:: +* euc-kr:: +* FTP:: FTP +* GB 2312:: GB 2312-1980 +* GB 8565.2:: GB 8565.2-1988 +* hz-gb2312:: +* ISO 2022:: +* iso-2022-cn:: +* iso-2022-cn-ext:: +* iso-2022-jp:: +* iso-2022-jp-2:: +* iso-2022-kr:: +* ISO 646:: +* ISO 8859-1:: +* iso-8859-1:: +* ISO 8859-2:: +* iso-8859-2:: +* ISO 8859-3:: +* ISO 8859-4:: +* ISO 8859-5:: +* iso-8859-5:: +* ISO 8859-6:: +* ISO 8859-7:: +* iso-8859-7:: +* ISO 8859-8:: +* ISO 8859-9:: +* ISO-IR-165:: ISO-IR-165, CCITT Extended GB +* JIS X0201:: +* JIS C6226:: JIS C6226-1978 +* JIS X0208:: +* JIS X0212:: JIS X0212-1990 +* koi8-r:: +* KS C5601:: KS C5601-1987 +* message:: +* message/rfc822:: +* method:: +* MIME:: +* MIME charset:: +* MTA:: +* MUA:: +* MULE:: +* multipart:: Multipart +* multipart/alternative:: +* multipart/digest:: +* multipart/encrypted:: +* multipart/mixed:: +* multipart/parallel:: +* multipart/signed:: +* PGP:: +* PGP-kazu:: +* PGP/MIME:: +* Quoted-Printable:: +* RFC 821:: +* RFC 822:: +* RFC 934:: +* RFC 1036:: +* RFC 1153:: +* RFC 1521:: RFC 1521 +* RFC 1557:: +* RFC 1922:: +* plain text:: +* Security multipart:: +* text/enriched:: +* text/plain:: +* tm-kernel:: tm-kernel, tm +* tm-MUA:: +* us-ascii:: +@end menu + +@node 7bit, 8bit, Glossary, Glossary +@subsection 7bit + +ここでは 0 から 127 の整数を指します。@refill + +0 から 127 の整数の列で表現できるような data を ``7bit の data'' と呼び +ます。@refill + +また、0 から 31 および 127 で表現される制御文字と 32 で表現される空白と +33 から 126 で表現される図形文字からなる文字列のことを ``7bit の文字列'' +と呼びます(これは ISO 2022 (@ref{ISO 2022}) の「7 単位系」と同様です)。 + +伝統的な Internet の MTA (@ref{MTA}) は 7bit の data を転送できるので、 +7bit の data は Quoted-Printable (@ref{Quoted-Printable}) や Base64 +(@ref{Base64}) といった変換を行わなくてもそのまま転送できます。@refill + +しかし、7bit であればどんな data でも良いとはいえません。なぜなら、1行 +の長さがあまりに長いと、MTA はその message を転送することができないから +です。ちなみに、RFC 821 (@ref{RFC 821}) は1行は改行文字を除いて 998 +byte 以内であることを求めています。よって、これ以上の行が含まれる可能性 +のある data, 例えば、Postscript の data などは Quoted-Printable 等で +encodeする必用があります。 + + +@node 8bit, 94 character set, 7bit, Glossary +@subsection 8bit + +ここでは 0 から 255 の整数を指します。@refill + +0 から 255 の整数の列で表現できるような data を ``8bit の data'' と呼び +ます。@refill + +また、0 から 31, 127 および 128 から 159 で表現される制御文字と 32 で表 +現される空白と 33 から 126 と 160 から 255 で表現される図形文字からなる +文字列のことを ``8bit の文字列'' と呼びます(これは ISO 2022 (@ref{ISO +2022}) の「8 単位系」と同様です)。@refill + +iso-8859-1 (@ref{iso-8859-1}) や euc-kr (@ref{euc-kr}) といった符号化文 +字集合は 8bit の文字列です。@refill + +伝統的な Internet の MTA (@ref{MTA}) は 7bit (@ref{7bit}) の data しか転 +送できないので、そうした MTA を経由する場合、Quoted-Printable +(@ref{Quoted-Printable}) や Base64 (@ref{Base64}) といった変換を行わなく +てはなりません。@refill + +しかし、最近では 8bit の文字列をそのまま通すことができる MTA も登場して +きたので、そのまま送ることができる場合も増えてきました。@refill + +しかし、8bit であればどんな data でも良いとはいえません。なぜなら、1行 +の長さがあまりに長いと、MTA はその message を転送することができないから +です。ちなみに、RFC 821 は1行は改行文字を除いて 998 byte 以内であること +を求めています。よって、これ以上の行が含まれる可能性のある data, 例えば、 +Postscript の data などは Quoted-Printable 等で encodeする必用があります。 +@refill + +また、こうした理由から、1行が 999 byte 以上の行が存在する可能性のある +data は @strong{binary}@cindex{binary} (@ref{binary}) と呼ぶことにします。 + +ちなみに、7bit で表現できる data は 8bit でも表現できます。よって、 +``8bit'' と言った場合、1行が 998 byte 以下の任意の data を指すことが +あります。 + + +@node 94 character set, 96 character set, 8bit, Glossary +@subsection 94 文字集合 + +33 から 126 の範囲の 1 byte からなる 文字集合(@ref{Character set})。 +ASCII (@ref{ASCII}) や JIS X0201-Latin はその一種。 + + +@node 96 character set, 94x94 character set, 94 character set, Glossary +@subsection 96 文字集合 + +32 から 127 の範囲の 1 byte からなる 文字集合(@ref{Character set})。ISO +8859 シリーズはその一種。 + + +@node 94x94 character set, ASCII, 96 character set, Glossary +@subsection 94×94 文字集合 + +33 から 126 の範囲の 2 byte からなる 文字集合(@ref{Character set})。JIS +X0208 (@ref{JIS X0208}) や GB 2312 (@ref{GB 2312}) はその一種。 + + +@node ASCII, Base64, 94x94 character set, Glossary +@subsection ASCII + +アメリカ連邦で使われる文字を符号化した 94 文字集合(@ref{94 character +set})。A-Z, a-z の Latin 文字と数字、幾つかの記号からなる。ISO 646 +(@ref{ISO 646}) の一つ。 + +@cindex{ASCII}@cindex{ANSI X3.4:1986} +@noindent +[ASCII] +@quotation +``Coded Character Set -- 7-Bit American Standard Code for Information +Interchange'', ANSI X3.4:1986. +@end quotation + + + +@node Base64, binary, ASCII, Glossary +@subsection Base64 + +RFC 1521 (@ref{RFC 1521}) で定義されている MIME (@ref{MIME}) における +binary data (@ref{binary}) の network での変換法の1つ。@refill + +『64 進数』という意味で、3 byte の data を 0 から 63 の数を表す +ASCII(@ref{ASCII}) 4 文字に変換する方法。(もし、4 文字にならなければ +@strong{pad}@cindex{pad} と呼ばれる詰め物をして長さを調整する)@refill + +この 65 種類の文字は ASCII と EBCDIC の共通部分から選ばれており、 +Internet 以外の network を経由する場合でも安全に転送できるように設計さ +れている。 + + +@node binary, Character Set, Base64, Glossary +@subsection binary + +任意の byte 列を @strong{binary}@cindex{binary} と呼ぶことにします。 +@refill + +8bit (@ref{8bit}) と異なるのは data に行の構造を仮定しないことです。 + +また、行の構造があっても、999 byte 以上からなる行がある場合も binaryと呼 +ぶことにします。@refill + +ちなみに、7bit (@ref{7bit}) や 8bit で表現できる data は binary でも表現 +できます。よって、@strong{binary data}@cindex{binary data} と言った場合、 +任意の data を指すことがあります。 + + +@node Character Set, cn-gb, binary, Glossary +@subsection Character Set(文字集合) + +符号化文字集合(@ref{Coded character set})。但し、ここでは 符号拡張 +(@ref{Code extension}) されてない文字集合というニュアンスを込 +めている。 + + +@node cn-gb, cn-big5, Character Set, Glossary +@subsection cn-gb, gb2312 + +中国大陸でられている簡体字で表記される中国語を表現するための MIME +charset (@ref{MIME charset}) の1つ。@refill + +ISO 2022 (@ref{ISO 2022}) に基いて ASCII (@ref{ASCII}) に GB 2312 +(@ref{GB 2312}) を 8bit (@ref{8bit}) で符号拡張 (@ref{Code extension})し +ている。@refill + +RFC 1922 (@ref{RFC 1922}) で定義されている。 + + +@node cn-big5, CNS, cn-gb, Glossary +@subsection cn-big5, big5 + +台湾や香港で用いられている主に繁体字で表記される中国語を表現するための +MIME charset (@ref{MIME charset}) の1つ。@refill + +ISO 2022 (@ref{ISO 2022}) に基かない 8bit (@ref{8bit}) の符号化文字集合 +(@ref{Coded character set})で de-fact standard である。RFC 1922 +(@ref{RFC 1922}) で定義されている。@refill + +cf. @cindex{BIG5} +@noindent +[BIG5] +@quotation +Institute for Information Industry, ``Chinese Coded Character Set in +Computer'', March 1984. +@end quotation + +CNS 11643-1986 (@ref{CNS}) と対応関係がある。 + + +@node CNS, Coded character set, cn-big5, Glossary +@subsection CNS 11643-1992 + +台湾や香港で用いられている主に繁体字で表記される中国語を表現するための +文字集合(@ref{Character set})。台湾の標準。現在、94×94 (@ref{94x94 +character set}) の面が第1面から第7面まである。@refill + +ISO 2022 (@ref{ISO 2022}) での終端文字は、第1面が `G', 第2面が `H', 第 +3面が `I', 第4面が `J', 第5面が `K', 第6面が `L', 第7面が `M' であ +る。 + +@cindex{CNS 11643-1992}@cindex{CNS 11643:1992} +@noindent +[CNS 11643-1992] +@quotation +``Standard Interchange Code for Generally-Used Chinese Characters'', CNS +11643:1992. +@end quotation + + + +@node Coded character set, Code extension, CNS, Glossary +@subsection Coded character set(符号化文字集合), Character code(文字符号) + +文字と byte 列と1対1に対応付ける曖昧でない規則の集合。 + + +@node Code extension, Content-Disposition, Coded character set, Glossary +@subsection Code extension(符号拡張) + +与えられた文字集合(@ref{Character set})に含まれていない文字の符号化のた +めに用いる手法。ISO 2022 (@ref{ISO 2022}) はその1つ。 + + +@node Content-Disposition, content-type, Code extension, Glossary +@subsection Content-Disposition field + +Content の表示の仕方や file 名を表現するための field. MIME (@ref{MIME}) +の拡張の1つ。@refill + +@cindex{Experimental}@cindex{RFC 1806} +@noindent +[RFC 1806] +@quotation +E R. Troost and S. Dorner, ``Communicating Presentation Information in +Internet Messages: The Content-Disposition Header'', June 1995, +Experimental. +@end quotation + + + +@node content-type, Content-Type field, Content-Disposition, Glossary +@subsection content-type + +MIME(@ref{MIME}) における part(@ref{part}) の種類。 +@strong{type}@cindex{type} と @strong{subtype}@cindex{subtype} からなる。 +RFC 1521(@ref{RFC 1521}) で定義されている。@refill + +type は標準では @strong{application}@cindex{application}, +@strong{audio}@cindex{audio}, @strong{image}@cindex{image}, +@strong{message}@cindex{message}, @strong{multipart}@cindex{multipart} +(@ref{multipart}), @strong{text}@cindex{text}, +@strong{video}@cindex{video} が定義され、それぞれには +application/octet-stream, audio/basic, image/jpeg, +multipart/mixed(@ref{multipart/mixed}), text/plain(@ref{text/plain}), +video/mpeg などのさまざまな subtype が定義されている。 + +@noindent +@strong{[注意]} +@quotation + +ここでは、text/plain などの type/subtype の組をしばしば +@strong{content-type/subtype}@cindex{content-type/subtype} と書く。 +@end quotation + + +content-type は、RFC 1521 で定義されているものに加えて、登録することもで +きる。現在、登録されているものは MEDIA TYPES +(ftp://ftp.isi.edu/in-notes/iana/assignments/media-types) で参照できる。 + +また、type もしくは subtype に、前に `x-' を付けた +@strong{x-token}@cindex{x-token} を用いることにより、登録されていないも +のを私的に用いることもできる。しかし、当然のことながら、こうした私的な +content-type は諒解を得た者の間でしか解釈できないので利用には注意するこ +と。@refill + +(cf. @ref{Content-Type field}) + + + +@node Content-Type field, Emacs, content-type, Glossary +@subsection Content-Type field + +content-type(@ref{content-type}) や MIME charset(@ref{MIME charset}) などの part +に関する情報を表現するための field. RFC 1521(@ref{RFC 1521}) で定義され +ている。 + +@noindent +@strong{[Memo]} +@quotation + +歴史的には RFC 1049 で Content-Type field が提案されている。但し、ここで +は type と subtype の区別はない。しかし、文法的には RFC 1521 parserは +RFC 1049 に基づく message を未知の content-type を持った message として +parse できるだろう。 +@end quotation + + +Content-Type field は + +@quotation +``Content-Type'' ``:'' @strong{type}@cindex{type} ``/'' @strong{subtype}@cindex{subtype} *( ``;'' @strong{parameter}@cindex{parameter} ) +@end quotation + +@noindent +と定義される。 + +例えば、 + +@quotation +@example +Content-Type: image/jpeg +@end example +@end quotation + +@noindent +や + +@quotation +@example +Content-Type: text/plain; charset=iso-2022-jp +@end example +@end quotation + +@noindent +などのように書かれる。 + +@noindent +@strong{[Memo]} +@quotation + +content-type のない part は + +@quotation +@example +Content-Type: text/plain; charset=us-ascii +@end example +@end quotation + +@noindent +として解釈される。(cf. @ref{us-ascii}) +@end quotation + + + +@node Emacs, encoded-word, Content-Type field, Glossary +@subsection Emacs + +ここでは `Emacs' で FSF が配布している GNU Emacs を指し、`emacs' で +GNU Emacs の変種の総称とする。 + + +@node encoded-word, encapsulation, Emacs, Glossary +@subsection encoded-word + +header における非 ASCII (@ref{ASCII}) 文字の表現。@strong{RFC +1522}@cindex{RFC 1522} で定義されている。@refill + +@cindex{Standards Track}@cindex{RFC 1522} +@noindent +[RFC 1522] +@quotation +K. Moore, ``MIME (Multipurpose Internet Mail Extensions) Part Two: +Message Header Extensions for Non-ASCII Text'', September 1993, +Standards Track. +@end quotation + + + +@node encapsulation, euc-kr, encoded-word, Glossary +@subsection encapsulation + +Internet mail (@ref{RFC 822}) を他の記事にまるごと入れる方法。@refill + +例えば、記事を転送したりするのに用いる。@refill + +(cf. @ref{message/rfc822}) + + + +@node euc-kr, FTP, encapsulation, Glossary +@subsection euc-kr + +韓国語を表現するための MIME charset (@ref{MIME charset}) の1つ。 + +ISO 2022 (@ref{ISO 2022}) に基いて ASCII (@ref{ASCII}) にKS C5601 +(@ref{KS C5601}) を 8bit (@ref{8bit}) で符号拡張 (@ref{Code extension}) +している。@refill + +RFC 1557 (@ref{RFC 1557}) で定義されている。@refill + +cf. @cindex{euc-kr}@cindex{KS C 5861:1992} +@noindent +[euc-kr] +@quotation +Korea Industrial Standards Association, ``Hangul Unix Environment'', KS +C 5861:1992. +@end quotation + + + +@node FTP, GB 2312, euc-kr, Glossary +@subsection FTP + +Internet で file を転送するための protocol の1つ。RFC 959 で定義されて +いる。@refill + +@cindex{FTP}@cindex{STD 9}@cindex{RFC 959} +@noindent +[FTP: RFC 959] +@quotation +Postel, J. and J. Reynolds, ``File Transfer Protocol'', October 1985, +STD 9. +@end quotation + + + +@node GB 2312, GB 8565.2, FTP, Glossary +@subsection GB 2312-1980 + +中国大陸で用いられている簡体字で表記される中国語を表すための 94×94 文字 +集合(@ref{94x94 character set})。中国の国家標準。ISO 2022 (@ref{ISO +2022}) での終端文字は `A'.@refill + +これは GB における基本集である。 + +@cindex{GB 2312}@cindex{GB 2312:1980} +@noindent +[GB 2312] +@quotation +『信息交換用漢字編碼字符集 -- 基本集』, ``Code of Chinese Graphic +Character Set for Information Interchange - Primary Set'', GB 2312:1980. +@end quotation + + + +@node GB 8565.2, hz-gb2312, GB 2312, Glossary +@subsection GB 8565.2-1988 + +中国語のための補助文字集合(@ref{Character set})。中国の国家標準。GB 2312 +(@ref{GB 2312}) の空き部分に補充するように定義されたらしい。 + +@cindex{GB 8565.2}@cindex{GB 8565.2:1988} +@noindent +[GB 8565.2] +@quotation +``Information Processing - Coded Character Sets for Text Communication - +Part 2: Graphic Characters used with Primary Set'', GB 8565.2:1988. +@end quotation + + + +@node hz-gb2312, ISO 2022, GB 8565.2, Glossary +@subsection hz-gb2312 + +中国大陸で用いられている簡体字で表記される中国語を表現するための MIME +charset (@ref{MIME charset}) の1つ。@refill + +ASCII (@ref{ASCII}) に GB 2312 (@ref{GB 2312}) を 7bit で符号拡張 +(@ref{Code extension})したものを ASCII printable になるように工夫してい +る。@refill + +RFC 1842, 1843 で定義されている。 + +@cindex{Informational}@cindex{RFC 1842} +@noindent +[RFC 1842] +@quotation +Y. Wei, Y. Zhang, J. Li, J. Ding and Y. Jiang, ``ASCII Printable +Characters-Based Chinese Character Encoding for Internet Messages'', +August 1995, Informational. +@end quotation + +@cindex{Informational}@cindex{RFC 1843} +@noindent +[RFC 1843] +@quotation +F. Lee, ``HZ - A Data Format for Exchanging Files of Arbitrarily Mixed +Chinese and ASCII characters'', August 1995, Informational. +@end quotation + + + +@node ISO 2022, iso-2022-cn, hz-gb2312, Glossary +@subsection ISO 2022 + +符号拡張(@ref{Code extension})のための国際標準。@refill + +これを用いて複数の文字集合(@ref{Character set})を組合せて 7bit +(@ref{7bit}) ないし 8bit (@ref{8bit}) の 符号化文字集合(@ref{Coded +character set}) を作ることができる。 + +@cindex{ISO 2022}@cindex{ISO/IEC 2022:1994} +@noindent +[ISO 2022] +@quotation +International Organization for Standardization (ISO), ``Information +Processing: ISO 7-bit and 8-bit coded character sets: Code extension +techniques'', ISO/IEC 2022:1994. +@end quotation + + + +@node iso-2022-cn, iso-2022-cn-ext, ISO 2022, Glossary +@subsection iso-2022-cn + +中国語を表現するための MIME charset (@ref{MIME charset}) の1つ。 + +ISO 2022 (@ref{ISO 2022}) に基いて ASCII (@ref{ASCII}) に GB 2312 +(@ref{GB 2312}), CNS 11643 plain 1, plain 2 (@ref{CNS}) を 7bit +(@ref{7bit}) で符号拡張 (@ref{Code extension})している。@refill + +RFC 1922 (@ref{RFC 1922}) で定義されている。 + + +@node iso-2022-cn-ext, iso-2022-jp, iso-2022-cn, Glossary +@subsection iso-2022-cn-ext + +中国語を表現するための MIME charset (@ref{MIME charset}) の1つ。 + +ISO 2022 (@ref{ISO 2022}) に基いて ASCII (@ref{ASCII}) に GB 2312 +(@ref{GB 2312}), CNS 11643 plain 1 .. 7 (@ref{CNS}), ISO-IR-165 +(@ref{ISO-IR-165}) 等を 7bit (@ref{7bit}) で符号拡張 (@ref{Code +extension})している。@refill + +RFC 1922 (@ref{RFC 1922}) で定義されている。@refill + +@noindent +@strong{[Memo]} +@quotation +MULE 2.3 および、現在の XEmacs/mule では正しく扱うことはできない。 + +Emacs/mule では利用可能である。 +@end quotation + + + +@node iso-2022-jp, iso-2022-jp-2, iso-2022-cn-ext, Glossary +@subsection iso-2022-jp + +日本語を表現するための MIME charset (@ref{MIME charset}) の一つ。 + +古い ISO 2022 (@ref{ISO 2022}) に基いて ASCII (@ref{ASCII}), JIS +X0201-Latin, JIS X0208-1978 (@ref{JIS C6226-1978}), JIS X0208-1983 +(@ref{JIS X0208}) を切り替える 7bit (@ref{7bit}) 文字符号。@refill + +RFC 1468 で定義されている。@refill + +@noindent +@strong{[Memo]} +@quotation +JIS X0208-1996? では ISO 2022 (@ref{ISO 2022}) と独立に定義される予定。 +@end quotation + + +@cindex{iso-2022-jp}@cindex{RFC 1468} +@noindent +[iso-2022-jp: RFC 1468] +@quotation +Murai J., M. Crispin, and E. van der Poel, ``Japanese Character Encoding +for Internet Messages'', June 1993. +@end quotation + + + +@node iso-2022-jp-2, iso-2022-kr, iso-2022-jp, Glossary +@subsection iso-2022-jp-2 + +iso-2022-jp (@ref{iso-2022-jp}) を拡張した MIME charset (@ref{MIME +charset}) の一つ。@refill + +RFC 1554 で定義されている。 + +@cindex{iso-2022-jp-2}@cindex{Informational}@cindex{RFC 1554} +@noindent +[iso-2022-jp-2: RFC 1554] +@quotation +Ohta M. and Handa K., ``ISO-2022-JP-2: Multilingual Extension of +ISO-2022-JP'', December 1993, Informational. +@end quotation + + + +@node iso-2022-kr, ISO 646, iso-2022-jp-2, Glossary +@subsection iso-2022-kr + +韓国語を表現するための MIME charset (@ref{MIME charset}) の1つ。 + +ISO 2022 (@ref{ISO 2022}) に基いて ASCII (@ref{ASCII}) に KS C5601 +(@ref{KS C5601}) を 7bit (@ref{7bit}) で符号拡張 (@ref{Code extension}) +している。@refill + +RFC 1557 (@ref{RFC 1557}) で定義されている。 + + +@node ISO 646, ISO 8859-1, iso-2022-kr, Glossary +@subsection ISO 646 + +各国で共通に使える最小限度の文字集合(@ref{Character set})を定めたもの。 +94 文字集合 (@ref{94 character set})の1つ。ISO 646 IRV(国際基準版)を +元に幾つかの文字は各国で違う文字を割当ることを許していて、幾つかの変種が +存在する。ASCII (@ref{ASCII}) や JIS X0201-Latin はその一種。 + +@cindex{ISO 646}@cindex{ISO/IEC 646:1991} +@noindent +[ISO 646] +@quotation +International Organization for Standardization (ISO), ``Information +technology: ISO 7-bit coded character set for information interchange'', +ISO/IEC 646:1991. +@end quotation + + + +@node ISO 8859-1, iso-8859-1, ISO 646, Glossary +@subsection ISO 8859-1 + +西欧諸語で用いられる拡張 Latin 文字や記号からなる 96 文字集合(@ref{96 +character set})。 + +@cindex{ISO 8859-1}@cindex{ISO 8859-1:1987} +@noindent +[ISO 8859-1] +@quotation +International Organization for Standardization (ISO), ``Information +Processing -- 8-bit Single-Byte Coded Graphic Character Sets -- Part 1: +Latin Alphabet No.1'', ISO 8859-1:1987. +@end quotation + + + +@node iso-8859-1, ISO 8859-2, ISO 8859-1, Glossary +@subsection iso-8859-1 + +西欧諸語などを表現するための MIME charset (@ref{MIME charset}) の1つ。 + +ISO 2022 (@ref{ISO 2022}) に基いて、ASCII (@ref{ASCII}) に ISO 8859-1 +(@ref{ISO 8859-1}) を 8bit (@ref{8bit}) で符号拡張 (@ref{Code +extension})している。@refill + +RFC 1521 (@ref{RFC 1521}) で定義されている。 + + +@node ISO 8859-2, iso-8859-2, iso-8859-1, Glossary +@subsection ISO 8859-2 + +東欧諸語で用いられる拡張 Latin 文字や記号からなる 96 文字集合(@ref{96 +character set})。 + +@cindex{ISO 8859-2}@cindex{ISO 8859-2:1987} +@noindent +[ISO 8859-2] +@quotation +International Organization for Standardization (ISO), ``Information +Processing -- 8-bit Single-Byte Coded Graphic Character Sets -- Part 2: +Latin alphabet No.2'', ISO 8859-2:1987. +@end quotation + + + +@node iso-8859-2, ISO 8859-3, ISO 8859-2, Glossary +@subsection iso-8859-2 + +東欧諸語を表現するための MIME charset (@ref{MIME charset}) の1つ。 + +ISO 2022 (@ref{ISO 2022}) に基いて、ASCII (@ref{ASCII}) に ISO 8859-2 +(@ref{ISO 8859-2}) を 8bit (@ref{8bit}) で符号拡張 (@ref{Code +extension})している。@refill + +RFC 1521 (@ref{RFC 1521}) で定義されている。 + + +@node ISO 8859-3, ISO 8859-4, iso-8859-2, Glossary +@subsection ISO 8859-3 + +@cindex{ISO 8859-3}@cindex{ISO 8859-3:1988} +@noindent +[ISO 8859-3] +@quotation +International Organization for Standardization (ISO), ``Information +Processing -- 8-bit Single-Byte Coded Graphic Character Sets -- Part 3: +Latin alphabet No.3'', ISO 8859-3:1988. +@end quotation + + + +@node ISO 8859-4, ISO 8859-5, ISO 8859-3, Glossary +@subsection ISO 8859-4 + +@cindex{ISO 8859-4}@cindex{ISO 8859-4:1988} +@noindent +[ISO 8859-4] +@quotation +International Organization for Standardization (ISO), ``Information +Processing -- 8-bit Single-Byte Coded Graphic Character Sets -- Part 4: +Latin alphabet No.4'', ISO 8859-4:1988. +@end quotation + + + +@node ISO 8859-5, iso-8859-5, ISO 8859-4, Glossary +@subsection ISO 8859-5 + +キリル文字や記号からなる 96 文字集合(@ref{96 character set})。 + +@cindex{ISO 8859-5}@cindex{ISO 8859-5:1988} +@noindent +[ISO 8859-5] +@quotation +International Organization for Standardization (ISO), ``Information +Processing -- 8-bit Single-Byte Coded Graphic Character Sets -- Part 5: +Latin/Cyrillic alphabet'', ISO 8859-5:1988. +@end quotation + + + +@node iso-8859-5, ISO 8859-6, ISO 8859-5, Glossary +@subsection iso-8859-5 + +キリル文字を表現するための MIME charset (@ref{MIME charset}) の1つ。 + +ISO 2022 (@ref{ISO 2022}) に基いて、ASCII (@ref{ASCII}) に ISO 8859-5 +(@ref{ISO 8859-5}) を 8bit (@ref{8bit}) で符号拡張 (@ref{Code +extension})している。@refill + +RFC 1521 (@ref{RFC 1521}) で定義されている。 + + +@node ISO 8859-6, ISO 8859-7, iso-8859-5, Glossary +@subsection ISO 8859-6 + +@cindex{ISO 8859-6}@cindex{ISO 8859-6:1987} +@noindent +[ISO 8859-6] +@quotation +International Organization for Standardization (ISO), ``Information +Processing -- 8-bit Single-Byte Coded Graphic Character Sets -- Part 6: +Latin/Arabic alphabet'', ISO 8859-6:1987. +@end quotation + + + +@node ISO 8859-7, iso-8859-7, ISO 8859-6, Glossary +@subsection ISO 8859-7 + +ギリシア文字や記号からなる 96 文字集合(@ref{96 character set})。 + +@cindex{ISO 8859-7}@cindex{ISO 8859-7:1987} +@noindent +[ISO 8859-7] +@quotation +International Organization for Standardization (ISO), ``Information +Processing -- 8-bit Single-Byte Coded Graphic Character Sets -- Part 7: +Latin/Greek alphabet'', ISO 8859-7:1987. +@end quotation + + + +@node iso-8859-7, ISO 8859-8, ISO 8859-7, Glossary +@subsection iso-8859-7 + +ギリシア語を表現するための MIME charset (@ref{MIME charset}) の1つ。 + +ISO 2022 (@ref{ISO 2022}) に基いて、ASCII (@ref{ASCII}) に ISO 8859-7 +(@ref{ISO 8859-7}) を 8bit (@ref{8bit}) で符号拡張 (@ref{Code +extension})している。@refill + +RFC 1947 で定義されている。 + +@cindex{iso-8859-7}@cindex{Informational}@cindex{RFC 1947} +@noindent +[iso-8859-7: RFC 1947] +@quotation +D. Spinellis, ``Greek Character Encoding for Electronic Mail Messages'', +May 1996, Informational. +@end quotation + + + +@node ISO 8859-8, ISO 8859-9, iso-8859-7, Glossary +@subsection ISO 8859-8 + +@cindex{ISO 8859-8}@cindex{ISO 8859-8:1988} +@noindent +[ISO 8859-8] +@quotation +International Organization for Standardization (ISO), ``Information +Processing -- 8-bit Single-Byte Coded Graphic Character Sets -- Part 8: +Latin/Hebrew alphabet'', ISO 8859-8:1988. +@end quotation + + + +@node ISO 8859-9, ISO-IR-165, ISO 8859-8, Glossary +@subsection ISO 8859-9 + +@cindex{ISO 8859-9}@cindex{ISO 8859-9:1990} +@noindent +[ISO 8859-9] +@quotation +International Organization for Standardization (ISO), ``Information +Processing -- 8-bit Single-Byte Coded Graphic Character Sets -- Part 9: +Latin alphabet No.5'', ISO 8859-9:1990. +@end quotation + + + +@node ISO-IR-165, JIS X0201, ISO 8859-9, Glossary +@subsection ISO-IR-165, CCITT Extended GB + +CCITT が登録した、中国大陸で用いられている簡体字で表記される中国語を表現 +するための 94×94 文字集合(@ref{94x94 character set})。@refill + +GB 2312 (@ref{GB 2312}) と GB 8565 表2 (@ref{GB 8865.2}) に 150 文字ほ +どを追加したものらしい。@refill + +ISO 2022 (@ref{ISO 2022}) での終端文字は `E' である。 + + +@node JIS X0201, JIS C6226, ISO-IR-165, Glossary +@subsection JIS X0201 + +ISO 646 (@ref{ISO 646}) の変種の1つである Latin 文字集合と 1 byte のカ +タカナ文字集合からなる。@refill + +元は @strong{JIS C6220-1976}@cindex{JIS C6220-1976} と言ったが @strong{JIS X0201}@cindex{JIS X0201} に番号が変更された。 + +@cindex{JIS X0201-1976}@cindex{JIS X 0201-1976:} +@noindent +[JIS X0201-1976] +@quotation +日本規格協会 (Japanese Standards Association),『情報交換用符号』, ``Code +for Information Interchange'', JIS X 0201-1976:. +@end quotation + + +また、1996 年に改定版が出る予定。 + +@cindex{JIS X0201-1996?}@cindex{JIS X 0201:1996? draft} +@noindent +[JIS X0201-1996?] +@quotation +日本規格協会 (Japanese Standards Association),『7ビット及び8ビットの情 +報交換用符号化文字集合』, ``7-bit and 8-bit coded character sets for +information interchange'', JIS X 0201:1996? draft. +@end quotation + + + +@node JIS C6226, JIS X0208, JIS X0201, Glossary +@subsection JIS C6226-1978 + +日本語を表すために作られた 94×94 文字集合(@ref{94x94 character set})。 +日本の国家標準。JIS X0208-1978 ともいう。@refill + +(cf. @ref{JIS X0208}) + + + +@node JIS X0208, JIS X0212, JIS C6226, Glossary +@subsection JIS X0208 + +日本語を表すために作られた 94×94 文字集合(@ref{94x94 character set})。 +日本の国家標準。1978 年版、1983 年版、1990 年版があるが、Internet では +1983 年版がもっとも良く使われている。@refill + +JIS X0208 は記号、数字、ローマ字、ひらがな、カタカナ、ギリシャ文字、キリ +ル文字、罫線素、第1水準、第2水準の漢字が含まれる。但し、1983 年版の一 +部の記号と罫線素は 1978 年版にはない。また、一部の漢字の字形が 1983 年版 +では変更され、また、第1水準と第2水準が入れ替わっていたりする。このため、 +1978 年版と 1983 年版は異なる文字集合として扱われる。@refill + +1990 年の改定では 1983 年版に対する追加が行われた。このため、1990 年版 +を指示する場合は前に更新シーケンスを用いる。 + +@cindex{JIS X0208-1978}@cindex{JIS C6226:1978} +@noindent +[JIS X0208-1978] +@quotation +日本規格協会 (Japanese Standards Association),『情報交換用漢字符号系』, +``Code of the Japanese graphic character set for information +interchange'', JIS C6226:1978. +@end quotation + +@cindex{JIS X0208-1983,1990}@cindex{JIS X0208:1983,1990} +@noindent +[JIS X0208-1983,1990] +@quotation +日本規格協会 (Japanese Standards Association),『情報交換用漢字符号系』, +``Code of the Japanese graphic character set for information +interchange'', JIS X0208:1983,1990. +@end quotation + + +また、1996 年に改定版が出版される予定。(字形の変更は行われないので文 +字集合としては 1990 年版と同一である) + +@cindex{JIS X0208-1996?}@cindex{JIS X 0208:1996? draft} +@noindent +[JIS X0208-1996?] +@quotation +日本規格協会 (Japanese Standards Association),『7ビット及び8ビットの +2バイト情報交換用符号化漢字集合』, ``7-bit and 8-bit double byte coded +Kanji sets for information interchange'', JIS X 0208:1996? draft. +@end quotation + + + +@node JIS X0212, koi8-r, JIS X0208, Glossary +@subsection JIS X0212-1990 + +JIS X0208 (@ref{JIS X0208}) になかった文字を集めた 94×94 文字集合 +(@ref{94x94 character set})。「補助漢字」とも呼ばれる。日本の国家標準。 +ISO 2022 (@ref{ISO 2022}) での終端文字は `D'. + + +@node koi8-r, KS C5601, JIS X0212, Glossary +@subsection koi8-r + +ロシヤ語等で用いられるキリル文字を表現するための MIME charset (@ref{MIME +charset}) の1つ。@refill + +ISO 2022 (@ref{ISO 2022}) に基かない 8bit (@ref{8bit}) の符号化文字集合 +(@ref{Coded character set})で de-fact standard である。 + +RFC 1489 で定義されている。@refill + +@cindex{RFC 1489} +@noindent +[RFC 1489] +@quotation +A. Chernov, ``Registration of a Cyrillic Character Set'', July 1993. +@end quotation + + + +@node KS C5601, message, koi8-r, Glossary +@subsection KS C5601-1987 + +韓国語を表すための 94×94 文字集合(@ref{94x94 character set})。韓国の国 +家標準。ISO 2022 (@ref{ISO 2022}) での終端文字は `C'. + +@cindex{KS C5601}@cindex{KS C 5601:1987} +@noindent +[KS C5601] +@quotation +Korea Industrial Standards Association, ``Code for Information +Interchange (Hangul and Hanja)'', KS C 5601:1987. +@end quotation + + + +@node message, message/rfc822, KS C5601, Glossary +@subsection message + +ここでは RFC 822(@ref{RFC 822}) で定義される mail と RFC 1036(@ref{RFC 1036}) で定義される news 記事の総称として用いる。 + + +@node message/rfc822, method, message, Glossary +@subsection message/rfc822 + +伝統的な RFC 934(@ref{RFC 934}) に代わり、RFC 822(@ref{RFC 822}) で定義 +される mail を表す MIME の形式。RFC 1521(@ref{RFC 1521}) で定義されてい +る。 + + +@node method, MIME, message/rfc822, Glossary +@subsection method + +tm で特定の種類の data を再生したとき実際にその処理を行なう +program. Emacs Lisp で書かれた @strong{internal method}@cindex{internal +method} と C や script 言語などで書かれた @strong{external +method}@cindex{external method} がある。@refill + +(cf. @ref{(tm-view-ja)method}) + + + +@node MIME, MIME charset, method, Glossary +@subsection MIME + +@strong{Multipurpose Internet Mail Extensions}@cindex{Multipurpose +Internet Mail Extensions} の略で、Internet の mail や news で us-ascii +plain text (@ref{us-ascii}) 以外の文字を使うための RFC 822(@ref{RFC +822}) に対する拡張。@refill + +RFC 1521 (@ref{RFC 1521}) と RFC 1522 (@ref{encoded-word}) で定義されて +いる。@refill + +(cf. @ref{What is MIME?}) + + + +@node MIME charset, MTA, MIME, Glossary +@subsection MIME charset + +Content-Type field(@ref{Content-Type field}) や encoded-word +(@ref{encoded-word}) の charset parameter で用いられる登録された符号化文 +字集合 (@ref{Coded character set})。@refill + +RFC 1521 (@ref{RFC 1521}) で定義されている。@refill + +iso-2022-jp (@ref{iso-2022-jp}) や euc-kr (@ref{euc-kr}) はその1つ。 +(ここでは、MIME charset は文字集合 (@ref{Character set})と区別して小文 +字で書いている) + + +@node MTA, MUA, MIME charset, Glossary +@subsection MTA + +@strong{Message Transfer Agent}@cindex{Message Transfer Agent} の略で、 +sendmail などの mail 配送 program と news server の総称。@refill + +(cf. @ref{MUA}) + + + +@node MUA, MULE, MTA, Glossary +@subsection MUA + +@strong{Message User Agent}@cindex{Message User Agent} の略で、mail +reader と news reader の総称。@refill + +(cf. @ref{MTA}) + + + +@node MULE, multipart, MUA, Glossary +@subsection MULE + +半田 剣一氏らが作った、多言語された Emacs (@ref{Emacs}).@refill + +[MULE] Nishikimi M., Handa K. and Tomura S., ``Mule: MULtilingual +Enhancement to GNU Emacs'', Proc. of INET'93, August, 1993.@refill + +現在、MULE の機能を Emacs に merge する作業が行われており、alpha 版 +(ftp://etlport.etl.go.jp/pub/mule/mule-19.33-gamma.taz) が存在する。 + +その他、XEmacs に merge したものも存在する。@refill + +このため、現在では多言語 Emacs は、元々の MULE を含めて3種類あることに +なる。@refill + +そこで、ここでは、多言語 Emacs の総称を @strong{mule}@cindex{mule}, 元々の +MULE を @strong{MULE}@cindex{MULE}, mule 機能を merge した Emacs を@strong{Emacs/mule}@cindex{Emacs/mule}, mule 機能を merge した XEmacs を @strong{XEmacs/mule}@cindex{XEmacs/mule} と呼ぶことにする。 + + +@node multipart, multipart/alternative, MULE, Glossary +@subsection Multipart + +1つの message(@ref{message}) に複数の part を入れるための +MIME(@ref{MIME}) における表現法、もしくは、複数の part からなる message +を指す。(cf. @ref{content-type}) @refill + +現在、定義されている @strong{multipart}@cindex{multipart} としては、RFC 1521(@ref{RFC 1521}) で定義された + +@itemize @bullet +@item +multipart/mixed(@ref{multipart/mixed}) +@item +multipart/alternative(@ref{multipart/alternative}) +@item +multipart/digest(@ref{multipart/digest}) +@item +multipart/parallel(@ref{multipart/parallel}) +@end itemize + +@noindent +のほか RFC 1847 (@ref{Security multipart}) で定義された + +@itemize @bullet +@item +multipart/signed(@ref{multipart/signed}) +@item +multipart/encrypted(@ref{multipart/encrypted}) +@end itemize + +@noindent +などがある。 + + +@node multipart/alternative, multipart/digest, multipart, Glossary +@subsection multipart/alternative + +multipart(@ref{multipart}) の1つで、同じ情報を異った形式で入れ、選択肢 +とする場合に用いる。@refill + +(cf. @ref{RFC 1521}) + + + +@node multipart/digest, multipart/encrypted, multipart/alternative, Glossary +@subsection multipart/digest + +multipart(@ref{multipart}) の1つで、含まれる part の default の +content-type(@ref{content-type}) が +multipart/mixed(@ref{multipart/mixed}) などの場合 +text/plain(@ref{text/plain}) であるのに対し、 +@strong{multipart/digest}@cindex{multipart/digest}では +message/rfc822(@ref{message/rfc822}) が用いられる点が異なる。@refill + +これは伝統的な RFC 1153(@ref{RFC 1153}) に基づく +encapsulation(@ref{encapsulation}) に代わるものである。@refill + +(cf. @ref{RFC 1521}) + + + +@node multipart/encrypted, multipart/mixed, multipart/digest, Glossary +@subsection multipart/encrypted + +RFC 1847 で定義された Security multipart(@ref{Security multipart}) の1 +つで、暗号化された message を表現するのに用いる。@refill + +(cf. @ref{PGP/MIME}) + + + +@node multipart/mixed, multipart/parallel, multipart/encrypted, Glossary +@subsection multipart/mixed + +multipart(@ref{multipart}) の主要な subtype で、複数の part を順序付けて +並べる場合に用いる。@refill + +(cf. @ref{RFC 1521}) + + + +@node multipart/parallel, multipart/signed, multipart/mixed, Glossary +@subsection multipart/parallel + +multipart(@ref{multipart}) の1つで、複数の part を順序付けずに含める場 +合に用いる。@refill + +(cf. @ref{RFC 1521}) + + + +@node multipart/signed, PGP, multipart/parallel, Glossary +@subsection multipart/signed + +RFC 1847 で定義された Security multipart(@ref{Security multipart}) の1 +つで、電子署名を表現するのに用いる。@refill + +(cf. @ref{PGP/MIME}) + + + +@node PGP, PGP-kazu, multipart/signed, Glossary +@subsection PGP + +Phil Zimmermann 氏が作成した公開鍵暗号処理系の1つ。 +message(@ref{message}) の暗号化や電子署名を行うことができる。Pretty Good +Privacy の略。@refill + +伝統的な PGP では encapsulation(@ref{encapsulation}) に RFC 934(@ref{RFC +934})に準じた方法を用いる。これは MIME(@ref{MIME}) と矛盾するので +PGP/MIME(@ref{PGP/MIME}) が提案されている。一方、MIME において PGP の +encapsulation を用いる方法 (cf. @ref{PGP-kazu}) + も利用されてきた。しかし、今後は PGP/MIME に統一していく方が望ましい。 +@refill + +@cindex{PGP}@cindex{Informational}@cindex{RFC 1991} +@noindent +[PGP: RFC 1991] +@quotation +D. Atkins, W. Stallings and P. Zimmermann, ``PGP Message Exchange +Formats'', August 1996, Informational. +@end quotation + + + + +@node PGP-kazu, PGP/MIME, PGP, Glossary +@subsection PGP-kazu + +山本 和彦 氏が提案した MIME (@ref{MIME}) で PGP (@ref{PGP}) を利用するた +めの方法をここでは @strong{PGP-kazu}@cindex{PGP-kazu} と呼ぶことにする。 + +PGP-kazu は @strong{application/pgp}@cindex{application/pgp} という +content-type(@ref{content-type}) を定義する。@refill + +application/pgp の part では PGP の encapsulation(@ref{encapsulation}) +が用いられる。PGP の encapsulation (cf. @ref{RFC 934}) + と MIME の encapsulation は矛盾するので、PGP の encapsulation を解かな +い限り、中に含まれた MIME message を読むことができなくなる。即ち、 +PGP-kazu に対応していない MIME に対応した MUA(@ref{MUA}) はその part が +読めなくなる。その代わり、MIME に対応していない PGP 対応の +MUA(@ref{MUA}) でも message を読むことができる。@refill + +PGP-kazu では MUA は PGP のと MIME のという2つの encapsulation を知らな +ければならない。また、application/pgp part を parse するためには、まず、 +pgp の処理を行わなければならないので、parse 処理が複雑になる。@refill + +また、Internet では今後 PGP/MIME(@ref{PGP/MIME}) の方向で標準化していこ +うということで合意が取れている。よって、今後は PGP-kazu は用いないのが望 +ましい。@refill + +[draft-kazu-pgp-mime-00.txt] Yamamoto K., ``PGP MIME Integration'', +October, 1995 + + +@node PGP/MIME, Quoted-Printable, PGP-kazu, Glossary +@subsection PGP/MIME + +Michael Elkins 氏が提案した MIME (@ref{MIME}) で PGP (@ref{PGP}) を利用 +するための方法。@refill + +RFC 1847 (@ref{Security multipart}) に基き、MIME の multipart による +encapsulation(@ref{encapsulation}) を行う。このため、MIME の自然な拡張に +なっている。しかし、伝統的な PGPとの互換性が失われている。@refill + +PGP/MIME では PGP-kazu(@ref{PGP-kazu}) と異なり、MIME の encapsulation +のみを用いる。また、このため、PGP の処理を行う前に message の parse を行 +うことができる。@refill + +Internet では今後 PGP/MIME(@ref{PGP/MIME}) の方向で標準化していこうとい +うことで合意が取れている。よって、今後は PGP を用いる場合は PGP/MIME +を用いるのが望ましい。 + +@cindex{PGP/MIME}@cindex{Standards Track}@cindex{RFC 2015} +@noindent +[PGP/MIME: RFC 2015] +@quotation +M. Elkins, ``MIME Security with Pretty Good Privacy (PGP)'', October +1996, Standards Track. +@end quotation + + + +@node Quoted-Printable, RFC 821, PGP/MIME, Glossary +@subsection Quoted-Printable + +RFC 1521 (@ref{RFC 1521}) で定義されている MIME (@ref{MIME}) における +binary data (@ref{binary}) の network での変換法の1つ。@refill + +`=' や制御文字や 128 以上の文字などは `=AF' のように `=' の後に続く 16 +進数で表現する。このため、ASCII (@ref{ASCII}) 文字中心の data では +Base64 (@ref{Base64}) に比べると可読性が高くなる可能性がある。@refill + +しかしながら、EBCDIC には存在しない文字を利用する場合、EBCDIC を利用し +ている network では安全に転送することができず、Base64 に比べて安全性は +低い。 + + +@node RFC 821, RFC 822, Quoted-Printable, Glossary +@subsection RFC 821 + +@strong{SMTP}@cindex{SMTP} と呼ばれる Internet mail の配送法の標準を定めて +いる RFC. + +@cindex{SMTP}@cindex{STD 10}@cindex{RFC 821} +@noindent +[SMTP: RFC 821] +@quotation +J. Postel, ``Simple Mail Transfer Protocol'', August 1982, STD 10. +@end quotation + + + +@node RFC 822, RFC 934, RFC 821, Glossary +@subsection RFC 822 + +Internet mail の主に @strong{message header}@cindex{message header} に関する形式に関 +する標準を定めている RFC. + +@noindent +@strong{[Memo]} +@quotation + +news message もこれに準じているので、@strong{Internet +mail}@cindex{Internet mail} と書くよりも、@strong{Internet +message}@cindex{Internet message} と書いた方が良いかもしれない。 +@end quotation + + +@cindex{STD 11}@cindex{RFC 822} +@noindent +[RFC 822] +@quotation +D. Crocker, ``Standard for the Format of ARPA Internet Text Messages'', +August 1982, STD 11. +@end quotation + + + +@node RFC 934, RFC 1036, RFC 822, Glossary +@subsection RFC 934 + +Internet mail (@ref{RFC 822}) の +@strong{encapsulation}@cindex{encapsulation} (@ref{encapsulation})の方法 +を定めた RFC.@refill + +MIME(@ref{MIME}) と矛盾するので、現在では message/rfc822(@ref{message/rfc822}) を用いるべきである。 + + +@cindex{RFC 934} +@noindent +[RFC 934] +@quotation +Marshall T. Rose and Einar A. Stefferud, ``Proposed Standard for Message +Encapsulation'', January 1985. +@end quotation + + + +@node RFC 1036, RFC 1153, RFC 934, Glossary +@subsection RFC 1036 + +USENET での message の形式を定めた RFC. RFC 822 (@ref{RFC 822})の subset +になっている。Internet の標準ではないが、USENET 以外の netnews でもこれ +に準じているものが多い。 + +@cindex{USENET}@cindex{RFC 1036} +@noindent +[USENET: RFC 1036] +@quotation +M. Horton and R. Adams, ``Standard for Interchange of USENET Messages'', +December 1987, (obsolete RFC 850). +@end quotation + + + +@node RFC 1153, RFC 1521, RFC 1036, Glossary +@subsection RFC 1153 + +複数の Internet mail (@ref{RFC 822}) を +@strong{encapsulation}@cindex{encapsulation} (@ref{encapsulation})するた +めの方法を定めた RFC. RFC 934(@ref{RFC 934}) を用いる。@refill + +MIME(@ref{MIME}) と矛盾するので、現在では +message/rfc822(@ref{message/rfc822}) を用いた multipart(@ref{multipart}) +を用いるべきである。@refill + +(cf. @ref{multipart/digest}) + + +@cindex{RFC 1153} +@noindent +[RFC 1153] +@quotation +F. Wancho, ``Digest Message Format'', April 1990. +@end quotation + + + +@node RFC 1521, RFC 1557, RFC 1153, Glossary +@subsection RFC 1521 + +MIME (@ref{MIME}) を定義している RFC の1つ。 + +@cindex{Standards Track}@cindex{RFC 1521} +@noindent +[RFC 1521] +@quotation +N. Borenstein and N. Freed, ``MIME (Multipurpose Internet Mail +Extensions) Part One: Mechanisms for Specifying and Describing the +Format of Internet Message Bodies'', September 1993, Standards Track +(obsolete RFC 1341). +@end quotation + + +(RFC 1522 (@ref{encoded-word})) + + +@node RFC 1557, RFC 1922, RFC 1521, Glossary +@subsection RFC 1557 + +euc-kr(@ref{euc-kr}) と iso-2022-kr(@ref{iso-2022-kr}) という韓国語のた +めの MIME charset (@ref{MIME charset}) を定義している RFC. + +@cindex{Informational}@cindex{RFC 1557} +@noindent +[RFC 1557] +@quotation +U. Choi, K. Chon and H. Park, ``Korean Character Encoding for Internet +Messages'', December 1993, Informational. +@end quotation + + + +@node RFC 1922, plain text, RFC 1557, Glossary +@subsection RFC 1922 + +iso-2022-cn(@ref{iso-2022-cn}), iso-2022-cn-ext(@ref{iso-2022-cn-ext}), +cn-gb(@ref{cn-gb}), cn-big5(@ref{cn-big5}) といった中国語のための MIME +charset (@ref{MIME charset}) を定義している RFC.@refill + +これに加えて、@strong{charset-edition}@cindex{charset-edition} と @strong{charset-extension}@cindex{charset-extension} という Content-Type field(@ref{Content-Type field}) の +parameter を定義している。 + +@cindex{Informational}@cindex{RFC 1922} +@noindent +[RFC 1922] +@quotation +Zhu, HF., Hu, DY., Wang, ZG., Kao, TC., Chang, WCH. and Crispin, M., +``Chinese Character Encoding for Internet Messages'', March 1996, +Informational. +@end quotation + + + +@node plain text, Security multipart, RFC 1922, Glossary +@subsection plain text + +書体や組版に関する情報を持たない 文字符号(@ref{Coded character set})のみ +で表現される text 情報。(cf. @ref{text/plain}) + + + +@node Security multipart, text/enriched, plain text, Glossary +@subsection Security multipart + +MIME (@ref{MIME}) で暗号や電子書名を用いるための形式。 +@strong{multipart/signed}@cindex{multipart/signed} +(@ref{multipart/signed}) と +@strong{multipart/encrypted}@cindex{multipart/encrypted} +(@ref{multipart/encrypted}) という multipart を用いる。MOSS や PGP/MIME +(@ref{PGP/MIME}) はこれに基いている。 + +@cindex{Security multipart}@cindex{Standards Track}@cindex{RFC 1847} +@noindent +[Security multipart: RFC 1847] +@quotation +James Galvin, Gale Murphy, Steve Crocker and Ned Freed, ``Security +Multiparts for MIME: Multipart/Signed and Multipart/Encrypted'', October +1995, Standards Track. +@end quotation + + + +@node text/enriched, text/plain, Security multipart, Glossary +@subsection text/enriched + +RFC 1521 (@ref{RFC 1521}) で定義された +@strong{text/richtext}@cindex{text/richtext} に代わって、書体や組版に関 +する情報を持った textを表現するための content-type(@ref{content-type}). + +@cindex{text/enriched}@cindex{RFC 1896} +@noindent +[text/enriched: RFC 1896] +@quotation +P. Resnick and A. Walker, ``The text/enriched MIME Content-type'', +February 1996, (obsolete RFC 1563). +@end quotation + + + +@node text/plain, tm-kernel, text/enriched, Glossary +@subsection text/plain + +RFC 1521(@ref{RFC 1521}) で定義された、plain text(@ref{plain text}) を表 +現するための content-type(@ref{content-type}).@refill + +非 MIME message などの content-type が定義されない part は MIME charset(@ref{MIME charset}) が us-ascii(@ref{us-ascii}) である @strong{text/plain}@cindex{text/plain} の part であると見做されることになっている。 + + +@node tm-kernel, tm-MUA, text/plain, Glossary +@subsection tm-kernel, tm + +Emacs で MIME (@ref{MIME}) を利用するための user interface を提供する +library 群。`tools for MIME' の略。 + +@noindent +@strong{[どうでも良いこと(^-^;]} +@quotation + +@itemize @bullet +@item + tm は ``tiny-mime'' の略じゃないらしいぞ (^-^; + +@item + tm は作者のイニシャルじゃないらしいぞ (^-^; + +@item + ``Tools for MIME'' の略というのはこじつけらしいぞ (^-^; +@end itemize +@end quotation + + + +@node tm-MUA, us-ascii, tm-kernel, Glossary +@subsection tm-MUA + +tm (@ref{tm-kernel}) を用いた MUA (@ref{MUA}) もしくは MUA に対する +extender.@refill + +@strong{tm 大盛り package}@cindex{tm 大盛り package} には + +@itemize @bullet +@item +mh-e (@ref{(mh-e)}) 用の @strong{tm-mh-e}@cindex{tm-mh-e} +@item +GNUS 用の @strong{tm-gnus}@cindex{tm-gnus} +@item +Gnus 用の @strong{gnus-mime}@cindex{gnus-mime} (@ref{(gnus-mime-ja)}) +@item +VM 用の @strong{tm-vm}@cindex{tm-vm} +@item +RMAIL 用の @strong{tm-rmail}@cindex{tm-rmail} +@end itemize + +@noindent +が含まれている。 + +独立した MUA としては cmail (@ref{(cmail)}) が tm を利用可能である。 + + +@node us-ascii, , tm-MUA, Glossary +@subsection us-ascii + +アメリカ連邦などで使われる英語などを表現するための MIME charset +(@ref{MIME charset}) の1つ。@refill + +ASCII (@ref{ASCII}) のみからなり ISO 2022 (@ref{ISO 2022}) による符号拡 +張 (@ref{Code extension})は許されない。@refill + +Internet mail における標準の符号化文字集合(@ref{Coded character set})で +あり、明示的に MIME charset が示されない場合は原則として +@strong{us-ascii}@cindex{us-ascii} が使われる。@refill + +また、RFC 822 (@ref{RFC 822}) における @strong{ASCII}@cindex{ASCII} は +us-ascii を指すものと解釈すべきである。 + + +@node Setting, Bug report, Introduction, Top +@chapter 設定 + +この package には @file{mime-setup.el} と +@file{tm-setup.el} という簡易設定 file が附属しています。 + +@file{mime-setup.el} では @file{tm-edit.el} を使った MIME +message の作成も含めた MIME 全般の設定を行ない、 +@file{tm-setup.el} では tm-MUA に関するMIME message の閲覧の設定 +のみを行ないます。 + + +@menu +* mime-setup:: 標準的な設定 +* tm-setup:: tm-edit を使わない設定 +* setting for VM:: VM を使う場合の設定 +* manual setting:: 設定 file を使わない場合 +@end menu + +@node mime-setup, tm-setup, Setting, Setting +@section 標準的な設定 + +tm の一般的な設定を行いたい場合は、 +@strong{mime-setup}@cindex{mime-setup} という標準設定 file を使ってくだ +さい。例えば、@file{~/.emacs} 等で、@refill + +@lisp +(load "mime-setup") +@end lisp + +@noindent +とするだけで OK です。 + +@file{mime-setup.el} は @file{tm-setup.el} を呼んでいるの +で、@file{tm-setup.el} を load する必要はありません。(過去の +Gnus FAQ の記述は間違っています!) + + +@menu +* signature:: signature.el +* Notice about GNUS:: GNUS の場合の注意 +@end menu + +@node signature, Notice about GNUS, mime-setup, mime-setup +@subsection signature.el + +tm には @strong{signature}@cindex{signature} という signature の自動切替え tool +が附属しており、@file{mime-setup.el} はこの設定も行ないます。 +message header の field に合わせて signature の自動切替を行ないたい場 +合は @file{~/.emacs} に以下のようなものを入れて下さい。(詳しく +は signature.el の説明書を参照して下さい) + +@lisp +(setq signature-file-alist + '((("Newsgroups" . "jokes") . "~/.signature-jokes") + (("Newsgroups" . ("zxr" "nzr")) . "~/.signature-sun") + (("To" . ("ishimaru" "z-suzuki")) . "~/.signature-sun") + (("To" . "tea") . "~/.signature-jokes") + (("To" . ("sim" "oku" "takuo")) . "~/.signature-formal") + )) +@end lisp + + + +@defvar mime-setup-use-signature + +この変数が @code{nil} 以外の時、@file{signature.el} を使います。既定値は +@code{t} です。 +@end defvar + + + +@defvar mime-setup-signature-key-alist + +各 major-mode において signature 挿入命令を設定すべき key を指定します。 +既定値は + +@lisp + ((mail-mode . "\C-c\C-w")) +@end lisp + + +です。 + +これを変更したい場合は、関数 set-alist などを使ってこの変数を書き換え +て下さい。 + +@lisp +(set-alist 'mime-setup-signature-key-alist + 'news-reply-mode "\C-c\C-w") +@end lisp + +@end defvar + + +@defvar mime-setup-default-signature-key + +ある major-mode において signature 挿入命令を設定すべき key が見つからな +い場合、この変数に設定された key が用いられます。既定値は、 +@code{"\C-c\C-s"} です。 +@end defvar + + + +@node Notice about GNUS, , signature, mime-setup +@subsection GNUS の場合の注意 + +@file{signature.el} を使う場合、@file{mime-setup.el} は変 +数 @code{gnus-signature-file} を @code{nil} に設定します。 +よって、送信時に自動的に @code{signature} が付く機能は抑制されま +す。このようなことをしているのは以下の理由からです。 + +GNUS が signature を付けるのは @code{tm-edit.el} によって MIME +message が作成された後です。よって、GNUS が付けた signature は MIME +message として正しく処理されていません。例えば multipart message の場 +合、MIME message の外の非 MIME part に付きます。よって、MIME 対応 MUA +で見た場合、signature は表示されないかも知れません。 + +もう一つの注意は標準設定では signature を挿入する key は @kbd{C-c C-w} +ではなく mh-e (@ref{(mh-e)}) と同じ @kbd{C-c C-s} に割り当てられているこ +とです。これは + +@lisp +(set-alist 'mime-setup-signature-key-alist 'news-reply-mode "\C-c\C-w") +@end lisp + +@noindent +によって GNUS の標準に戻すことができます。 + + +@node tm-setup, setting for VM, mime-setup, Setting +@section tm-edit を使わない設定 + + +@strong{tm-setup}@cindex{tm-setup} は tm-MUA (@ref{tm-MUA}) の設定のみを +行なう module です。この設定 file では tm-edit (@ref{(tm-edit-ja)}) を使っ +た MIME message の作成に関する設定は行われず、MIME message の閲覧に関す +る設定のみが行われます。MIME message を読みたいが自分では作成しないとか、 +tm-edit 以外の MIME composer を使いたい場合には mime-setup.el の代わりに +この設定 file を使ってください。@refill + +例えば、@file{~/.emacs} 等に + +@lisp +(load "tm-setup") +@end lisp + +@noindent +を入れれば OK です。 + + +@noindent +@strong{[Memo]} +@quotation + +@file{mime-setup.el} を load している場合、これを陽に load する必要はあ +りません。 +@end quotation + + + +@node setting for VM, manual setting, tm-setup, Setting +@section VM を使う場合の設定 + + +@strong{vm}@cindex{vm} を使う場合は @file{~/.vm} に + +@lisp +(require 'tm-vm) +@end lisp + +@noindent +を入れて下さい。 + + +@noindent +@strong{[注意]} +@quotation + +@strong{BBDB}@cindex{BBDB} を使う場合は @code{(bbdb-insinuate-vm)} の +@strong{後} に @code{(require 'tm-vm)} を入れてください。 +@end quotation + + + +@node manual setting, , setting for VM, Setting +@section 設定 file を使わない場合 + + +@file{mime-setup.el} や @file{tm-setup.el} を参考にして下 +さい。 + + +@noindent +@strong{[Memo]} +@quotation + +現在の tm では tm-edit の使用を仮定した幾つかの便利な機能が存在し、こ +れらの機能は @file{mime-setup.el} を使わないと利用できません。も +し、tm-edit を使う独自の設定を行う場合は、 + +@lisp +(provide 'mime-setup) +@end lisp + +@noindent +という宣言を行ってください。 +@end quotation + + + +@node Bug report, Concept Index, Setting, Top +@chapter bug 報告の仕方 + +tm のバグを見つけたら、以下の address に mail を送ってください: + +@itemize @bullet +@item + 日本語 <bug-tm-ja@@chamonix.jaist.ac.jp> +@item + 英語 <bug-tm-en@@chamonix.jaist.ac.jp> +@end itemize + + +但し、あまりにも古い版に関する報告は歓迎されません。古い版の bug は、新 +しい版では治っているかもしれません。まず、最新版で確認してみましょう。 +@refill + +それから、適切な報告をしましょう。単に「うまく動かない」と言われてもどう +いう状況なのかはさっぱり判りません。最低限、OS, emacs, tm, 使っている +MUA の種類および版、設定を書く必要があります。また、error が起っている場 +合は backtrace を送ることも重要です。(cf. @ref{(emacs)Bugs}) @refill + +また、bug は大抵複数の人が遭遇するものです(そうでなければ、bug ではな +い可能性があります)。だから、作者に直接 mail を送ると作者は同じ mail +を何通も書く羽目になります。だから、必ず bug 報告は上記の address に送っ +てください。 + +tm ML では tm のバグ情報の交換や最新版の配布、tm の改良に関する議論を +行なっています。tm ML に参加したい方は + +@itemize @bullet +@item + 日本語 <tm-ja-admin@@chamonix.jaist.ac.jp> +@item + 英語 <tm-en-admin@@chamonix.jaist.ac.jp> +@end itemize + +@noindent +まで mail を送って下さい。登録は手動ですので、できれば、自然言語で書い +て下さい。(^_^) + + +@node Concept Index, Variable Index, Bug report, Top +@chapter 概念索引 + +@printindex cp + +@node Variable Index, , Concept Index, Top +@chapter 変数索引 + +@printindex vr +@bye diff --git a/doc/tm-view-ja.info b/doc/tm-view-ja.info new file mode 100644 index 0000000..c6216a1 --- /dev/null +++ b/doc/tm-view-ja.info @@ -0,0 +1,1098 @@ +Info file: tm-view-ja.info, -*-Text-*- +produced by `texinfo-format-buffer' +from file `tm-view-ja.texi' +using `texinfmt.el' version 2.32 of 19 November 1993. + + + +File: tm-view-ja.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir) + +tm-view 7.77 Reference Manual(日本語版) +***************************************** + + +This file documents tm-view 7.77, a MIME Viewer for GNU Emacs. + +GNU Emacs 用の MIME Viewer である `tm-view' 7.77 について説明します。 + +* Menu: + +* Introduction:: tm-view って何? +* MIME display:: mime/viewer-mode の画面構成 +* mime/viewer-mode:: mime/viewer-mode での操作 +* method:: 再生処理の実現 +* Two buffers for an article:: raw-article-buffer と preview-buffer +* API:: MIME message の decode に関する関数 +* Concept Index:: 概念索引 +* Function Index:: 関数索引 +* Variable Index:: 変数索引 + + + +File: tm-view-ja.info, Node: Introduction, Next: MIME display, Prev: Top, Up: Top + +tm-view って何? +**************** + +tm-view は GNU Emacs で動作する汎用的な MIME viewer です。 + +tm-view は `mime/viewer-mode' (*Note mime/viewer-mode::) という MIME +message を見るための major-mode を MUA (*Note (tm-ja)MUA::) に対して提供 +します。MUA の設計者はこの mode を利用することでその MUA に MIME 機能を +付加することができます。 + +tm-view は MIME message を閲覧するための user interface の核であり、その +上で各 content-type(*Note (tm-ja)content-type::) を扱うための +*method* (*Note method::) と呼ばれるプログラムを動作 +させます。また、MIME message の表示の仕方を決める +*filter* (*Note Two buffers for an article::) と呼ば +れるプログラムを起動時に呼び出します。method と filter を tm-view に組み +込む事によって、`mime/viewer-mode' でさまざまな MIME content-type を扱う +事ができます。 + + + + +File: tm-view-ja.info, Node: MIME display, Next: mime/viewer-mode, Prev: Introduction, Up: Top + +mime/viewer-mode の画面構成 +*************************** + +mime/viewer-mode (*Note mime/viewer-mode::) では各 part に対して + + [content-button] + (content-header) + + (content-body) + (content-separator) + +という情報を表示します。これらは条件に従って design を変更したり、表示を +抑制することができます。 + +以下に、表示例を示します。 + + + From: morioka@jaist.ac.jp (守岡 知彦 / MORIOKA Tomohiko) + Subject: Re: 質問? + Newsgroups: zxr.message.mime + Date: 22 Oct 93 11:02:44 + Mime-Version: 1.0 + Organization: Japan Advanced Institute of Science and Technology, + Ishikawa, Japan + + [1 (text/plain)] + MIME-Edit mode における、MIME message の作り方。 + + C-c C-x ? を押すと help が出てくる。 + + C-c C-x C-t insert a text message. + C-c C-x TAB insert a (binary) file. + C-c C-x C-e insert a reference to external body. + C-c C-x C-v insert a voice message. + C-c C-x C-y insert a mail or news message. + C-c C-x RET insert a mail message. + C-c C-x C-s insert a signature file at end. + C-c C-x t insert a new MIME tag. + C-c C-x a enclose as multipart/alternative. + C-c C-x p enclose as multipart/parallel. + C-c C-x m enclose as multipart/mixed. + C-c C-x d enclose as multipart/digest. + C-c C-x s enclose as PGP signed. + C-c C-x e enclose as PGP encrypted. + C-c C-x C-k insert PGP public key. + C-c C-x C-p preview editing MIME message. + ... + + って訳で、C-c C-x C-i を押して、挿入したい binary file を指定します。 + + binary file の MIME encoding には、普通、Base64 を指定します。 + + [2 (image/gif)] + + [3 (text/plain)] + + こんな風に、絵入り message のでき上がり。 + + 〓〓〓〓〓〓〓〓〓〓〓 ロシアン・ティーを一杯。 〓〓〓〓〓〓〓〓〓〓〓 + 〓〓〓〓〓 ☆ ジャムではなくマーマレードでもなく蜂蜜で ☆ 〓〓〓〓〓 + 〓〓〓〓〓 МОРいОКА ТОМОХИКО 〓〓〓〓〓 + 〓〓〓〓〓〓〓 Internet E-mail: <morioka@jaist.ac.jp> 〓〓〓〓〓〓〓 + + + +* Menu: + +* content-button:: +* content-header:: +* content-body:: +* content-separator:: + + + +File: tm-view-ja.info, Node: content-button, Next: content-header, Prev: MIME display, Up: MIME display + +content-button +============== + +*content-button* は part の先頭にあって、 +その part に関する大まかな情報を表示する部分です。 + +標準では + + [1.3 test (text/plain)] + +のような感じに表示されます。 + +最初の数字は message 中のこの part の位置を節番号のように表したもので、 +*content-number* と呼びます。 + +2番目の文字列は表題を表します。この情報は、 + + 1. Content-Type field(*Note (tm-ja)Content-Type field::) の name + paramater もしくは x-name parameter に書かれた file 名 + 2. Content-Description field(*Note (tm-ja)Content-Description field::) + もしくは Subject field に書かれた表題 + 3. uuencode の場合の file 名 + +から作ります。どれも存在しない場合は空白が表示されます。 + +3番目の括弧の中の情報はその part の content-type/subtype を表します。非 +MIME part の場合、`nil' が表示されます。 + +この content-button は content-header (*Note content-header::), +content-body (*Note content-body::) を表示しない場合、icon のような役割 +を果たします。例えば、 + + [2 (image/gif)] + +の上で `v' を押せばここに入っている絵が表示されます。 + +また、mouse 操作が可能な場合、content-button を第2ボタン(3 button +mouse の場合、中央のボタン)で押せば、同様にその絵が表示されます。(*Note +mime/viewer-mode::) + +ところで、content-button を表示するのは鬱陶しい場合があるので、 +content-button の表示を条件によって抑制することができます。 + + + -- Variable: mime-viewer/content-button-ignored-ctype-list + + content-button を表示しない content-type を要素とする list. + + + + + +File: tm-view-ja.info, Node: content-header, Next: content-body, Prev: content-button, Up: MIME display + +content-header +============== + +*content-header* はある part の header を +表示する部分です。しかし、全ての part の content-header を表示するのは鬱 +陶しいので、以下のような mechanism によって表示するかしないかを決めてい +ます。 + +ある part の reversed-content-number を関数 +`mime-viewer/header-visible-p' に与えた時の返り値が `t' になる場合、その +part の content-header が表示されます。 + +この判定関数は、一番上の part でなく、その part の親の +content-type(*Note (tm-ja)content-type::) が変数 +`mime-viewer/childrens-header-showing-Content-Type-list' で指定されてい +る場合に `t' を返します。 + +この条件を変えたい場合は、この関数を再定義して下さい。但し、標準では、変 +数 `mime-viewer/childrens-header-showing-Content-Type-list' を参照します +が、再定義した場合、この変数の有効性は保証されないので注意して下さい。 + +content-header が表示される場合、content-header は +*content-header-filter* と呼ばれる +program によって整形されます。content-header-filter は +raw-article-buffer (*Note raw-article-buffer::) の major-mode を key と +して変数 `mime-viewer/content-header-filter-alist' から探されます。もし、 +content-header-filter が見つからなかった場合、関数 +`mime-viewer/default-content-header-filter' が呼ばれます。 + + + -- Variable: mime-viewer/childrens-header-showing-Content-Type-list + + ある part の子に当たる content の content-header を表示すべき + Content-Type を収めた list. 既定値は `"message/rfc822"' である。 + + + この変数は関数 `mime-viewer/header-visible-p' によって参照される。 + + + + -- Function: mime-viewer/header-visible-p RCNUM CINFO &optional CTYPE + + content-info CINFO 中の reversed-content-number が RCNUM である + part の header が表示される場合、`t' を返す。その part の + content-type があらかじめわかっている場合、CTYPE に引数として渡すこ + とができる。 + + + + -- Variable: mime-viewer/content-header-filter-alist + + raw-article-buffer の major-mode を key とした連想リストで、値部に + は content-header-filter が入っている。 + + + + -- Function: mime-viewer/default-content-header-filter + + ある part の content-header を表示すべき時、変数 + `mime-viewer/content-header-filter-alist' の中に + content-header-filter が見つからなかった場合に呼び出される。 + + 変数 `mime-viewer/ignored-field-regexp' を参照する。 + + + + -- Variable: mime-viewer/ignored-field-list + + content-header を表示する時に、表示しない field を指定する。 + + 正規表現の list になっており、この値を元に変数 + `mime-viewer/ignored-field-regexp' が作られる。 + + この変数は直接操作せず、関数 `tm:add-fields' や `tm:delete-fields' + を使って操作する。 + + + + + +File: tm-view-ja.info, Node: content-body, Next: content-separator, Prev: content-header, Up: MIME display + +content-body +============ + +*content-body* は part の内容を表示する部分 +です。 + +全ての part の内容を表示できるとは限らないし、また、表示したくない part +も存在するので、以下のような方法で表示するかしないかを決めています。 + + +ある part の content-body を表示するかどうかは、関数 +`mime-viewer/body-visible-p' が `t' になるかどうかで決まります。標準では、 +ある part の content-type が変数 +`mime-viewer/default-showing-Content-Type-list' に設定されている時に表示 +されます。 + +ある part の content-body が表示される時、preview buffer には part の内 +容を *content-filter* と呼ばれる program によって整形されたものが表示さ +れます。呼ばれる content-filter は raw-article-buffer (*Note +raw-article-buffer::) の major-mode を key として変数 +`mime-viewer/content-filter-alist' から探されます。もし、この変数に登録 +されていなかった場合、関数 `mime-viewer/default-content-filter' が呼ばれ +ます。 + + + -- Variable: mime-viewer/default-showing-Content-Type-list + + content-body を表示すべき content-type を要素とする list. + + + + -- Function: mime-viewer/body-visible-p RCNUM CINFO &optional CTYPE + + reversed-content-number が RCNUM である part が表示される場合、`t' + を返す。その part の content-type があらかじめわかっている場合、 + CTYPE に引数として渡すことができる。 + + + + -- Variable: mime-viewer/content-filter-alist + + raw-article-buffer の major-mode を key とした連想リストで、値部に + は content-filter が入っている。 + + + + -- Function: mime-viewer/default-content-filter RCNUM CINFO CTYPE PARAMS SUBJ + + ある part の content-body を表示すべき時、変数 + `mime-viewer/content-filter-alist' の中に content-filter が見つから + なかった場合に呼び出される。 + + 標準では何もしない。 + + + + + + +File: tm-view-ja.info, Node: content-separator, Prev: content-body, Up: MIME display + +content-separator +================= + +*content-separator* は part の一番最後 +に part 間の境目を明らかにするために表示されます。 + +content-separator は関数 `mime-viewer/default-content-separator'によって +表示されます。標準では、content-header も content-body も表示されない場 +合のみ、改行を表示します。 + +content-separator の設定を変更したい場合は、この関数を再定義して下さい。 + + + + -- Function: mime-viewer/default-content-separator RCNUM CINFO CTYPE PARAMS SUBJ + + content-number が CNUM である part の content-separator を表示する。 + 標準では、content-header も content-body も表示されない場合のみ、改 + 行を表示する。 + + + + + +File: tm-view-ja.info, Node: mime/viewer-mode, Next: method, Prev: MIME display, Up: Top + +mime/viewer-mode での操作 +************************* + +mime/viewer-mode には以下の機能があります。 + +`u' + 上の part に戻る(message の一番上の part でこれを行なうと Summary + mode に戻る (*1)) + +`p' + 前の part に移動する + +`n' + 次の part に移動する + +`SPC' + scroll up する + +`M-SPC' + scroll down する + +`DEL' + scroll down する + +`RET' + 次の行に移動する + +`M-RET' + 前の行に移動する + +`M-RET' + 前の行に移動する + +`<' + message の先頭に移動する + +`>' + message の末尾に移動する + +`v' + part を再生する (*2) + +`e' + part から file を取り出す (*2) + +`C-c C-p' + part を印刷する (*2) + +`f' + message 中の X-Face を表示する + +`mouse-button-2' + preview-buffer 中の mouse button を起動する + + content-button を押せば、その part が再生される(*2) + + URL-button を押せば、その WWW browser が起動される + + +*[注意]* + + (*1) tm-MUA で tm-view の設定をしていない場合、Summary mode には戻 + りません。 + + (*2) 実際の動作は対応する method に依ります。 + + + + + +File: tm-view-ja.info, Node: method, Next: Two buffers for an article, Prev: mime/viewer-mode, Up: Top + +再生処理の実現 +************** + +`mime/viewer-mode' では、各 part に対して、play (`v'), extract +(`e'), print (`C-c C-p') という操作を行なうことができます。こう +した操作のことを『(part に対する)decode 操作』と呼ぶことにします。また、 +play, extract, print という decode 操作の種類のことを +*decoding-mode* と呼ぶことにします。 + +decode 操作が行なわれた時、その part の +content-type(*Note (tm-ja)content-type::) などの条件やその場の環境に応じて +実際にその操作を実行する手続きが呼ばれます。この手続きのことを +*method* と呼びます。 + +method には、Emacs Lisp で書かれた *内部 method* と、外部 program で実現 +された *外部 method* があります。内部 method は Emacs の機能を使ってきめ +細かい処理を行なうことができます。外部 method は非同期プロセス呼び出しを +使って実現されているので、実行中待たされずにすみます。このため、静止画や +動画などの巨大な data を再生するのに良いでしょう。 + + +* Menu: + +* decoding-condition:: part の再生に関する条件の設定 +* environment variables:: 環境変数 + + + +File: tm-view-ja.info, Node: decoding-condition, Next: environment variables, Prev: method, Up: method + +part の再生に関する条件の設定 +============================= + +tm-view は decode 操作が行なわれると、変数 +`mime/content-decoding-condition' からその時の条件に合致した method を捜 +し出して、それを呼び出します。 + +変数 `mime/content-decoding-condition' は + + (条件1 条件2 ...) + +という形をした list で、各条件は + + ((field-type_1 . value_1) + (field-type_2 . value_2) + ...) + +という形の連想 list になっています。 + +例えば、text/plain(*Note (tm-ja)text/plain::) の時、tm-plain を起動する +時、 + + + ((type . "text/plain") + (method "tm-plain" nil 'file 'type 'encoding 'mode 'name)) + +という条件を書きます。この method の value 部の書式については後で詳しく +述べます。 + +この条件は content-type(*Note (tm-ja)content-type::) が text/plain であ +る part なら全ての decoding-mode で有効です。しかし、 + + ((type . "text/plain") + (method "tm-plain" nil 'file 'type 'encoding 'mode 'name) + (mode . "play")) + +なら、play mode の時しか有効になりません。 + +逆に、 + + ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file) + (mode . "play")) + +なら、全ての content-type の play mode で有効になります。 + +こうして各条件を前から見て行き、最初に有効になった条件が実行されます。 + + +* Menu: + +* method value:: method の値部の書式 +* Example of decoding-condition:: decoding-condition の例 + + + +File: tm-view-ja.info, Node: method value, Next: Example of decoding-condition, Prev: decoding-condition, Up: decoding-condition + +method の値部の書式 +------------------- + +decode-condition の method field は + + (method . SYMBOL) + +か + + (method 文字列 FLAG 引数1 引数2 ...) + +という形をしています。 + +前者は内部 method を指定するための形式で、decode 操作が行なわれた時、 +SYMBOL という関数が関数呼び出しによって内部 method として呼び出されます。 + + +後者は外部 method を指定するための形式で、decode 操作が行なわれた時、文 +字列で指定された外部 program が非同期プロセス呼び出しによって外部 method +として呼び出されます。 + +外部 method を指定する場合の method field の書式は以下の通りです。 + + +`文字列' + 外部 method の名前 + +`FLAG' + `t' なら content-header も外部 method に渡す。 + + `nil' なら content-body のみを渡す。 + +`引数列' + 外部 method の引数 + + +また、外部 method の引数は次のような形式で書きます。 + +`文字列' + その文字列を渡す + +`'SYMBOL' + SYMBOL を key とした decoding-condition の値を渡す + +`'文字列' + 文字列を key とした decoding-condition の値を渡す + + +'SYMBOL で指定できるものには、 + +`'file' + part の情報を渡すための file 名 + +`'type' + Content-Type field の content-type/subtype + +`'encoding' + Content-Transfer-Encoding field の field body + +`'mode' + decoding-mode + +`'name' + file に落す場合の file 名 + + +などがあり、`'文字列' では Content-Type field の parameter の値が指定で +きます。 + + + + +File: tm-view-ja.info, Node: Example of decoding-condition, Prev: method value, Up: decoding-condition + +decoding-condition の例 +----------------------- + +以下に decoding-condition の設定例を示します。 + + (defvar mime/content-decoding-condition + '(((type . "text/plain") + (method "tm-plain" nil 'file 'type 'encoding 'mode 'name)) + ((type . "text/x-latex") + (method "tm-latex" nil 'file 'type 'encoding 'mode 'name)) + ((type . "audio/basic") + (method "tm-au" nil 'file 'type 'encoding 'mode 'name)) + ((type . "image/gif") + (method "tm-image" nil 'file 'type 'encoding 'mode 'name)) + ((type . "image/jpeg") + (method "tm-image" nil 'file 'type 'encoding 'mode 'name)) + ((type . "image/tiff") + (method "tm-image" nil 'file 'type 'encoding 'mode 'name)) + ((type . "image/x-tiff") + (method "tm-image" nil 'file 'type 'encoding 'mode 'name)) + ((type . "image/x-xbm") + (method "tm-image" nil 'file 'type 'encoding 'mode 'name)) + ((type . "image/x-pic") + (method "tm-image" nil 'file 'type 'encoding 'mode 'name)) + ((type . "video/mpeg")` + (method "tm-mpeg" nil 'file 'type 'encoding 'mode 'name)) + ((type . "application/octet-stream") + (method "tm-file" nil 'file 'type 'encoding 'mode 'name)) + ((type . "message/partial") + (method . mime/decode-message/partial-region)) + ((method "metamail" t + "-m" "tm" "-x" "-d" "-z" "-e" 'file)(mode . "play")) + )) + + +例えば、「全部 metamail 使うんや」という場合、 + + (setq mime/content-decoding-condition + '( + ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file)) + )) + +とすれば OK です。 + +工夫すれば、かなり複雑な条件が書けるでしょう。 + +以下に、decoding-condition を設定するための有用な関数を紹介します。 + + + -- Function: set-atype SYMBOL ALIST + + SYMBOL に条件 ALIST を追加します。 + + *[例]* + + (set-atype 'mime/content-decoding-condition + '((type . "message/external-body") + ("access-type" . "anon-ftp") + (method . mime/decode-message/external-ftp) + )) + + + + + +File: tm-view-ja.info, Node: environment variables, Prev: decoding-condition, Up: method + +環境変数 +======== + +以下に tm-view の標準 method が参照する環境変数を示します。 + +TM_TMP_DIR + 一時的に作成される file や file 出力する場合の default の出力先とし + て用いられる directory を指定する。省略された場合、`/tmp/' が用いら + れる。 + +VIDEO_DITHER + mpeg_play での dither のかけ方を指定する。既定値は `gray'. + +TM_WWW_BROWSER + WWW browser を指定する。既定値は `netscape'. + + + + + + +File: tm-view-ja.info, Node: Two buffers for an article, Next: API, Prev: method, Up: Top + +raw-article-buffer と preview-buffer +************************************ + +tm-view は、MIME 処理を行なう前の生の message が入っている +*raw-article-buffer* とその内容を user +に簡潔に表示し、user が操作するための +*preview-buffer* という2つの buffer を管 +理します。raw-article-buffer の major-mode はもともとの MUA の article +表示用の major-mode であり、preview-buffer の major-mode は +`mime/viewer-mode' (*Note mime/viewer-mode::) となります。 + +`mime/viewer-mode' を実行すると、tm-view はまず raw-article-buffer の内 +容を解析し、その message の構造を raw-article-buffer の buffer local 変 +数 `mime::article/content-info' に記録します。 + +次に、この結果を元に raw-article-buffer に対応する preview-buffer を作り +ます。この際、content-type に応じて、part 単位で header や body を加工す +ることができます。この header を加工するプログラムを +*header-filter* (*Note content-header::), +body を加工するプログラムを +*content-filter* (*Note content-body::) と呼 +び、これらを総称して *filter* と呼びます。 + +preview-buffer を作成する時に、message の表示上の構造を記録した +preview-buffer の buffer local 変数 `mime::preview/content-list' が作ら +れます。tm-view は raw-article-buffer 上の `mime::article/content-info' +と preview-buffer 上の `mime::preview/content-list' を用いて message を +管理します。 + +*[注意]* + この説明書では、Content-Type field の content-type/subtype のことを + 称して "content-type" と呼びます。 + + + +* Menu: + +* raw-article-buffer:: raw-article-buffer の buffer local 変数 +* preview-buffer:: preview-buffer の buffer local 変数 + + + +File: tm-view-ja.info, Node: raw-article-buffer, Next: preview-buffer, Prev: Two buffers for an article, Up: Two buffers for an article + +raw-article-buffer の buffer local 変数 +======================================= + + -- Structure: mime::content-info RCNUM POINT-MIN POINT-MAX TYPE PARAMETERS ENCODING CHILDREN + + raw-article-buffer における MIME part に関する情報を格納するための + 構造体。単に *content-info* とも呼ぶ。 + + この構造体を参照するには、`mime::content-info/スロット名' という + content-info を引数にとる関数を用いる。 + + この構造体のスロットは以下の通りである: + + RCNUM + "reversed content-number" (list) + + POINT-MIN + raw-article-buffer における先頭 point + + POINT-MAX + raw-article-buffer における末尾 point + + TYPE + content-type/sub-type(文字列、または、nil) + + PARAMETERS + Content-Type field の parameter (連想 list) + + ENCODING + Content-Transfer-Encoding(文字列、または、nil) + + CHILDREN + この part に含まれる part(content-info の list) + + + ある part が multipart もしくは message/rfc822 などの別の part を含 + むような part であった場合、CHILDREN に別の part の content-info が + 含まれる事によって、content-info は木構造になる。 + + + -- Variable: mime::article/content-info + + raw-article-buffer を MIME message として解析した結果 + (content-info) + + + -- Variable: mime::article/preview-buffer + + raw-article-buffer に対応する preview-buffer. + + + -- Function: mime-article/point-content-number POINT &optional CINFO + + content-info CINFO で管理される領域において、POINT に対応する + content-number を返す。 + + CINFO が省略された場合は、`mime::article/content-info'が用いられる。 + + + -- Function: mime-article/rcnum-to-cinfo RCNUM &optional CINFO + + content-info CINFO で管理される領域において、 + reversed-content-number RCNUM に対応する content-info を返す。 + + + CINFO が省略された場合は、`mime::article/content-info' が用いられる。 + + + -- Function: mime-article/cnum-to-cinfo RCNUM &optional CINFO + + content-info CINFO で管理される領域において、content-number RCNUM + に対応する content-info を返す。 + + CINFO が省略された場合は、`mime::article/content-info' が用いられる。 + + + -- Function: mime/flatten-content-info &optional CINFO + + content-info CINFO 中に納められた全 part の content-info の list を + 返す。 + + CINFO が省略された場合は、`mime::article/content-info' が用いられる。 + + + + + +File: tm-view-ja.info, Node: preview-buffer, Prev: raw-article-buffer, Up: Two buffers for an article + +preview-buffer の buffer local 変数 +=================================== + + -- Variable: mime::preview/mother-buffer + + この preview-buffer の親に相当する buffer. + + + -- Structure: mime::preview-content-info POINT-MIN POINT-MAX BUFFER CONTENT-INFO + + preview-buffer における MIME content に関する情報を格納するための構 + 造体。単に *preview-content-info* とも呼ぶ。 + + + この構造体を参照するには、`mime::content-info/スロット名' という + content-info を引数にとる関数を用いる。 + + この構造体のスロットは以下の通りである。 + + POINT-MIN + preview-buffer における先頭 point + + POINT-MAX + preview-buffer における末尾 point + + BUFFER + この part に対応する raw-article-buffer + + CONTENT-INFO + この part に対応する content-info + + + + -- Variable: mime::preview/content-list + + この preview-buffer の構造をあらわす preview-content-info の list. + + -- Variable: mime::preview/article-buffer + + この preview-buffer に対応する raw-article-buffer. + + + -- Variable: mime::preview/original-major-mode + + この preview-buffer のもとになった buffer の major-mode. + + + -- Variable: mime::preview/original-window-configuration + + `mime/viewer-mode' を実行して、この preview-buffer 作る直前の + window-configuration. + + + -- Function: mime-preview/point-pcinfo POINT &optional PCL + + preview-content-info PCL で管理される preview-buffer 中の領域におい + て、POINT に対応する part の preview-content-info を返す。 + + + CINFO が省略された場合は、`mime::preview/content-list' が用いられる。 + + + + + +File: tm-view-ja.info, Node: API, Next: Concept Index, Prev: Two buffers for an article, Up: Top + +MIME message の decode に関する関数 +*********************************** + +tm-view の提供する関数を各 MUA (*Note (tm-ja)MUA::) に組み込む事によって、 +各 MUA に MIME 再生機能を付加する事ができます。 + +tm-view が各 MUA に提供する関数は、MIME preview を行うための関数 +`mime/viewer-mode' と encoded-word(*Note (tm-ja)encoded-word::) を +decode するための関数群です。 + + +* Menu: + +* API about MIME preview:: MIME preview に関する関数 +* encoded-word decoding:: encoded-word の復元 + + + +File: tm-view-ja.info, Node: API about MIME preview, Next: encoded-word decoding, Prev: API, Up: API + +MIME preview に関する関数 +========================= + + + -- Command: mime/viewer-mode &optional MOTHER CTL ENCODING IBUF OBUF MOTHER-KEYMAP + + IBUF を MIME message として解析して、その内容を閲覧するための + preview-buffer を OBUF に作成し、`mime/viewer-mode' (*Note + mime/viewer-mode::)に入ります。 + + IBUF が省略された場合、current buffer を用います。 + + MOTHER は、解析の対象とする raw-article-buffer が message/partial + 形式の分割された message を結合して作成した場合などにおける元の + buffer を指定するために使います。 + + CTL は Content-Type field(*Note (tm-ja)Content-Type field::) の + field-body を `mime/Content-Type' の出力正式にしたものを入れます。 + この引数がある場合、raw-article-buffer の Content-Type field よりも + この引数を優先します。 + + ENCODING は Content-Transfer-Encoding field の field-body を入れま + す。この引数がある場合、raw-article-buffer の + Content-Transfer-Encoding field よりもこの引数を優先します。 + + MOTHER-KEYMAP が指定された場合、`mime/viewer-mode' の keymap はこの + keymap に加えたものとなります。 + + + + + +File: tm-view-ja.info, Node: encoded-word decoding, Prev: API about MIME preview, Up: API + +encoded-word の復元 +=================== + +tm-view は RFC 1522 で規定された encoded-word(*Note +(tm-ja)encoded-word::) を decode するための関数を持っています。 + +*[Memo]* + 旧 `tiny-mime.el' にあった RFC 1522 encoded-word を decode するため + の関数群は tm-view に引き継がれました。 + + + + -- Command: mime/decode-message-header + + current buffer の message header 中の encoded-word を decode します。 + + + 壊れていたり、不正だったり、decode できない MIME charset (*Note + (tm-ja)MIME charset::) が用いられている encoded-word は decode され + ずそのまま残されます。 + + + + -- Command: mime-eword/decode-region START END &optional UNFOLDING MUST-UNFOLD + + START と END で囲まれた領域中の encoded-word を decode します。 + + 壊れていたり、不正だったり、decode できない MIME charset (*Note + (tm-ja)MIME charset::) が用いられている encoded-word は decode され + ずそのまま残されます。 + + UNFOLDING が non-nil の場合、折り返された field を unfolding します。 + + MUST-FOLD が non-nil の場合、encoded-word の decode 結果に折り返し、 + もしくは、改行が含まれている場合、unfold し、改行を除きます。 + + + + -- Function: mime-eword/decode-string STRING &optional MUST-UNFOLD + + STRING 中の encoded-word を decode した文字列を返します。 + + 壊れていたり、不正だったり、decode できない MIME charset (*Note + (tm-ja)MIME charset::) が用いられている encoded-word は decode され + ずそのまま出力されます。 + + STRING が折り返されている場合、encoded-word を decode する前に + STRING は unfold されます。 + + MUST-FOLD が non-nil の場合、encoded-word の decode 結果に折り返し、 + もしくは、改行が含まれていても、それらは unfold され単体の改行文字 + も取り除かれます。 + + + + + +File: tm-view-ja.info, Node: Concept Index, Next: Function Index, Prev: API, Up: Top + +概念索引 +******** + + +* Menu: + +* 外部 +* 内部 +* content-body: content-body. 6. +* content-button: content-button. 6. +* content-filter: content-body. 20. +* content-filter: Two buffers for an article. 23. +* content-header: content-header. 6. +* content-header-filter: content-header. 25. +* content-info: raw-article-buffer. 10. +* content-number: content-button. 16. +* content-separator: content-separator. 6. +* decoding-mode: method. 10. +* filter: Introduction. 17. +* filter: Two buffers for an article. 24. +* header-filter: Two buffers for an article. 21. +* method: Introduction. 15. +* method: method. 15. +* preview-buffer: Two buffers for an article. 9. +* preview-content-info: preview-buffer. 15. +* raw-article-buffer: Two buffers for an article. 7. +method: method. 17. +method: method. 17. + + + +File: tm-view-ja.info, Node: Function Index, Next: Variable Index, Prev: Concept Index, Up: Top + +関数索引 +******** + + +* Menu: + +* mime-article/cnum-to-cinfo: raw-article-buffer. 72. +* mime-article/point-content-number: raw-article-buffer. 55. +* mime-article/rcnum-to-cinfo: raw-article-buffer. 63. +* mime::content-info: raw-article-buffer. 7. +* mime/decode-message-header: encoded-word decoding. 16. +* mime-eword/decode-region: encoded-word decoding. 27. +* mime-eword/decode-string: encoded-word decoding. 42. +* mime/flatten-content-info: raw-article-buffer. 80. +* mime::preview-content-info: preview-buffer. 12. +* mime-preview/point-pcinfo: preview-buffer. 57. +* mime-viewer/body-visible-p: content-body. 35. +* mime-viewer/default-content-filter: content-body. 50. +* mime-viewer/default-content-header-filter: content-header. 60. +* mime-viewer/default-content-separator: content-separator. 18. +* mime-viewer/header-visible-p: content-header. 44. +* mime/viewer-mode: API about MIME preview. 8. +* set-atype: Example of decoding-condition. 53. + + + +File: tm-view-ja.info, Node: Variable Index, Prev: Function Index, Up: Top + +変数索引 +******** + + +* Menu: + +* mime::article/content-info: raw-article-buffer. 44. +* mime::article/preview-buffer: raw-article-buffer. 50. +* mime::preview/article-buffer: preview-buffer. 41. +* mime::preview/content-list: preview-buffer. 37. +* mime::preview/mother-buffer: preview-buffer. 7. +* mime::preview/original-major-mode: preview-buffer. 46. +* mime::preview/original-window-configuration: preview-buffer. 51. +* mime-viewer/childrens-header-showing-Content-Type-list: content-header. 34. +* mime-viewer/content-button-ignored-ctype-list: content-button. 48. +* mime-viewer/content-filter-alist: content-body. 43. +* mime-viewer/content-header-filter-alist: content-header. 53. +* mime-viewer/default-showing-Content-Type-list: content-body. 29. +* mime-viewer/ignored-field-list: content-header. 70. + +Tag table: +Node: Top162 +Node: Introduction1009 +Node: MIME display2065 +Node: content-button4566 +Node: content-header6494 +Node: content-body9701 +Node: content-separator11872 +Node: mime/viewer-mode12724 +Node: method14008 +Node: decoding-condition15402 +Node: method value17152 +Node: Example of decoding-condition18921 +Node: environment variables21289 +Node: Two buffers for an article21880 +Node: raw-article-buffer23824 +Node: preview-buffer26642 +Node: API28501 +Node: API about MIME preview29171 +Node: encoded-word decoding30580 +Node: Concept Index32718 +Node: Function Index34088 +Node: Variable Index35262 + +End tag table diff --git a/doc/tm-view-ja.sgml b/doc/tm-view-ja.sgml new file mode 100644 index 0000000..2f4b247 --- /dev/null +++ b/doc/tm-view-ja.sgml @@ -0,0 +1,960 @@ +<!doctype sinfo system> +<!-- $Id: tm-view-ja.sgml,v 3.0 1996/10/15 20:31:42 morioka Exp $ --> +<head> +<title>tm-view 7.77 Reference Manual(日本語版) +<author>守岡 知彦 <mail>morioka@jaist.ac.jp</mail> +<date>1996/10/11 + +<toc> +</head> + +<body> + +<abstract> +<p> +This file documents tm-view 7.77, a MIME Viewer for GNU Emacs. +<p> +GNU Emacs 用の MIME Viewer である `tm-view' 7.77 について説明します。 +</abstract> + +<h1> tm-view って何? +<node> Introduction +<p> +tm-view は GNU Emacs で動作する汎用的な MIME viewer です。 +<p> +tm-view は <a node="mime/viewer-mode"><code>mime/viewer-mode</code> +</a> という MIME message を見るための major-mode を <a file="tm-ja" +node="MUA">MUA</a> に対して提供します。MUA の設計者はこの mode を利用 +することでその MUA に MIME 機能を付加することができます。 +<p> +tm-view は MIME message を閲覧するための user interface の核であり、そ +の上で各 <dref file="tm-ja" node="content-type"> を扱うための <a +node="method"><concept name="method"></a> と呼ばれるプログラムを動作さ +せます。また、MIME message の表示の仕方を決める <a node="Two buffers +for an article"><concept name="filter"></a> と呼ばれるプログラムを起動 +時に呼び出します。method と filter を tm-view に組み込む事によって、 +<code>mime/viewer-mode</code> でさまざまな MIME content-type を扱う事 +ができます。 + + +<h1> mime/viewer-mode の画面構成 +<node> MIME display +<p> +<a node="mime/viewer-mode">mime/viewer-mode</a> では各 part に対して +<p> +<verb> + [content-button] + (content-header) + + (content-body) + (content-separator) +</verb> +<p> +<noindent> +という情報を表示します。これらは条件に従って design を変更したり、表示 +を抑制することができます。 +<p> +以下に、表示例を示します。 + + +<verb> +From: morioka@jaist.ac.jp (守岡 知彦 / MORIOKA Tomohiko) +Subject: Re: 質問? +Newsgroups: zxr.message.mime +Date: 22 Oct 93 11:02:44 +Mime-Version: 1.0 +Organization: Japan Advanced Institute of Science and Technology, + Ishikawa, Japan + +[1 (text/plain)] + MIME-Edit mode における、MIME message の作り方。 + + C-c C-x ? を押すと help が出てくる。 + +C-c C-x C-t insert a text message. +C-c C-x TAB insert a (binary) file. +C-c C-x C-e insert a reference to external body. +C-c C-x C-v insert a voice message. +C-c C-x C-y insert a mail or news message. +C-c C-x RET insert a mail message. +C-c C-x C-s insert a signature file at end. +C-c C-x t insert a new MIME tag. +C-c C-x a enclose as multipart/alternative. +C-c C-x p enclose as multipart/parallel. +C-c C-x m enclose as multipart/mixed. +C-c C-x d enclose as multipart/digest. +C-c C-x s enclose as PGP signed. +C-c C-x e enclose as PGP encrypted. +C-c C-x C-k insert PGP public key. +C-c C-x C-p preview editing MIME message. +... + +って訳で、C-c C-x C-i を押して、挿入したい binary file を指定します。 + + binary file の MIME encoding には、普通、Base64 を指定します。 + +[2 (image/gif)] + +[3 (text/plain)] + + こんな風に、絵入り message のでき上がり。 + +〓〓〓〓〓〓〓〓〓〓〓 ロシアン・ティーを一杯。 〓〓〓〓〓〓〓〓〓〓〓 +〓〓〓〓〓 ☆ ジャムではなくマーマレードでもなく蜂蜜で ☆ 〓〓〓〓〓 +〓〓〓〓〓 МОРいОКА ТОМОХИКО 〓〓〓〓〓 +〓〓〓〓〓〓〓 Internet E-mail: <morioka@jaist.ac.jp> 〓〓〓〓〓〓〓 +</verb> + + +<h2> content-button +<node> content-button +<p> +<concept name="content-button"> は part の先頭にあって、その part に関 +する大まかな情報を表示する部分です。 +<p> +標準では + +<verb> + [1.3 test (text/plain)] +</verb> + +<noindent> +のような感じに表示されます。 +<p> +最初の数字は message 中のこの part の位置を節番号のように表したもので、 +<concept name="content-number"> と呼びます。 +<p> +2番目の文字列は表題を表します。この情報は、 + +<ol> +<li><dref file="tm-ja" node="Content-Type field"> の name paramater も +しくは x-name parameter に書かれた file 名 +</li> +<li><dref file="tm-ja" node="Content-Description field"> もしくは +Subject field に書かれた表題 +</li> +<li> uuencode の場合の file 名 +</ol> + +<noindent> +から作ります。どれも存在しない場合は空白が表示されます。 +<p> +3番目の括弧の中の情報はその part の content-type/subtype を表します。 +非 MIME part の場合、<code>nil</code> が表示されます。 +<p> +この content-button は <a node="content-header">content-header</a>, <a +node="content-body">content-body</a> を表示しない場合、icon のような役 +割を果たします。例えば、 + +<verb> + [2 (image/gif)] +</verb> + +<noindent> +の上で <kbd>v</kbd> を押せばここに入っている絵が表示されます。 +<p> +また、mouse 操作が可能な場合、content-button を第2ボタン(3 button +mouse の場合、中央のボタン)で押せば、同様にその絵が表示されます。 +(<ref node="mime/viewer-mode">) +<p> +ところで、content-button を表示するのは鬱陶しい場合があるので、 +content-button の表示を条件によって抑制することができます。 + + +<defvar name="mime-viewer/content-button-ignored-ctype-list"> +<p> +content-button を表示しない content-type を要素とする list. +</defvar> + + +<h2> content-header +<node> content-header +<p> +<concept name="content-header"> はある part の header を表示する部分で +す。しかし、全ての part の content-header を表示するのは鬱陶しいので、 +以下のような mechanism によって表示するかしないかを決めています。 +<p> +ある part の reversed-content-number を関数 +<code>mime-viewer/header-visible-p</code> に与えた時の返り値が +<code>t</code> になる場合、その part の content-header が表示されます。 +<p> +この判定関数は、一番上の part でなく、その part の親の <dref +file="tm-ja" node="content-type"> が変数 +<code>mime-viewer/childrens-header-showing-Content-Type-list</code> で +指定されている場合に <code>t</code> を返します。 +<p> +この条件を変えたい場合は、この関数を再定義して下さい。但し、標準では、 +変数 +<code>mime-viewer/childrens-header-showing-Content-Type-list</code> を +参照しますが、再定義した場合、この変数の有効性は保証されないので注意し +て下さい。 +<p> +content-header が表示される場合、content-header は <concept +name="content-header-filter"> と呼ばれる program によって整形されます。 +content-header-filter は <a +node="raw-article-buffer">raw-article-buffer</a> の major-mode を key +として変数 <code>mime-viewer/content-header-filter-alist</code> から探 +されます。もし、content-header-filter が見つからなかった場合、関数 +<code>mime-viewer/default-content-header-filter</code> が呼ばれます。 +<p> + +<defvar name="mime-viewer/childrens-header-showing-Content-Type-list"> +<p> +ある part の子に当たる content の content-header を表示すべき +Content-Type を収めた list. 既定値は <code>"message/rfc822"</code> で +ある。 +<p> +この変数は関数 <code>mime-viewer/header-visible-p</code> によって参照 +される。 +</defvar> + + +<defun name="mime-viewer/header-visible-p"> +<args> rcnum cinfo <opts> ctype +<p> +content-info <var>cinfo</var> 中の reversed-content-number が +<var>rcnum</var> である part の header が表示される場合、 +<code>t</code> を返す。その part の content-type があらかじめわかって +いる場合、<var>ctype</var> に引数として渡すことができる。 +</defun> + + +<defvar name="mime-viewer/content-header-filter-alist"> +<p> +raw-article-buffer の major-mode を key とした連想リストで、値部には +content-header-filter が入っている。 +</defvar> + + +<defun name="mime-viewer/default-content-header-filter"> +<p> +ある part の content-header を表示すべき時、変数 +<code>mime-viewer/content-header-filter-alist</code> の中に +content-header-filter が見つからなかった場合に呼び出される。 +<p> +変数 <code>mime-viewer/ignored-field-regexp</code> を参照する。 +</defun> + + +<defvar name="mime-viewer/ignored-field-list"> +<p> +content-header を表示する時に、表示しない field を指定する。 +<p> +正規表現の list になっており、この値を元に変数 +<code>mime-viewer/ignored-field-regexp</code> が作られる。 +<p> +この変数は直接操作せず、関数 <code>tm:add-fields</code> や +<code>tm:delete-fields</code> を使って操作する。 +</defvar> + + +<h2> content-body +<node> content-body +<p> +<concept name="content-body"> は part の内容を表示する部分です。 +<p> +全ての part の内容を表示できるとは限らないし、また、表示したくない +part も存在するので、以下のような方法で表示するかしないかを決めていま +す。 +<p> +ある part の content-body を表示するかどうかは、関数 +<code>mime-viewer/body-visible-p</code> が <code>t</code> になるかどう +かで決まります。標準では、ある part の content-type が変数 +<code>mime-viewer/default-showing-Content-Type-list</code> に設定され +ている時に表示されます。 +<p> +ある part の content-body が表示される時、preview buffer には part の +内容を <concept name="content-filter"> と呼ばれる program によって整形 +されたものが表示されます。呼ばれる content-filter は <a +node="raw-article-buffer">raw-article-buffer</a> の major-mode を key +として変数 <code>mime-viewer/content-filter-alist</code> から探されま +す。もし、この変数に登録されていなかった場合、関数 +<code>mime-viewer/default-content-filter</code> が呼ばれます。 + + +<defvar name="mime-viewer/default-showing-Content-Type-list"> +<p> +content-body を表示すべき content-type を要素とする list. +</defvar> + + +<defun name="mime-viewer/body-visible-p"> +<args> rcnum cinfo <opts> ctype +<p> +reversed-content-number が <var>rcnum</var> である part が表示される場 +合、<code>t</code> を返す。その part の content-type があらかじめわかっ +ている場合、<var>ctype</var> に引数として渡すことができる。 +</defun> + + +<defvar name="mime-viewer/content-filter-alist"> +<p> +raw-article-buffer の major-mode を key とした連想リストで、値部には +content-filter が入っている。 +</defvar> + + +<defun name="mime-viewer/default-content-filter"> +<args> rcnum cinfo ctype params subj +<p> +ある part の content-body を表示すべき時、変数 +<code>mime-viewer/content-filter-alist</code> の中に content-filter が +見つからなかった場合に呼び出される。 +<p> +標準では何もしない。 +</defun> + + + +<h2> content-separator +<node> content-separator +<p> +<concept name="content-separator"> は part の一番最後に part 間の境目 +を明らかにするために表示されます。 +<p> +content-separator は関数 +<code>mime-viewer/default-content-separator</code>によって表示されます。 +標準では、content-header も content-body も表示されない場合のみ、改行 +を表示します。 +<p> +content-separator の設定を変更したい場合は、この関数を再定義して下さい。 +<p> + +<defun name="mime-viewer/default-content-separator"> +<args> rcnum cinfo ctype params subj +<p> +content-number が <var>cnum</var> である part の content-separator を +表示する。標準では、content-header も content-body も表示されない場合 +のみ、改行を表示する。 +</defun> + + +<h1> mime/viewer-mode での操作 +<node> mime/viewer-mode +<p> +mime/viewer-mode には以下の機能があります。 +<p> +<kl> +<kt>u +<kd> +上の part に戻る(message の一番上の part でこれを行なうと Summary +mode に戻る (*1)) +</kd> +<kt>p<kd>前の part に移動する +</kd> +<kt>n<kd>次の part に移動する +</kd> +<kt>SPC<kd>scroll up する +</kd> +<kt>M-SPC<kd>scroll down する +</kd> +<kt>DEL<kd>scroll down する +</kd> +<kt>RET<kd>次の行に移動する +</kd> +<kt>M-RET<kd>前の行に移動する +</kd> +<kt>M-RET<kd>前の行に移動する +</kd> +<kt><<kd>message の先頭に移動する +</kd> +<kt>><kd>message の末尾に移動する +</kd> +<kt>v<kd>part を再生する (*2) +</kd> +<kt>e<kd>part から file を取り出す (*2) +</kd> +<kt>C-c C-p<kd>part を印刷する (*2) +</kd> +<kt>f<kd>message 中の X-Face を表示する +</kd> +<kt>mouse-button-2 +<kd> +preview-buffer 中の mouse button を起動する +<p> +content-button を押せば、その part が再生される(*2) +<p> +URL-button を押せば、その WWW browser が起動される +</kd> +</kl> +<p> +<memo title="注意"> +<p> +(*1) tm-MUA で tm-view の設定をしていない場合、Summary mode には戻りま +せん。 +<p> +(*2) 実際の動作は対応する method に依ります。 +</memo> + + +<h1> 再生処理の実現 +<node> method +<p> +<code>mime/viewer-mode</code> では、各 part に対して、play +(<kbd>v</kbd>), extract (<kbd>e</kbd>), print (<kbd>C-c C-p</kbd>) と +いう操作を行なうことができます。こうした操作のことを『(part に対する) +decode 操作』と呼ぶことにします。また、play, extract, print という +decode 操作の種類のことを <concept name="decoding-mode"> と呼ぶことに +します。 +<p> +decode 操作が行なわれた時、その part の <dref file="tm-ja" +node="content-type"> などの条件やその場の環境に応じて実際にその操作を +実行する手続きが呼ばれます。この手続きのことを <concept name="method"> +と呼びます。 +<p> +method には、Emacs Lisp で書かれた <concept name="内部 method"> と、外 +部 program で実現された <concept name="外部 method"> があります。内部 +method は Emacs の機能を使ってきめ細かい処理を行なうことができます。外 +部 method は非同期プロセス呼び出しを使って実現されているので、実行中待 +たされずにすみます。このため、静止画や動画などの巨大な data を再生する +のに良いでしょう。 + + +<h2> part の再生に関する条件の設定 +<node> decoding-condition +<p> +tm-view は decode 操作が行なわれると、変数 +<code>mime/content-decoding-condition</code> からその時の条件に合致し +た method を捜し出して、それを呼び出します。 +<p> +変数 <code>mime/content-decoding-condition</code> は +<p> +<lisp> + (条件1 条件2 ...) +</lisp> +<p> +<noindent> +という形をした list で、各条件は +<p> +<lisp> + ((field-type_1 . value_1) + (field-type_2 . value_2) + ...) +</lisp> +<p> +<noindent> +という形の連想 list になっています。 +<p> +例えば、<dref file="tm-ja" node="text/plain"> の時、tm-plain を起動す +る時、 +<p> +<lisp> + ((type . "text/plain") + (method "tm-plain" nil 'file 'type 'encoding 'mode 'name)) +</lisp> +<p> +<noindent> +という条件を書きます。この method の value 部の書式については後で詳し +く述べます。 +<p> +この条件は <dref file="tm-ja" node="content-type"> が text/plain であ +る part なら全ての decoding-mode で有効です。しかし、 +<p> +<lisp> + ((type . "text/plain") + (method "tm-plain" nil 'file 'type 'encoding 'mode 'name) + (mode . "play")) +</lisp> +<p> +<noindent> +なら、play mode の時しか有効になりません。 +<p> +逆に、 +<p> +<lisp> + ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file) + (mode . "play")) +</lisp> +<p> +<noindent> +なら、全ての content-type の play mode で有効になります。 +<p> +こうして各条件を前から見て行き、最初に有効になった条件が実行されます。 + + +<h3> method の値部の書式 +<node> method value +<p> +decode-condition の method field は +<p> +<lisp> + (method . SYMBOL) +</lisp> +<p> +<noindent> +か +<p> +<lisp> + (method 文字列 FLAG 引数1 引数2 ...) +</lisp> +<p> +<noindent> +という形をしています。 +<p> +前者は内部 method を指定するための形式で、decode 操作が行なわれた時、 +SYMBOL という関数が関数呼び出しによって内部 method として呼び出されま +す。 +<p> +後者は外部 method を指定するための形式で、decode 操作が行なわれた時、 +文字列で指定された外部 program が非同期プロセス呼び出しによって外部 +method として呼び出されます。 +<p> +外部 method を指定する場合の method field の書式は以下の通りです。 +<p> +<dl> +<dt>文字列 +<dd>外部 method の名前 +</dd> +<dt>FLAG +<dd><code>t</code> なら content-header も外部 method に渡す。 +<p> +<code>nil</code> なら content-body のみを渡す。 +</dd> +<dt>引数列 +<dd>外部 method の引数 +</dd> +</dl> +<p> +また、外部 method の引数は次のような形式で書きます。 +<p> +<dl> +<dt>文字列 +<dd>その文字列を渡す +</dd> +<dt>'SYMBOL +<dd>SYMBOL を key とした decoding-condition の値を渡す +</dd> +<dt>'文字列 +<dd>文字列を key とした decoding-condition の値を渡す +</dd> +</dl> +<p> +'SYMBOL で指定できるものには、 +<p> +<dl> +<dt>'file +<dd>part の情報を渡すための file 名 +</dd> +<dt>'type +<dd>Content-Type field の content-type/subtype +</dd> +<dt>'encoding +<dd>Content-Transfer-Encoding field の field body +</dd> +<dt>'mode +<dd>decoding-mode +</dd> +<dt>'name +<dd>file に落す場合の file 名 +</dd> +</dl> + +<noindent> +などがあり、<code>'文字列</code> では Content-Type field の parameter +の値が指定できます。 + + +<h3> decoding-condition の例 +<node> Example of decoding-condition +<p> +以下に decoding-condition の設定例を示します。 + +<lisp> +(defvar mime/content-decoding-condition + '(((type . "text/plain") + (method "tm-plain" nil 'file 'type 'encoding 'mode 'name)) + ((type . "text/x-latex") + (method "tm-latex" nil 'file 'type 'encoding 'mode 'name)) + ((type . "audio/basic") + (method "tm-au" nil 'file 'type 'encoding 'mode 'name)) + ((type . "image/gif") + (method "tm-image" nil 'file 'type 'encoding 'mode 'name)) + ((type . "image/jpeg") + (method "tm-image" nil 'file 'type 'encoding 'mode 'name)) + ((type . "image/tiff") + (method "tm-image" nil 'file 'type 'encoding 'mode 'name)) + ((type . "image/x-tiff") + (method "tm-image" nil 'file 'type 'encoding 'mode 'name)) + ((type . "image/x-xbm") + (method "tm-image" nil 'file 'type 'encoding 'mode 'name)) + ((type . "image/x-pic") + (method "tm-image" nil 'file 'type 'encoding 'mode 'name)) + ((type . "video/mpeg")` + (method "tm-mpeg" nil 'file 'type 'encoding 'mode 'name)) + ((type . "application/octet-stream") + (method "tm-file" nil 'file 'type 'encoding 'mode 'name)) + ((type . "message/partial") + (method . mime/decode-message/partial-region)) + ((method "metamail" t + "-m" "tm" "-x" "-d" "-z" "-e" 'file)(mode . "play")) + )) +</lisp> + +<p> +例えば、「全部 metamail 使うんや」という場合、 + +<lisp> +(setq mime/content-decoding-condition + '( + ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file)) + )) +</lisp> + +<noindent> +とすれば OK です。 +<p> +工夫すれば、かなり複雑な条件が書けるでしょう。 +<p> +以下に、decoding-condition を設定するための有用な関数を紹介します。 + + +<defun name="set-atype"> +<args> symbol alist +<p> +<var>symbol</var> に条件 <var>alist</var> を追加します。 + +<memo title="例"> +<p> +<lisp> +(set-atype 'mime/content-decoding-condition + '((type . "message/external-body") + ("access-type" . "anon-ftp") + (method . mime/decode-message/external-ftp) + )) +</lisp> +</memo> +</defun> + + +<h2> 環境変数 +<node> environment variables +<p> +以下に tm-view の標準 method が参照する環境変数を示します。 + +<vl> +<dt>TM_TMP_DIR +<dd> +一時的に作成される file や file 出力する場合の default の出力先として +用いられる directory を指定する。省略された場合、<file>/tmp/</file> が +用いられる。 +</dd> +<dt>VIDEO_DITHER +<dd> +mpeg_play での dither のかけ方を指定する。既定値は `gray'. +</dd> +<dt>TM_WWW_BROWSER +<dd> +WWW browser を指定する。既定値は `netscape'. +</vl> + + +<h1> raw-article-buffer と preview-buffer +<node> Two buffers for an article +<p> +tm-view は、MIME 処理を行なう前の生の message が入っている <concept +name="raw-article-buffer"> とその内容を user に簡潔に表示し、user が操 +作するための <concept name="preview-buffer"> という2つの buffer を管 +理します。raw-article-buffer の major-mode はもともとの MUA の article +表示用の major-mode であり、preview-buffer の major-mode は <a +node="mime/viewer-mode"><code>mime/viewer-mode</code></a> となります。 +<p> +<code>mime/viewer-mode</code> を実行すると、tm-view はまず +raw-article-buffer の内容を解析し、その message の構造を +raw-article-buffer の buffer local 変数 +<code>mime::article/content-info</code> に記録します。 +<p> +次に、この結果を元に raw-article-buffer に対応する preview-buffer を作 +ります。この際、content-type に応じて、part 単位で header や body を加 +工することができます。この header を加工するプログラムを <a +node="content-header"><concept name="header-filter"></a>, body を加工 +するプログラムを <a node="content-body"><concept +name="content-filter"></a> と呼び、これらを総称して <concept +name="filter"> と呼びます。 +<p> +preview-buffer を作成する時に、message の表示上の構造を記録した +preview-buffer の buffer local 変数 +<code>mime::preview/content-list</code> が作られます。tm-view は +raw-article-buffer 上の <code>mime::article/content-info</code> と +preview-buffer 上の <code>mime::preview/content-list</code> を用いて +message を管理します。 +<p> +<memo title="注意"> +この説明書では、Content-Type field の content-type/subtype のことを称 +して ``content-type'' と呼びます。 +</memo> + + +<h2> raw-article-buffer の buffer local 変数 +<node> raw-article-buffer +<p> +<define type="Structure" name="mime::content-info"> +<args> rcnum point-min point-max type parameters encoding children +<p> +raw-article-buffer における MIME part に関する情報を格納するための構造 +体。単に <concept name="content-info"> とも呼ぶ。 +<p> +この構造体を参照するには、<code>mime::content-info/スロット名</code> +という content-info を引数にとる関数を用いる。 +<p> +この構造体のスロットは以下の通りである: + +<vl> +<dt>rcnum<dd>``reversed content-number'' (list) +</dd> +<dt>point-min<dd>raw-article-buffer における先頭 point +</dd> +<dt>point-max<dd>raw-article-buffer における末尾 point +</dd> +<dt>type<dd>content-type/sub-type(文字列、または、nil) +</dd> +<dt>parameters<dd>Content-Type field の parameter (連想 list) +</dd> +<dt>encoding<dd>Content-Transfer-Encoding(文字列、または、nil) +</dd> +<dt>children<dd>この part に含まれる part(content-info の list) +</dd> +</vl> +<p> +ある part が multipart もしくは message/rfc822 などの別の part を含む +ような part であった場合、<var>children</var> に別の part の +content-info が含まれる事によって、content-info は木構造になる。 +</define> + +<defvar name="mime::article/content-info"> +<p> +raw-article-buffer を MIME message として解析した結果 (content-info) +</defvar> + +<defvar name="mime::article/preview-buffer"> +<p> +raw-article-buffer に対応する preview-buffer. +</defvar> + +<defun name="mime-article/point-content-number"> +<args> point <opts> cinfo +<p> +content-info <var>cinfo</var> で管理される領域において、 +<var>point</var> に対応する content-number を返す。 +<p> +<var>cinfo</var> が省略された場合は、 +<code>mime::article/content-info</code>が用いられる。 +</defun> + +<defun name="mime-article/rcnum-to-cinfo"> +<args> rcnum <opts> cinfo +<p> +content-info <var>cinfo</var> で管理される領域において、 +reversed-content-number <var>rcnum</var> に対応する content-info を返 +す。 +<p> +<var>cinfo</var> が省略された場合は、 +<code>mime::article/content-info</code> が用いられる。 +</defun> + +<defun name="mime-article/cnum-to-cinfo"> +<args> rcnum <opts> cinfo +<p> +content-info <var>cinfo</var> で管理される領域において、content-number +<var>rcnum</var> に対応する content-info を返す。 +<p> +<var>cinfo</var> が省略された場合は、 +<code>mime::article/content-info</code> が用いられる。 +</defun> + +<defun name="mime/flatten-content-info"> +<args> <opts> cinfo +<p> +content-info <var>cinfo</var> 中に納められた全 part の content-info の +list を返す。 +<p> +<var>cinfo</var> が省略された場合は、 +<code>mime::article/content-info</code> が用いられる。 +</defun> + + +<h2> preview-buffer の buffer local 変数 +<node> preview-buffer +<p> +<defvar name="mime::preview/mother-buffer"> +<p> +この preview-buffer の親に相当する buffer. +</defvar> + +<define type="Structure" name="mime::preview-content-info"> +<args> point-min point-max buffer content-info +<p> +preview-buffer における MIME content に関する情報を格納するための構造 +体。単に <concept name="preview-content-info"> とも呼ぶ。 +<p> +この構造体を参照するには、<code>mime::content-info/スロット名</code> +というcontent-info を引数にとる関数を用いる。 +<p> +この構造体のスロットは以下の通りである。 + +<vl> +<dt>point-min<dd>preview-buffer における先頭 point +</dd> +<dt> point-max<dd>preview-buffer における末尾 point +</dd> +<dt>buffer<dd>この part に対応する raw-article-buffer +</dd> +<dt>content-info<dd>この part に対応する content-info +</dd> +</vl> +</define> + +<defvar name="mime::preview/content-list"> +<p> +この preview-buffer の構造をあらわす preview-content-info の list. +</defvar> +<p> +<defvar name="mime::preview/article-buffer"> +<p> +この preview-buffer に対応する raw-article-buffer. +</defvar> + +<defvar name="mime::preview/original-major-mode"> +<p> +この preview-buffer のもとになった buffer の major-mode. +</defvar> + +<defvar name="mime::preview/original-window-configuration"> +<p> +<code>mime/viewer-mode</code> を実行して、この preview-buffer 作る直前 +の window-configuration. +</defvar> + +<defun name="mime-preview/point-pcinfo"> +<args> point <opts> pcl +<p> +preview-content-info <var>pcl</var> で管理される preview-buffer 中の領 +域において、<var>point</var> に対応する part の preview-content-info +を返す。 +<p> +<var>cinfo</var> が省略された場合は、 +<code>mime::preview/content-list</code> が用いられる。 +</defun> + + +<h1> MIME message の decode に関する関数 +<node> API +<p> +tm-view の提供する関数を各 <a file="tm-ja" node="MUA">MUA</a> に組み込 +む事によって、各 MUA に MIME 再生機能を付加する事ができます。 +<p> +tm-view が各 MUA に提供する関数は、MIME preview を行うための関数 +<code>mime/viewer-mode</code> と <dref file="tm-ja" +node="encoded-word"> を decode するための関数群です。 + + +<h2> MIME preview に関する関数 +<node> API about MIME preview +<p> + +<define type="Command" name="mime/viewer-mode"> +<opts> mother ctl encoding ibuf obuf mother-keymap +<p> +<var>ibuf</var> を MIME message として解析して、その内容を閲覧するため +の preview-buffer を <var>obuf</var> に作成し、 +<a node="mime/viewer-mode"> +<code>mime/viewer-mode</code> +</a> +に入ります。 +<p> +<var>ibuf</var> が省略された場合、current buffer を用います。 +<p> +<var>mother</var> は、解析の対象とする raw-article-buffer が +message/partial 形式の分割された message を結合して作成した場合などに +おける元の buffer を指定するために使います。 +<p> +<var>ctl</var> は <dref file="tm-ja" node="Content-Type field"> の +field-body を <code>mime/Content-Type</code> の出力正式にしたものを入 +れます。この引数がある場合、raw-article-buffer の Content-Type field +よりもこの引数を優先します。 +<p> +<var>encoding</var> は Content-Transfer-Encoding field の field-body +を入れます。この引数がある場合、raw-article-buffer の +Content-Transfer-Encoding field よりもこの引数を優先します。 +<p> +<var>mother-keymap</var> が指定された場合、 +<code>mime/viewer-mode</code> の keymap はこの keymap に加えたものとな +ります。 +</define> + + +<h2> encoded-word の復元 +<node> encoded-word decoding +<p> +tm-view は RFC 1522 で規定された <dref file="tm-ja" +node="encoded-word"> を decode するための関数を持っています。 +<p> +<memo> +旧 <file>tiny-mime.el</file> にあった RFC 1522 encoded-word を decode +するための関数群は tm-view に引き継がれました。 +</memo> + + +<define type="Command" name="mime/decode-message-header"> +<p> +current buffer の message header 中の encoded-word を decode します。 +<p> +壊れていたり、不正だったり、decode できない <a file="tm-ja" node="MIME +charset">MIME charset</a> が用いられている encoded-word は decode され +ずそのまま残されます。 +</define> + + +<define type="Command" name="mime-eword/decode-region"> +<args> start end <opts> unfolding must-unfold +<p> +<var>start</var> と <var>end</var> で囲まれた領域中の encoded-word を +decode します。 +<p> +壊れていたり、不正だったり、decode できない <a file="tm-ja" node="MIME +charset">MIME charset</a> が用いられている encoded-word は decode され +ずそのまま残されます。 +<p> +<var>unfolding</var> が non-nil の場合、折り返された field を +unfolding します。 +<p> +<var>must-fold</var> が non-nil の場合、encoded-word の decode 結果に +折り返し、もしくは、改行が含まれている場合、unfold し、改行を除きます。 +</define> + + +<defun name="mime-eword/decode-string"> +<args> string <opts> must-unfold +<p> +<var>string</var> 中の encoded-word を decode した文字列を返します。 +<p> +壊れていたり、不正だったり、decode できない <a file="tm-ja" node="MIME +charset">MIME charset</a> が用いられている encoded-word は decode され +ずそのまま出力されます。 +<p> +<var>string</var> が折り返されている場合、encoded-word を decode する +前に <var>string</var> は unfold されます。 +<p> +<var>must-fold</var> が non-nil の場合、encoded-word の decode 結果に +折り返し、もしくは、改行が含まれていても、それらは unfold され単体の改 +行文字も取り除かれます。 +</defun> + + +<h1> 概念索引 +<node> Concept Index + +<cindex> + + +<h1> 関数索引 +<node> Function Index + +<findex> + + +<h1> 変数索引 +<node> Variable Index + +<vindex> + +</body> diff --git a/doc/tm-view-ja.texi b/doc/tm-view-ja.texi new file mode 100644 index 0000000..cea98ac --- /dev/null +++ b/doc/tm-view-ja.texi @@ -0,0 +1,1040 @@ +\input texinfo.tex +@setfilename tm-view-ja.info +@settitle{tm-view 7.77 Reference Manual(日本語版)} +@titlepage +@title tm-view 7.77 Reference Manual(日本語版) +@author 守岡 知彦 <morioka@@jaist.ac.jp> +@subtitle 1996/10/11 +@end titlepage +@node Top, Introduction, (dir), (dir) +@top tm-view 7.77 Reference Manual(日本語版) + +@ifinfo + +This file documents tm-view 7.77, a MIME Viewer for GNU Emacs.@refill + +GNU Emacs 用の MIME Viewer である `tm-view' 7.77 について説明します。 +@end ifinfo + +@menu +* Introduction:: tm-view って何? +* MIME display:: mime/viewer-mode の画面構成 +* mime/viewer-mode:: mime/viewer-mode での操作 +* method:: 再生処理の実現 +* Two buffers for an article:: raw-article-buffer と preview-buffer +* API:: MIME message の decode に関する関数 +* Concept Index:: 概念索引 +* Function Index:: 関数索引 +* Variable Index:: 変数索引 +@end menu + +@node Introduction, MIME display, Top, Top +@chapter tm-view って何? + +tm-view は GNU Emacs で動作する汎用的な MIME viewer です。@refill + +tm-view は @code{mime/viewer-mode} (@ref{mime/viewer-mode}) という MIME +message を見るための major-mode を MUA (@ref{(tm-ja)MUA}) に対して提供し +ます。MUA の設計者はこの mode を利用することでその MUA に MIME 機能を付 +加することができます。@refill + +tm-view は MIME message を閲覧するための user interface の核であり、その +上で各 content-type(@ref{(tm-ja)content-type}) を扱うための +@strong{method}@cindex{method} (@ref{method}) と呼ばれるプログラムを動作 +させます。また、MIME message の表示の仕方を決める +@strong{filter}@cindex{filter} (@ref{Two buffers for an article}) と呼ば +れるプログラムを起動時に呼び出します。method と filter を tm-view に組み +込む事によって、@code{mime/viewer-mode} でさまざまな MIME content-type +を扱う事ができます。 + + +@node MIME display, mime/viewer-mode, Introduction, Top +@chapter mime/viewer-mode の画面構成 + +mime/viewer-mode (@ref{mime/viewer-mode}) では各 part に対して@refill + +@example + [content-button] + (content-header) + + (content-body) + (content-separator) +@end example + +@noindent +という情報を表示します。これらは条件に従って design を変更したり、表示 +を抑制することができます。 + +以下に、表示例を示します。 + + +@example +From: morioka@@jaist.ac.jp (守岡 知彦 / MORIOKA Tomohiko) +Subject: Re: 質問? +Newsgroups: zxr.message.mime +Date: 22 Oct 93 11:02:44 +Mime-Version: 1.0 +Organization: Japan Advanced Institute of Science and Technology, + Ishikawa, Japan + +[1 (text/plain)] + MIME-Edit mode における、MIME message の作り方。 + + C-c C-x ? を押すと help が出てくる。 + +C-c C-x C-t insert a text message. +C-c C-x TAB insert a (binary) file. +C-c C-x C-e insert a reference to external body. +C-c C-x C-v insert a voice message. +C-c C-x C-y insert a mail or news message. +C-c C-x RET insert a mail message. +C-c C-x C-s insert a signature file at end. +C-c C-x t insert a new MIME tag. +C-c C-x a enclose as multipart/alternative. +C-c C-x p enclose as multipart/parallel. +C-c C-x m enclose as multipart/mixed. +C-c C-x d enclose as multipart/digest. +C-c C-x s enclose as PGP signed. +C-c C-x e enclose as PGP encrypted. +C-c C-x C-k insert PGP public key. +C-c C-x C-p preview editing MIME message. +... + +って訳で、C-c C-x C-i を押して、挿入したい binary file を指定します。 + + binary file の MIME encoding には、普通、Base64 を指定します。 + +[2 (image/gif)] + +[3 (text/plain)] + + こんな風に、絵入り message のでき上がり。 + +〓〓〓〓〓〓〓〓〓〓〓 ロシアン・ティーを一杯。 〓〓〓〓〓〓〓〓〓〓〓 +〓〓〓〓〓 ☆ ジャムではなくマーマレードでもなく蜂蜜で ☆ 〓〓〓〓〓 +〓〓〓〓〓 МОРいОКА ТОМОХИКО 〓〓〓〓〓 +〓〓〓〓〓〓〓 Internet E-mail: <morioka@@jaist.ac.jp> 〓〓〓〓〓〓〓 +@end example + + + +@menu +* content-button:: +* content-header:: +* content-body:: +* content-separator:: +@end menu + +@node content-button, content-header, MIME display, MIME display +@section content-button + +@strong{content-button}@cindex{content-button} は part の先頭にあって、 +その part に関する大まかな情報を表示する部分です。@refill + +標準では + +@example + [1.3 test (text/plain)] +@end example + +@noindent +のような感じに表示されます。 + +最初の数字は message 中のこの part の位置を節番号のように表したもので、 +@strong{content-number}@cindex{content-number} と呼びます。@refill + +2番目の文字列は表題を表します。この情報は、 + +@enumerate +@item +Content-Type field(@ref{(tm-ja)Content-Type field}) の name paramater も +しくは x-name parameter に書かれた file 名 +@item +Content-Description field(@ref{(tm-ja)Content-Description field}) もしくは +Subject field に書かれた表題 +@item + uuencode の場合の file 名 +@end enumerate + +@noindent +から作ります。どれも存在しない場合は空白が表示されます。 + +3番目の括弧の中の情報はその part の content-type/subtype を表します。非 +MIME part の場合、@code{nil} が表示されます。@refill + +この content-button は content-header (@ref{content-header}), +content-body (@ref{content-body}) を表示しない場合、icon のような役割を +果たします。例えば、 + +@example + [2 (image/gif)] +@end example + +@noindent +の上で @kbd{v} を押せばここに入っている絵が表示されます。 + +また、mouse 操作が可能な場合、content-button を第2ボタン(3 button +mouse の場合、中央のボタン)で押せば、同様にその絵が表示されます。 +(@ref{mime/viewer-mode})@refill + +ところで、content-button を表示するのは鬱陶しい場合があるので、 +content-button の表示を条件によって抑制することができます。 + + +@defvar mime-viewer/content-button-ignored-ctype-list + +content-button を表示しない content-type を要素とする list. +@end defvar + + + +@node content-header, content-body, content-button, MIME display +@section content-header + +@strong{content-header}@cindex{content-header} はある part の header を +表示する部分です。しかし、全ての part の content-header を表示するのは鬱 +陶しいので、以下のような mechanism によって表示するかしないかを決めてい +ます。@refill + +ある part の reversed-content-number を関数 +@code{mime-viewer/header-visible-p} に与えた時の返り値が @code{t} になる +場合、その part の content-header が表示されます。@refill + +この判定関数は、一番上の part でなく、その part の親の +content-type(@ref{(tm-ja)content-type}) が変数 +@code{mime-viewer/childrens-header-showing-Content-Type-list} で指定され +ている場合に @code{t} を返します。@refill + +この条件を変えたい場合は、この関数を再定義して下さい。但し、標準では、変 +数 @code{mime-viewer/childrens-header-showing-Content-Type-list} を参照 +しますが、再定義した場合、この変数の有効性は保証されないので注意して下さ +い。@refill + +content-header が表示される場合、content-header は +@strong{content-header-filter}@cindex{content-header-filter} と呼ばれる +program によって整形されます。content-header-filter は +raw-article-buffer (@ref{raw-article-buffer}) の major-mode を key とし +て変数 @code{mime-viewer/content-header-filter-alist} から探されます。も +し、content-header-filter が見つからなかった場合、関数 +@code{mime-viewer/default-content-header-filter} が呼ばれます。@refill + + +@defvar mime-viewer/childrens-header-showing-Content-Type-list + +ある part の子に当たる content の content-header を表示すべき +Content-Type を収めた list. 既定値は @code{"message/rfc822"} である。 +@refill + +この変数は関数 @code{mime-viewer/header-visible-p} によって参照される。 +@end defvar + + + +@defun mime-viewer/header-visible-p rcnum cinfo &optional ctype + +content-info @var{cinfo} 中の reversed-content-number が @var{rcnum} で +ある part の header が表示される場合、@code{t} を返す。その part の +content-type があらかじめわかっている場合、@var{ctype} に引数として渡す +ことができる。 +@end defun + + + +@defvar mime-viewer/content-header-filter-alist + +raw-article-buffer の major-mode を key とした連想リストで、値部には +content-header-filter が入っている。 +@end defvar + + + +@defun mime-viewer/default-content-header-filter + +ある part の content-header を表示すべき時、変数 +@code{mime-viewer/content-header-filter-alist} の中に +content-header-filter が見つからなかった場合に呼び出される。@refill + +変数 @code{mime-viewer/ignored-field-regexp} を参照する。 +@end defun + + + +@defvar mime-viewer/ignored-field-list + +content-header を表示する時に、表示しない field を指定する。@refill + +正規表現の list になっており、この値を元に変数 +@code{mime-viewer/ignored-field-regexp} が作られる。@refill + +この変数は直接操作せず、関数 @code{tm:add-fields} や +@code{tm:delete-fields} を使って操作する。 +@end defvar + + + +@node content-body, content-separator, content-header, MIME display +@section content-body + +@strong{content-body}@cindex{content-body} は part の内容を表示する部分 +です。@refill + +全ての part の内容を表示できるとは限らないし、また、表示したくない part +も存在するので、以下のような方法で表示するかしないかを決めています。 +@refill + +ある part の content-body を表示するかどうかは、関数 +@code{mime-viewer/body-visible-p} が @code{t} になるかどうかで決まります。 +標準では、ある part の content-type が変数 +@code{mime-viewer/default-showing-Content-Type-list} に設定されている時 +に表示されます。@refill + +ある part の content-body が表示される時、preview buffer には part の内 +容を @strong{content-filter}@cindex{content-filter} と呼ばれる program +によって整形されたものが表示されます。呼ばれる content-filter は +raw-article-buffer (@ref{raw-article-buffer}) の major-mode を key とし +て変数 @code{mime-viewer/content-filter-alist} から探されます。もし、こ +の変数に登録されていなかった場合、関数 +@code{mime-viewer/default-content-filter} が呼ばれます。 + + +@defvar mime-viewer/default-showing-Content-Type-list + +content-body を表示すべき content-type を要素とする list. +@end defvar + + + +@defun mime-viewer/body-visible-p rcnum cinfo &optional ctype + +reversed-content-number が @var{rcnum} である part が表示される場合、 +@code{t} を返す。その part の content-type があらかじめわかっている場合、 +@var{ctype} に引数として渡すことができる。 +@end defun + + + +@defvar mime-viewer/content-filter-alist + +raw-article-buffer の major-mode を key とした連想リストで、値部には +content-filter が入っている。 +@end defvar + + + +@defun mime-viewer/default-content-filter rcnum cinfo ctype params subj + +ある part の content-body を表示すべき時、変数 +@code{mime-viewer/content-filter-alist} の中に content-filter が見つから +なかった場合に呼び出される。@refill + +標準では何もしない。 +@end defun + + + + +@node content-separator, , content-body, MIME display +@section content-separator + +@strong{content-separator}@cindex{content-separator} は part の一番最後 +に part 間の境目を明らかにするために表示されます。@refill + +content-separator は関数 @code{mime-viewer/default-content-separator}に +よって表示されます。標準では、content-header も content-body も表示され +ない場合のみ、改行を表示します。@refill + +content-separator の設定を変更したい場合は、この関数を再定義して下さい。 +@refill + + +@defun mime-viewer/default-content-separator rcnum cinfo ctype params subj + +content-number が @var{cnum} である part の content-separator を表示する。 +標準では、content-header も content-body も表示されない場合のみ、改行を +表示する。 +@end defun + + + +@node mime/viewer-mode, method, MIME display, Top +@chapter mime/viewer-mode での操作 + +mime/viewer-mode には以下の機能があります。@refill + +@table @kbd +@item @key{u} +上の part に戻る(message の一番上の part でこれを行なうと Summary +mode に戻る (*1)) + +@item @key{p} +前の part に移動する + +@item @key{n} +次の part に移動する + +@item @key{SPC} +scroll up する + +@item @key{M-SPC} +scroll down する + +@item @key{DEL} +scroll down する + +@item @key{RET} +次の行に移動する + +@item @key{M-RET} +前の行に移動する + +@item @key{M-RET} +前の行に移動する + +@item @key{<} +message の先頭に移動する + +@item @key{>} +message の末尾に移動する + +@item @key{v} +part を再生する (*2) + +@item @key{e} +part から file を取り出す (*2) + +@item @key{C-c C-p} +part を印刷する (*2) + +@item @key{f} +message 中の X-Face を表示する + +@item @key{mouse-button-2} +preview-buffer 中の mouse button を起動する + +content-button を押せば、その part が再生される(*2)@refill + +URL-button を押せば、その WWW browser が起動される@refill + +@end table + +@noindent +@strong{[注意]} +@quotation + +(*1) tm-MUA で tm-view の設定をしていない場合、Summary mode には戻りませ +ん。@refill + +(*2) 実際の動作は対応する method に依ります。 +@end quotation + + + +@node method, Two buffers for an article, mime/viewer-mode, Top +@chapter 再生処理の実現 + +@code{mime/viewer-mode} では、各 part に対して、play (@kbd{v}), extract +(@kbd{e}), print (@kbd{C-c C-p}) という操作を行なうことができます。こう +した操作のことを『(part に対する)decode 操作』と呼ぶことにします。また、 +play, extract, print という decode 操作の種類のことを +@strong{decoding-mode}@cindex{decoding-mode} と呼ぶことにします。@refill + +decode 操作が行なわれた時、その part の +content-type(@ref{(tm-ja)content-type}) などの条件やその場の環境に応じて +実際にその操作を実行する手続きが呼ばれます。この手続きのことを +@strong{method}@cindex{method} と呼びます。@refill + +method には、Emacs Lisp で書かれた @strong{内部 method}@cindex{内部 method} と、外 +部 program で実現された @strong{外部 method}@cindex{外部 method} があります。内部 +method は Emacs の機能を使ってきめ細かい処理を行なうことができます。外 +部 method は非同期プロセス呼び出しを使って実現されているので、実行中待 +たされずにすみます。このため、静止画や動画などの巨大な data を再生する +のに良いでしょう。 + + +@menu +* decoding-condition:: part の再生に関する条件の設定 +* environment variables:: 環境変数 +@end menu + +@node decoding-condition, environment variables, method, method +@section part の再生に関する条件の設定 + +tm-view は decode 操作が行なわれると、変数 +@code{mime/content-decoding-condition} からその時の条件に合致した method +を捜し出して、それを呼び出します。@refill + +変数 @code{mime/content-decoding-condition} は@refill + +@lisp + (条件1 条件2 ...) +@end lisp + +@noindent +という形をした list で、各条件は + +@lisp + ((field-type_1 . value_1) + (field-type_2 . value_2) + ...) +@end lisp + +@noindent +という形の連想 list になっています。 + +例えば、text/plain(@ref{(tm-ja)text/plain}) の時、tm-plain を起動する時、 +@refill + +@lisp + ((type . "text/plain") + (method "tm-plain" nil 'file 'type 'encoding 'mode 'name)) +@end lisp + +@noindent +という条件を書きます。この method の value 部の書式については後で詳し +く述べます。 + +この条件は content-type(@ref{(tm-ja)content-type}) が text/plain である +part なら全ての decoding-mode で有効です。しかし、@refill + +@lisp + ((type . "text/plain") + (method "tm-plain" nil 'file 'type 'encoding 'mode 'name) + (mode . "play")) +@end lisp + +@noindent +なら、play mode の時しか有効になりません。 + +逆に、@refill + +@lisp + ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file) + (mode . "play")) +@end lisp + +@noindent +なら、全ての content-type の play mode で有効になります。 + +こうして各条件を前から見て行き、最初に有効になった条件が実行されます。 + + +@menu +* method value:: method の値部の書式 +* Example of decoding-condition:: decoding-condition の例 +@end menu + +@node method value, Example of decoding-condition, decoding-condition, decoding-condition +@subsection method の値部の書式 + +decode-condition の method field は@refill + +@lisp + (method . SYMBOL) +@end lisp + +@noindent +か + +@lisp + (method 文字列 FLAG 引数1 引数2 ...) +@end lisp + +@noindent +という形をしています。 + +前者は内部 method を指定するための形式で、decode 操作が行なわれた時、 +SYMBOL という関数が関数呼び出しによって内部 method として呼び出されます。 +@refill + +後者は外部 method を指定するための形式で、decode 操作が行なわれた時、文 +字列で指定された外部 program が非同期プロセス呼び出しによって外部 method +として呼び出されます。@refill + +外部 method を指定する場合の method field の書式は以下の通りです。 +@refill + +@table @samp +@item 文字列 +外部 method の名前 + +@item FLAG +@code{t} なら content-header も外部 method に渡す。 + +@code{nil} なら content-body のみを渡す。@refill + +@item 引数列 +外部 method の引数 + +@end table + +また、外部 method の引数は次のような形式で書きます。@refill + +@table @samp +@item 文字列 +その文字列を渡す + +@item 'SYMBOL +SYMBOL を key とした decoding-condition の値を渡す + +@item '文字列 +文字列を key とした decoding-condition の値を渡す + +@end table + +'SYMBOL で指定できるものには、@refill + +@table @samp +@item 'file +part の情報を渡すための file 名 + +@item 'type +Content-Type field の content-type/subtype + +@item 'encoding +Content-Transfer-Encoding field の field body + +@item 'mode +decoding-mode + +@item 'name +file に落す場合の file 名 + +@end table + +@noindent +などがあり、@code{'文字列} では Content-Type field の parameter +の値が指定できます。 + + +@node Example of decoding-condition, , method value, decoding-condition +@subsection decoding-condition の例 + +以下に decoding-condition の設定例を示します。 + +@lisp +(defvar mime/content-decoding-condition + '(((type . "text/plain") + (method "tm-plain" nil 'file 'type 'encoding 'mode 'name)) + ((type . "text/x-latex") + (method "tm-latex" nil 'file 'type 'encoding 'mode 'name)) + ((type . "audio/basic") + (method "tm-au" nil 'file 'type 'encoding 'mode 'name)) + ((type . "image/gif") + (method "tm-image" nil 'file 'type 'encoding 'mode 'name)) + ((type . "image/jpeg") + (method "tm-image" nil 'file 'type 'encoding 'mode 'name)) + ((type . "image/tiff") + (method "tm-image" nil 'file 'type 'encoding 'mode 'name)) + ((type . "image/x-tiff") + (method "tm-image" nil 'file 'type 'encoding 'mode 'name)) + ((type . "image/x-xbm") + (method "tm-image" nil 'file 'type 'encoding 'mode 'name)) + ((type . "image/x-pic") + (method "tm-image" nil 'file 'type 'encoding 'mode 'name)) + ((type . "video/mpeg")` + (method "tm-mpeg" nil 'file 'type 'encoding 'mode 'name)) + ((type . "application/octet-stream") + (method "tm-file" nil 'file 'type 'encoding 'mode 'name)) + ((type . "message/partial") + (method . mime/decode-message/partial-region)) + ((method "metamail" t + "-m" "tm" "-x" "-d" "-z" "-e" 'file)(mode . "play")) + )) +@end lisp + + +例えば、「全部 metamail 使うんや」という場合、 + +@lisp +(setq mime/content-decoding-condition + '( + ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file)) + )) +@end lisp + +@noindent +とすれば OK です。 + +工夫すれば、かなり複雑な条件が書けるでしょう。@refill + +以下に、decoding-condition を設定するための有用な関数を紹介します。 + + +@defun set-atype symbol alist + +@var{symbol} に条件 @var{alist} を追加します。 + +@noindent +@strong{[例]} +@quotation + +@lisp +(set-atype 'mime/content-decoding-condition + '((type . "message/external-body") + ("access-type" . "anon-ftp") + (method . mime/decode-message/external-ftp) + )) +@end lisp +@end quotation +@end defun + + + +@node environment variables, , decoding-condition, method +@section 環境変数 + +以下に tm-view の標準 method が参照する環境変数を示します。 + +@table @var +@item TM_TMP_DIR +一時的に作成される file や file 出力する場合の default の出力先として +用いられる directory を指定する。省略された場合、@file{/tmp/} が +用いられる。 + +@item VIDEO_DITHER +mpeg_play での dither のかけ方を指定する。既定値は `gray'. + +@item TM_WWW_BROWSER +WWW browser を指定する。既定値は `netscape'. + +@end table + + + +@node Two buffers for an article, API, method, Top +@chapter raw-article-buffer と preview-buffer + +tm-view は、MIME 処理を行なう前の生の message が入っている +@strong{raw-article-buffer}@cindex{raw-article-buffer} とその内容を user +に簡潔に表示し、user が操作するための +@strong{preview-buffer}@cindex{preview-buffer} という2つの buffer を管 +理します。raw-article-buffer の major-mode はもともとの MUA の article +表示用の major-mode であり、preview-buffer の major-mode は +@code{mime/viewer-mode} (@ref{mime/viewer-mode}) となります。@refill + +@code{mime/viewer-mode} を実行すると、tm-view はまず raw-article-buffer +の内容を解析し、その message の構造を raw-article-buffer の buffer local +変数 @code{mime::article/content-info} に記録します。@refill + +次に、この結果を元に raw-article-buffer に対応する preview-buffer を作り +ます。この際、content-type に応じて、part 単位で header や body を加工す +ることができます。この header を加工するプログラムを +@strong{header-filter}@cindex{header-filter} (@ref{content-header}), +body を加工するプログラムを +@strong{content-filter}@cindex{content-filter} (@ref{content-body}) と呼 +び、これらを総称して @strong{filter}@cindex{filter} と呼びます。 + +preview-buffer を作成する時に、message の表示上の構造を記録した +preview-buffer の buffer local 変数 @code{mime::preview/content-list} が +作られます。tm-view は raw-article-buffer 上の +@code{mime::article/content-info} と preview-buffer 上の +@code{mime::preview/content-list} を用いて message を管理します。@refill + +@noindent +@strong{[注意]} +@quotation +この説明書では、Content-Type field の content-type/subtype のことを称 +して ``content-type'' と呼びます。 +@end quotation + + + +@menu +* raw-article-buffer:: raw-article-buffer の buffer local 変数 +* preview-buffer:: preview-buffer の buffer local 変数 +@end menu + +@node raw-article-buffer, preview-buffer, Two buffers for an article, Two buffers for an article +@section raw-article-buffer の buffer local 変数 + +@deffn{Structure} mime::content-info rcnum point-min point-max type parameters encoding children + +raw-article-buffer における MIME part に関する情報を格納するための構造体。 +単に @strong{content-info}@cindex{content-info} とも呼ぶ。@refill + +この構造体を参照するには、@code{mime::content-info/スロット名} という +content-info を引数にとる関数を用いる。@refill + +この構造体のスロットは以下の通りである: + +@table @var +@item rcnum +``reversed content-number'' (list) + +@item point-min +raw-article-buffer における先頭 point + +@item point-max +raw-article-buffer における末尾 point + +@item type +content-type/sub-type(文字列、または、nil) + +@item parameters +Content-Type field の parameter (連想 list) + +@item encoding +Content-Transfer-Encoding(文字列、または、nil) + +@item children +この part に含まれる part(content-info の list) + +@end table + +ある part が multipart もしくは message/rfc822 などの別の part を含むよ +うな part であった場合、@var{children} に別の part の content-info が含 +まれる事によって、content-info は木構造になる。 +@end deffn + + +@defvar mime::article/content-info + +raw-article-buffer を MIME message として解析した結果 (content-info) +@end defvar + + +@defvar mime::article/preview-buffer + +raw-article-buffer に対応する preview-buffer. +@end defvar + + +@defun mime-article/point-content-number point &optional cinfo + +content-info @var{cinfo} で管理される領域において、@var{point} に対応す +る content-number を返す。@refill + +@var{cinfo} が省略された場合は、@code{mime::article/content-info}が用い +られる。 +@end defun + + +@defun mime-article/rcnum-to-cinfo rcnum &optional cinfo + +content-info @var{cinfo} で管理される領域において、 +reversed-content-number @var{rcnum} に対応する content-info を返す。 +@refill + +@var{cinfo} が省略された場合は、@code{mime::article/content-info} が用い +られる。 +@end defun + + +@defun mime-article/cnum-to-cinfo rcnum &optional cinfo + +content-info @var{cinfo} で管理される領域において、content-number +@var{rcnum} に対応する content-info を返す。@refill + +@var{cinfo} が省略された場合は、@code{mime::article/content-info} が用い +られる。 +@end defun + + +@defun mime/flatten-content-info &optional cinfo + +content-info @var{cinfo} 中に納められた全 part の content-info の list +を返す。@refill + +@var{cinfo} が省略された場合は、@code{mime::article/content-info} が用い +られる。 +@end defun + + + +@node preview-buffer, , raw-article-buffer, Two buffers for an article +@section preview-buffer の buffer local 変数 + +@defvar mime::preview/mother-buffer + +この preview-buffer の親に相当する buffer. +@end defvar + + +@deffn{Structure} mime::preview-content-info point-min point-max buffer content-info + +preview-buffer における MIME content に関する情報を格納するための構造体。 +単に @strong{preview-content-info}@cindex{preview-content-info} とも呼ぶ。 +@refill + +この構造体を参照するには、@code{mime::content-info/スロット名} という +content-info を引数にとる関数を用いる。@refill + +この構造体のスロットは以下の通りである。 + +@table @var +@item point-min +preview-buffer における先頭 point + +@item point-max +preview-buffer における末尾 point + +@item buffer +この part に対応する raw-article-buffer + +@item content-info +この part に対応する content-info + +@end table +@end deffn + + +@defvar mime::preview/content-list + +この preview-buffer の構造をあらわす preview-content-info の list. +@end defvar + +@defvar mime::preview/article-buffer + +この preview-buffer に対応する raw-article-buffer. +@end defvar + + +@defvar mime::preview/original-major-mode + +この preview-buffer のもとになった buffer の major-mode. +@end defvar + + +@defvar mime::preview/original-window-configuration + +@code{mime/viewer-mode} を実行して、この preview-buffer 作る直前の +window-configuration. +@end defvar + + +@defun mime-preview/point-pcinfo point &optional pcl + +preview-content-info @var{pcl} で管理される preview-buffer 中の領域にお +いて、@var{point} に対応する part の preview-content-info を返す。 +@refill + +@var{cinfo} が省略された場合は、@code{mime::preview/content-list} が用い +られる。 +@end defun + + + +@node API, Concept Index, Two buffers for an article, Top +@chapter MIME message の decode に関する関数 + +tm-view の提供する関数を各 MUA (@ref{(tm-ja)MUA}) に組み込む事によって、 +各 MUA に MIME 再生機能を付加する事ができます。@refill + +tm-view が各 MUA に提供する関数は、MIME preview を行うための関数 +@code{mime/viewer-mode} と encoded-word(@ref{(tm-ja)encoded-word}) を decode するための関数群です。 + + +@menu +* API about MIME preview:: MIME preview に関する関数 +* encoded-word decoding:: encoded-word の復元 +@end menu + +@node API about MIME preview, encoded-word decoding, API, API +@section MIME preview に関する関数 + + +@deffn{Command} mime/viewer-mode &optional mother ctl encoding ibuf obuf mother-keymap + +@var{ibuf} を MIME message として解析して、その内容を閲覧するための +preview-buffer を @var{obuf} に作成し、@code{mime/viewer-mode} +(@ref{mime/viewer-mode})に入ります。@refill + +@var{ibuf} が省略された場合、current buffer を用います。@refill + +@var{mother} は、解析の対象とする raw-article-buffer が message/partial +形式の分割された message を結合して作成した場合などにおける元の buffer +を指定するために使います。@refill + +@var{ctl} は Content-Type field(@ref{(tm-ja)Content-Type field}) の +field-body を @code{mime/Content-Type} の出力正式にしたものを入れます。 +この引数がある場合、raw-article-buffer の Content-Type field よりもこの +引数を優先します。@refill + +@var{encoding} は Content-Transfer-Encoding field の field-body を入れま +す。この引数がある場合、raw-article-buffer の Content-Transfer-Encoding +field よりもこの引数を優先します。@refill + +@var{mother-keymap} が指定された場合、@code{mime/viewer-mode} の keymap +はこの keymap に加えたものとなります。 +@end deffn + + + +@node encoded-word decoding, , API about MIME preview, API +@section encoded-word の復元 + +tm-view は RFC 1522 で規定された encoded-word(@ref{(tm-ja)encoded-word}) +を decode するための関数を持っています。@refill + +@noindent +@strong{[Memo]} +@quotation +旧 @file{tiny-mime.el} にあった RFC 1522 encoded-word を decode +するための関数群は tm-view に引き継がれました。 +@end quotation + + + +@deffn{Command} mime/decode-message-header + +current buffer の message header 中の encoded-word を decode します。 +@refill + +壊れていたり、不正だったり、decode できない MIME charset +(@ref{(tm-ja)MIME charset}) が用いられている encoded-word は decode され +ずそのまま残されます。 +@end deffn + + + +@deffn{Command} mime-eword/decode-region start end &optional unfolding must-unfold + +@var{start} と @var{end} で囲まれた領域中の encoded-word を decode しま +す。@refill + +壊れていたり、不正だったり、decode できない MIME charset +(@ref{(tm-ja)MIME charset}) が用いられている encoded-word は decode され +ずそのまま残されます。@refill + +@var{unfolding} が non-nil の場合、折り返された field を unfolding しま +す。@refill + +@var{must-fold} が non-nil の場合、encoded-word の decode 結果に折り返し、 +もしくは、改行が含まれている場合、unfold し、改行を除きます。 +@end deffn + + + +@defun mime-eword/decode-string string &optional must-unfold + +@var{string} 中の encoded-word を decode した文字列を返します。@refill + +壊れていたり、不正だったり、decode できない MIME charset +(@ref{(tm-ja)MIME charset}) が用いられている encoded-word は decode され +ずそのまま出力されます。@refill + +@var{string} が折り返されている場合、encoded-word を decode する前に +@var{string} は unfold されます。@refill + +@var{must-fold} が non-nil の場合、encoded-word の decode 結果に折り返し、 +もしくは、改行が含まれていても、それらは unfold され単体の改行文字も取り +除かれます。 +@end defun + + + +@node Concept Index, Function Index, API, Top +@chapter 概念索引 + +@printindex cp + +@node Function Index, Variable Index, Concept Index, Top +@chapter 関数索引 + +@printindex fn + +@node Variable Index, , Function Index, Top +@chapter 変数索引 + +@printindex vr +@bye diff --git a/tm-bbdb.el b/tm-bbdb.el index bb392ee..6bfe198 100644 --- a/tm-bbdb.el +++ b/tm-bbdb.el @@ -6,7 +6,7 @@ ;; Author: KOBAYASHI Shuhei <shuhei-k@jaist.ac.jp> ;; Artur Pioro <artur@flugor.if.uj.edu.pl> ;; Maintainer: Shuhei KOBAYASHI <shuhei-k@jaist.ac.jp> -;; Version: $Id: tm-bbdb.el,v 7.16 1996/09/28 10:39:05 shuhei-k Exp $ +;; Version: $Id: tm-bbdb.el,v 7.16 1996/10/02 04:19:02 shuhei-k Exp $ ;; Keywords: mail, news, MIME, multimedia, multilingual, BBDB ;; This file is part of tm (Tools for MIME). @@ -56,8 +56,9 @@ (or tm-bbdb/use-mail-extr (progn (require 'mail-extr) ; for `what-domain' - (fset 'tm:mail-extract-address-components - (symbol-function 'mail-extract-address-components)) + (or (fboundp 'tm:mail-extract-address-components) + (fset 'tm:mail-extract-address-components + (symbol-function 'mail-extract-address-components))) (fset 'mail-extract-address-components (symbol-function 'tm-bbdb/extract-address-components)) )) diff --git a/tm-edit.el b/tm-edit.el index da7bc8c..9498829 100644 --- a/tm-edit.el +++ b/tm-edit.el @@ -6,7 +6,7 @@ ;; MORIOKA Tomohiko <morioka@jaist.ac.jp> ;; Maintainer: MORIOKA Tomohiko <morioka@jaist.ac.jp> ;; Created: 1994/08/21 renamed from mime.el -;; Version: $Revision: 7.89 $ +;; Version: $Revision: 7.90 $ ;; Keywords: mail, news, MIME, multimedia, multilingual ;; This file is part of tm (Tools for MIME). @@ -121,7 +121,7 @@ ;;; (defconst mime-editor/RCS-ID - "$Id: tm-edit.el,v 7.89 1996/10/01 13:03:50 morioka Exp $") + "$Id: tm-edit.el,v 7.90 1996/10/07 14:30:50 shuhei-k Exp $") (defconst mime-editor/version (get-version-string mime-editor/RCS-ID)) @@ -385,7 +385,8 @@ If encoding is nil, it is determined from its contents.") ;;; (defvar mime-editor/yank-ignored-field-list - '("Received" "Approved" "Path" "Replied" "Status" "X-VM-.*" "X-UIDL") + '("Received" "Approved" "Path" "Replied" "Status" + "Xref" "X-UIDL" "X-Filter" "X-Gnus-.*" "X-VM-.*") "Delete these fields from original message when it is inserted as message/rfc822 part. Each elements are regexp of field-name. [tm-edit.el]") diff --git a/tm-ew-d.el b/tm-ew-d.el index f7cfd87..e69cc5c 100644 --- a/tm-ew-d.el +++ b/tm-ew-d.el @@ -5,8 +5,11 @@ ;; Author: ENAMI Tsugutomo <enami@sys.ptg.sony.co.jp> ;; MORIOKA Tomohiko <morioka@jaist.ac.jp> ;; Maintainer: MORIOKA Tomohiko <morioka@jaist.ac.jp> -;; Created: 1993/6/3 (1995/10/3 obsolete tiny-mime.el) -;; Version: $Revision: 7.25 $ +;; Created: 1995/10/03 +;; Original: 1992/07/20 ENAMI Tsugutomo's `mime.el'. +;; Renamed: 1993/06/03 to tiny-mime.el. +;; Renamed: 1995/10/03 from tiny-mime.el. (split off encoder) +;; Version: $Revision: 7.29 $ ;; Keywords: mail, news, MIME, RFC 1522, multilingual, encoded-word ;; This file is part of tm (Tools for MIME). @@ -22,8 +25,8 @@ ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License -;; along with this program; see the file COPYING. If not, write to -;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Code: @@ -38,7 +41,7 @@ ;;; (defconst tm-ew-d/RCS-ID - "$Id: tm-ew-d.el,v 7.25 1996/09/13 02:39:01 morioka Exp $") + "$Id: tm-ew-d.el,v 7.29 1996/10/13 18:44:49 morioka Exp $") (defconst mime/eword-decoder-version (get-version-string tm-ew-d/RCS-ID)) @@ -62,45 +65,59 @@ ;;; @ for string ;;; -(defun mime-eword/decode-string (str &optional unfolding) - (setq str (std11-unfold-string str)) +(defun mime-eword/decode-string (string &optional must-unfold) + "Decode MIME encoded-words in STRING. + +STRING is unfolded before decoding. + +If an encoded-word is broken or your emacs implementation can not +decode the charset included in it, it is not decoded. + +If MUST-UNFOLD is non-nil, it unfolds and eliminates line-breaks even +if there are in decoded encoded-words (generated by bad manner MUA +such as a version of Net$cape). [tm-ew-d.el]" + (setq string (std11-unfold-string string)) (let ((dest "")(ew nil) beg end) - (while (and (string-match mime/encoded-word-regexp str) + (while (and (string-match mime/encoded-word-regexp string) (setq beg (match-beginning 0) end (match-end 0)) ) (if (> beg 0) (if (not (and (eq ew t) - (string-match "^[ \t]+$" (substring str 0 beg)) + (string-match "^[ \t]+$" (substring string 0 beg)) )) - (setq dest (concat dest (substring str 0 beg))) + (setq dest (concat dest (substring string 0 beg))) ) ) (setq dest (concat dest (mime/decode-encoded-word - (substring str beg end) unfolding) + (substring string beg end) must-unfold) )) - (setq str (substring str end)) + (setq string (substring string end)) (setq ew t) ) - (concat dest str) + (concat dest string) )) ;;; @ for region ;;; -(defun mime-eword/decode-region (beg end &optional unfolding must-unfold) - "Decode MIME encoded-words in region between BEG and END. +(defun mime-eword/decode-region (start end &optional unfolding must-unfold) + "Decode MIME encoded-words in region between START and END. + If UNFOLDING is not nil, it unfolds before decoding. -If MUST-UNFOLD is not nil, it unfolds encoded results. [tm-ew-d.el]" + +If MUST-UNFOLD is non-nil, it unfolds and eliminates line-breaks even +if there are in decoded encoded-words (generated by bad manner MUA +such as a version of Net$cape). [tm-ew-d.el]" (interactive "*r") (save-excursion (save-restriction - (narrow-to-region beg end) + (narrow-to-region start end) (if unfolding (mime/unfolding) ) @@ -156,7 +173,15 @@ If MUST-UNFOLD is not nil, it unfolds encoded results. [tm-ew-d.el]" ;;; @ encoded-word decoder ;;; -(defun mime/decode-encoded-word (word &optional unfolding) +(defun mime/decode-encoded-word (word &optional must-unfold) + "Decode WORD if it is an encoded-word. + +If your emacs implementation can not decode the charset of WORD, it +returns WORD. Similarly the encoded-word is broken, it returns WORD. + +If MUST-UNFOLD is non-nil, it unfolds and eliminates line-breaks even +if there are in decoded encoded-word (generated by bad manner MUA such +as a version of Net$cape). [tm-ew-d.el]" (or (if (string-match mime/encoded-word-regexp word) (let ((charset (substring word (match-beginning 1) (match-end 1)) @@ -168,7 +193,7 @@ If MUST-UNFOLD is not nil, it unfolds encoded results. [tm-ew-d.el]" (text (substring word (match-beginning 3) (match-end 3)) )) - (mime/decode-encoded-text charset encoding text unfolding) + (mime/decode-encoded-text charset encoding text must-unfold) )) word)) @@ -176,20 +201,30 @@ If MUST-UNFOLD is not nil, it unfolds encoded results. [tm-ew-d.el]" ;;; @ encoded-text decoder ;;; -(defun mime/decode-encoded-text (charset encoding str &optional unfolding) +(defun mime/decode-encoded-text (charset encoding string &optional must-unfold) + "Decode STRING as an encoded-text. + +If your emacs implementation can not decode CHARSET, it returns nil. + +If ENCODING is not \"B\" or \"Q\", it occurs error. +So you should write error-handling code if you don't want break by errors. + +If MUST-UNFOLD is non-nil, it unfolds and eliminates line-breaks even +if there are in decoded encoded-text (generated by bad manner MUA such +as a version of Net$cape). [tm-ew-d.el]" (let ((cs (mime-charset-to-coding-system charset))) (if cs (let ((dest (cond ((string-equal "B" encoding) - (base64-decode-string str)) + (base64-decode-string string)) ((string-equal "Q" encoding) - (q-encoding-decode-string str)) + (q-encoding-decode-string string)) (t (message "unknown encoding %s" encoding) nil)))) (if dest (progn (setq dest (decode-coding-string dest cs)) - (if unfolding + (if must-unfold (mapconcat (function (lambda (chr) (if (eq chr ?\n) diff --git a/tm-pgp.el b/tm-pgp.el index e5196d4..5dd420c 100644 --- a/tm-pgp.el +++ b/tm-pgp.el @@ -1,43 +1,45 @@ -;;; ;;; tm-pgp.el --- tm-view internal methods for PGP. -;;; -;;; Copyright (C) 1995 Free Software Foundation, Inc. -;;; Copyright (C) 1995,1996 MORIOKA Tomohiko -;;; -;;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp> -;;; Maintainer: MORIOKA Tomohiko <morioka@jaist.ac.jp> -;;; Created: 1995/12/7 -;;; Version: -;;; $Id: tm-pgp.el,v 7.19 1996/07/18 12:20:32 morioka Exp $ -;;; Keywords: mail, news, MIME, multimedia, PGP, security -;;; -;;; This file is part of tm (Tools for MIME). -;;; -;;; This program is free software; you can redistribute it and/or -;;; modify it under the terms of the GNU General Public License as -;;; published by the Free Software Foundation; either version 2, or -;;; (at your option) any later version. -;;; -;;; This program 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. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with This program. If not, write to the Free Software -;;; Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -;;; + +;; Copyright (C) 1995,1996 Free Software Foundation, Inc. + +;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp> +;; Maintainer: MORIOKA Tomohiko <morioka@jaist.ac.jp> +;; Created: 1995/12/7 +;; Version: $Id: tm-pgp.el,v 7.23 1996/10/03 07:52:09 morioka Exp $ +;; Keywords: mail, news, MIME, multimedia, PGP, security + +;; This file is part of tm (Tools for MIME). + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or (at +;; your option) any later version. + +;; This program 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. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. + ;;; Commentary: -;;; This module is based on 2 drafts about PGP MIME integration: -;;; - draft-elkins-pem-pgp-02.txt -;;; ``MIME Security with Pretty Good Privacy (PGP)'' -;;; by Michael Elkins <elkins@aero.org> (1995/11) -;;; - draft-kazu-pgp-mime-00.txt -;;; ``PGP MIME Integration'' -;;; by Kazuhiko Yamamoto <kazu@is.aist-nara.ac.jp> (1995/10) -;;; These drafts may be contrary to each other. You should decide -;;; which you support. -;;; + +;; This module is based on 2 drafts about PGP MIME integration: + +;; - draft-elkins-pem-pgp-04.txt +;; ``MIME Security with Pretty Good Privacy (PGP)'' +;; by Michael Elkins <elkins@aero.org> (1996/6) +;; +;; - draft-kazu-pgp-mime-00.txt +;; ``PGP MIME Integration'' +;; by Kazuhiko Yamamoto <kazu@is.aist-nara.ac.jp> (1995/10) +;; +;; These drafts may be contrary to each other. You should decide +;; which you support. + ;;; Code: (require 'mailcrypt) @@ -117,28 +119,44 @@ ;;; ;;; It is based on draft-elkins-pem-pgp-02.txt -(defvar tm-pgp::good-signature-regexp "Good signature from user.*$") +(defvar tm-pgp::default-language 'en + "*Symbol of language for pgp. +It should be ISO 639 2 letter language code such as en, ja, ...") + +(defvar tm-pgp::good-signature-regexp-alist + '((en . "Good signature from user.*$")) + "Alist of language vs regexp to detect ``Good signature''.") -(defvar tm-pgp::key-expected-regexp - "Key matching expected Key ID \\(\\S +\\) not found") +(defvar tm-pgp::key-expected-regexp-alist + '((en . "Key matching expected Key ID \\(\\S +\\) not found")) + "Alist of language vs regexp to detect ``Key expected''.") (defun mime::article/call-pgp-to-check-signature (output-buffer orig-file) (save-excursion (set-buffer output-buffer) (erase-buffer) ) - (let ((status - (call-process-region (point-min)(point-max) - "pgp" nil output-buffer nil orig-file))) + (let* ((lang (or tm-pgp::default-language 'en)) + (status + (call-process-region (point-min)(point-max) + "pgp" nil output-buffer nil orig-file + (format "+language=%s" lang) + )) + (regexp (cdr (assq lang tm-pgp::good-signature-regexp-alist))) + ) (if (= status 0) (save-excursion (set-buffer output-buffer) (goto-char (point-min)) (message - (if (re-search-forward tm-pgp::good-signature-regexp nil t) - (buffer-substring (match-beginning 0) (match-end 0)) - "Bad signature" - )) + (cond ((not (stringp regexp)) + "Please specify right regexp for specified language") + ((re-search-forward regexp nil t) + (buffer-substring (match-beginning 0) (match-end 0)) + ) + (t + "Bad signature" + ))) )))) (defun mime-article/check-pgp-signature (beg end cal) @@ -208,17 +226,27 @@ (save-excursion (set-buffer mime/output-buffer-name) (goto-char (point-min)) - (if (re-search-forward tm-pgp::key-expected-regexp nil t) - (setq pgp-id - (concat "0x" (buffer-substring-no-properties - (match-beginning 1) - (match-end 1)))) - )) - (y-or-n-p - (format "Key %s not found; attempt to fetch? " pgp-id)) - (mc-pgp-fetch-key (cons nil pgp-id)) - (mime::article/call-pgp-to-check-signature - mime/output-buffer-name orig-file) + (let ((regexp (cdr (assq (or tm-pgp::default-language 'en) + tm-pgp::key-expected-regexp-alist)))) + (cond ((not (stringp regexp)) + (message + "Please specify right regexp for specified language") + ) + ((re-search-forward regexp nil t) + (setq pgp-id + (concat "0x" (buffer-substring-no-properties + (match-beginning 1) + (match-end 1)))) + )))) + (if (and pgp-id + (y-or-n-p + (format "Key %s not found; attempt to fetch? " pgp-id)) + ) + (progn + (mc-pgp-fetch-key (cons nil pgp-id)) + (mime::article/call-pgp-to-check-signature + mime/output-buffer-name orig-file) + )) )) (let ((other-window-scroll-buffer mime/output-buffer-name)) (scroll-other-window 8)