74e07278c87c0400b222a4f394ca257f047a3c9c
[elisp/tm.git] / README.en
1 [README for tm (English Version)]
2 by MORIOKA Tomohiko <morioka@jaist.ac.jp>
3 and KOBAYASHI Shuhei <shuhei-k@jaist.ac.jp>
4 $Id: README.en,v 7.18 1996/04/27 15:32:23 morioka Exp $
5
6 1 What's tm?
7
8   tm is a MIME package for GNU Emacs. tm has following functions:
9
10         - MIME style multilingual header
11         - MIME message viewer (mime/viewer-mode)
12         - MIME message composer (mime/editor-mode)
13         - MIME extenders for mh-e, GNUS, RMAIL and VM
14
15
16 2 Documents
17
18   This package includes following documents.
19
20 (1) English edition
21
22 - tm/doc/tm_en.texi     : tm Reference Manual (TeXinfo)
23 - tm/doc/tm-gnus_en.texi: tm-gnus Reference Manual (TeXinfo)
24 - tm/doc/tm-mh-e_en.texi: tm-mh-e Reference Manual (TeXinfo)
25
26 (2) Japanese edition
27
28 - tm/doc/tm_ja.tex       : tm Reference Manual (TeXinfo)
29 - tm/doc/tm-gnus_ja.texi : tm-gnus Reference Manual (TeXinfo)
30 - tm/doc/tm-mh-e_ja.texi : tm-mh-e Reference Manual (TeXinfo)
31 - tm/doc/signature-jp.ol : signature.el Reference Manual (Emacs Outline)
32 - tm/doc/signature-jp.tex: signature.el Reference Manual (LaTeX)
33
34
35 3 Modules
36
37   tm has following modules:
38
39         - tm-view : MIME viewer
40                 - tm-parse.el : MIME message parser
41                 - tm-play.el  : MIME content player
42                 - tm-ew-d.el : MIME encoded-word decoder
43         - preview filter for tm-view
44                 - tm-rich    : for text/enriched and text/richtext
45         - internal methods for tm-view
46                 - tm-partial : automatic assembler for message/partial
47                 - tm-ftp     : for anonymous ftp
48                 - tm-file    : for file extraction
49                 - tm-tar     : for tar content
50                 - tm-latex   : for LaTeX
51                 - tm-html    : for text/html
52                 - tm-pgp     : for PGP
53         - tm-edit : MIME composer (mime.el and tm-comp.el were merged)
54                 - tm-ew-e.el : MIME encoded-word encoder
55         - tm-def  : definition module for tm
56         - tm-MUAs : MIME extender for MUAs
57                 - tm-mh-e  : tm-MUA for mh-e
58                 - tm-gnus  : tm-MUA for GNUS
59                 - tm-rmail : tm-MUA for RMAIL
60                 - tm-vm    : tm-MUA for vm
61                 - tm-mail  : tm-MUA library module for mail-mode
62         - mime-setup: set up module for MIME
63                 - tm-setup: set up only reading
64
65
66 4 Install
67
68 4.1 edit tm/TM-CFG (optional)
69
70   You can edit tm/TM-CFG file.
71
72   In default, tm is installed into /usr/local/. If you want to change,
73 please modify the variable `PREFIX'.
74
75
76 4.2 tm-gnus (optional)
77
78   If you use optional GNUS or Gnus, which is not included in Emacs
79 distribution, you must edit following files before make.
80
81     If you use Emacs 18.* and GNUS 3.*, please edit tm/gnus/g3-path.
82
83     If you use Emacs 18.* and GNUS 4.*, please edit tm/gnus/g4-path.
84
85     If you use Gnus 5.0.*, please edit tm/gnus/g5-path.
86
87     If you use September Gnus, please edit tm/gnus/s-path.
88
89
90 4.3 edit external methods (optional)
91
92   You can edit external methods in `tm/methods/' directory for your
93 environment.
94
95         tm/methods/tm-au        for audio
96         tm/methods/tm-file      for file extraction
97         tm/methods/tm-image     for image
98         tm/methods/tm-mpeg      for MPEG
99         tm/methods/tm-plain     for plain text
100         tm/methods/tm-html      for HTML
101         tm/methods/tmdecode     decoder
102
103   In default, tmdecode uses `mmencode' command. If you don't have
104 metamail package, please modify tmdecode to use decode-b instead of
105 mmencode.
106
107
108 4.4 make
109
110   Run `make all'.
111
112   You can specify Emacs command name, for example if you want to use
113 `mule' as Emacs command:
114
115         % make all EMACS=mule
116
117
118 4.5 install
119
120   Run `make install'.
121
122   You can specify Emacs command name, for example if you want to use
123 `xemacs' as Emacs command:
124
125         % make install EMACS=xemacs
126
127
128 6 .emacs
129
130   Please insert `(load "mime-setup")' in ~/.emacs.
131
132
133 6.1 automatic MIME preview support
134
135   tm-gnus provides automatic MIME preview feature for GNUS 3.15 or
136 later, Gnus 5.0.*, Gnus 5.1, and September Gnus.
137
138   If you don't want to use automatic MIME preview feature, please
139 insert following to ~/.emacs.
140
141         (setq tm-gnus/automatic-mime-preview nil)
142
143   In addition, September Gnus has automatic MIME preview supporting
144 feature. Of course, tm-gnus provides this feature for other GNUS and
145 Gnus, but it is unnatural.
146
147   When automatic MIME preview mode, GNUS and Gnus do MIME processing
148 if a message has a Mime-Version field. If it does not have, GNUS and
149 Gnus does not do MIME processing, in default.
150
151   Gnus 5.0.*, 5.1 and September Gnus have a variable
152 `gnus-strict-mime'. If you insert
153
154         (setq gnus-strict-mime nil)
155
156 Gnus do MIME processing even if a message does not have Mime-Version
157 field.
158
159   In September Gnus, if `gnus-strict-mime' is not nil, variable
160 `gnus-decode-encoded-word-method' is called. tm-gnus uses it to decode 
161 RFC 1522 encoded-word. So it is not necessary to reset
162 `gnus-strict-mime'.
163
164
165 6.2 VM
166
167   If you use vm, please insert `(require 'tm-vm)' in ~/.vm.
168
169   tm works well with BBDB: If you use VM, please insert
170 (require 'tm-vm) *after* (bbdb-insinuate-vm).
171
172
173 6.3 PGP
174
175   If you have PGP and Mailcrypt package, you can use PGP on
176 MIME. Currently, 2 drafts (draft-elkins-pem-pgp-02.txt and
177 draft-kazu-pgp-mime-00.txt) are proposed, so tm provides both way.
178
179   For decoding, please insert following into ~/.emacs:
180
181 ======================================================================
182 (call-after-loaded
183  'tm-view
184  (function
185   (lambda ()
186     (require 'tm-pgp)
187     )))
188 ======================================================================
189
190 tm-pgp.el is a internal method modules to support PGP.
191
192   For encoding, tm-edit provides 2 mechanism. One is for signing or
193 encrypting for message as application/pgp. There are two command
194 `mime-editor/set-sign' and `mime-editor/set-encrypt'. They set a
195 message is signed, encrypted or not.
196
197   Another one is for content. There are 2 kinds of enclosure for PGP:
198 ``signed'' and ``encrypted''. Their enclosure are bound to key and
199 menu. If you use this mechanism, please specify 2 variables:
200 `mime-editor/signing-type' and `mime-editor/encrypting-type'. They
201 requires following values:
202
203         pgp-elkins      processed as draft-elkins-pem-pgp-02.txt
204         pgp-kazu        processed as draft-kazu-pgp-mime-00.txt
205         nil             not processed
206
207 If you use ``signed'' and ``encrypted'' as draft-elkins-pem-pgp-02.txt,
208 please insert following into ~/.emacs:
209
210 ======================================================================
211 (setq mime-editor/signing-type    'pgp-elkins)
212 (setq mime-editor/encrypting-type 'pgp-elkins)
213 ======================================================================
214
215 If you use ``signed'' and ``encrypted'' as draft-kazu-pgp-mime-00.txt,
216 please insert following into ~/.emacs:
217
218 ======================================================================
219 (setq mime-editor/signing-type    'pgp-kazu)
220 (setq mime-editor/encrypting-type 'pgp-kazu)
221 ======================================================================
222
223
224 6.4 setting sample for hilit19
225
226 ======================================================================
227 (cond (window-system
228        (require 'hilit19)
229        (let* ((csubject-patterns '(("^\\[.+\\]$" nil msg-subject)))
230               (header-patterns '(("^Subject:.*$" nil msg-subject)
231                                  ("^From:.*$" nil msg-from)
232                                  ("^--text follows this line--$"
233                                   nil msg-separator)
234                                  ("^[A-Za-z][A-Za-z0-9-]+:" nil msg-header)
235                                  ))
236               (body-patterns '(("^\\(In article\\|[ \t]*\\w*[]<>}|]\\).*$"
237                                 nil msg-quote)))
238               (message-patterns (append ;;csubject-patterns
239                                  header-patterns
240                                  body-patterns))
241               )
242          (hilit-set-mode-patterns 'msg-header header-patterns)
243          (hilit-set-mode-patterns 'msg-body body-patterns)
244          (hilit-set-mode-patterns 'mime/viewer-mode
245                                   message-patterns
246                                   'hilit-rehighlight-message)
247          )
248        (add-hook 'mime-viewer/content-header-filter-hook
249                  (lambda ()
250                    (if (not (eq mime::preview/original-major-mode
251                                 'gnus-original-article-mode))
252                        (hilit-rehighlight-buffer-quietly)
253                      )))
254        (add-hook 'mime-viewer/plain-text-preview-hook
255                  (lambda ()
256                    (if (not (eq mime::preview/original-major-mode
257                                 'gnus-original-article-mode))
258                        (hilit-rehighlight-buffer-quietly)
259                      )))
260        ))
261 ======================================================================
262
263
264 6.5 setting sample for browse-url
265
266   If you have browse-url.el (included in Gnus 5.*, September Gnus and
267 Emacs 19.30 or later), you can use URL button in
268 mime/viewer-mode. Following is setting sample:
269
270 ======================================================================
271 (setq browse-url-browser-function
272       (if (eq window-system 'x)
273           'browse-url-netscape
274         'browse-url-w3))
275 (autoload browse-url-browser-function "browse-url"
276   "Ask a WWW browser to show a URL." t)
277 ======================================================================
278
279
280 7 How to use mime/viewer-mode
281
282 In tm-MUAs, you can use mime/viewer-mode if you press `v' key (in VM,
283 `Z' key) in Summary mode. Or automatic MIME previewed buffer's
284 major-mode is mime/viewer-mode. mime/viewer-mode has following
285 functions:
286
287         q         quit from mime/viewer-mode
288         u         move to upper content
289         p         move to previous content
290         n         move to next content
291         SPC       scroll up or move to next content
292         M-SPC     scroll down or move to previous content
293         DEL       scroll down or move to previous content
294         RET       move to next line
295         M-RET     move to previous line
296         <         move to beginning of message
297         >         move to end of message
298         v         play current content
299         e         extract as file current content
300         C-c C-p   print current content
301         f         display X-Face in current message
302         button-2  move to point under the mouse cursor and play
303                   current content or browse URL
304
305
306 8 Bug report
307
308 If you write bug-reports and/or propositions for improvement, please
309 post them to following news groups:
310
311         fj.editor.emacs         (Japanese or English)
312         fj.editor.mule          (Japanese or English; if you use Mule)
313         gnu.emacs.help          (English)
314
315         fj.news.reader.gnus     (Japanese or English; about GNUS and Gnus)
316         gnu.emacs.gnus          (English; about GNUS and Gnus)
317
318         gnu.emacs.vm.info       (English; about tm-vm)
319
320 or send to tm ML:
321
322         bug-tm-en@chamonix.jaist.ac.jp  (English)
323         bug-tm-ja@chamonix.jaist.ac.jp  (Japanese)
324
325 Via tm ML, You can report bugs of tm, obtain the latest release of tm
326 package, and discuss the future enhancements to tm. To join tm ML,
327 send a mail to
328
329         tm-admin@chamonix.jaist.ac.jp           (Japanese or English)
330         tm-eng-admin@chamonix.jaist.ac.jp       (English)
331
332 Since the user registration is manually done, please write the mail
333 body in human-recognizable language (^_^).
334
335
336 9 How to get new version
337
338 tm is available from following anonymous ftp site:
339
340         ftp://ftp.jaist.ac.jp/pub/GNU/elisp/mime/       (Japan)
341
342 and its mirrors:
343
344         ftp://ftp.nis.co.jp/pub/gnu/emacs-lisp/tm/      (Japan)
345         ftp://ftp.nisiq.net/pub/gnu/emacs-lisp/tm/      (US)
346
347
348 10 TODO
349
350 - MUA specific key bind system for mime/viewer-mode
351 - better identification calculus system as successor of atype system
352 - development of internal method for message/external-body based on
353   tm-ftp
354 - better automatic MIME preview support
355 - etc.