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