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