This commit was generated by cvs2svn to compensate for changes in r542,
[elisp/tm.git] / doc / tm-jp.tex
1 \documentstyle[a4j]{jreport}
2
3 \title{tm ÀâÌÀ½ñ}
4 \author{¼é²¬ ÃÎɧ\\
5   morioka@jaist.ac.jp}
6 \date{\verb$Id: tm-jp.tex,v 5.5 1994/10/20 01:42:29 morioka Exp $}
7
8 \begin{document}
9
10 \maketitle
11 \tableofcontents
12
13 \chapter{¤Ï¤¸¤á¤Ë}
14
15 tm ¤Ï GNU Emacs ¤Ç MIME ¤ò³Ú¤·¤à¤¿¤á¤Î package ¤Ç¤¹¡£tm ¤ò»È¤¦¤È¡¢
16
17 \begin{itemize}
18 \item mime/viewer-mode ¤ò»È¤Ã¤¿ MIME message ¤Î±ÜÍ÷¡¦ºÆÀ¸
19 \item Â¿¸À¸ì header ¤Î encode/decode
20 \item mh-e, GNUS, RMAIL ¤Ç¤Î MIME µ¡Ç½¤Î¶¯²½
21 \end{itemize}
22
23 \noindent ¤¬¹Ô¤Ê¤¨¤Þ¤¹¡£
24
25
26 \section{Module °ìÍ÷}
27
28 tm ¤Ï°Ê²¼¤Î module ¤«¤é¤Ê¤ê¤Þ¤¹¡£
29
30 \begin{itemize}
31 \item {\bf tiny-mime} : MIME header encoder/decoder
32 \item {\bf tm-view} : MIME viewer
33 \item {\bf tm-misc} : tm-MUA ¤Î¶¦ÄÌ module
34 \item {\bf tm-MUAs} : MUA ¤Î MIME µ¡Ç½¶¯²½ module
35   \begin{itemize}
36   \item {\bf tm-mh-e} : mh-e ÍѤΠtm-MUA
37   \item {\bf tm-gnus} : GNUS ÍѤΠtm-MUA
38   \item {\bf tm-rmail} : RMAIL ÍѤΠtm-MUA
39   \item {\bf tm-vm} : vm ÍѤΠtm-MUA
40   \end{itemize}
41 \item {\bf tm-setup} tm-MUA ¤ÎÀßÄê module
42 \item {\bf mime-setup} MIME ´Ø·¸¤ÎÀßÄê module
43 \end{itemize}
44
45
46 \chapter{Emacs version Ê̤ε¡Ç½¤ª¤è¤ÓÀ©¸Â}
47
48 \section{Emacs (original)}
49
50 Original ¤Î Emacs ¤Ç¤Ï¡¢US-ASCII ¤È ISO-8859-1 ¤¬»È¤¨¤Þ¤¹¡£
51
52
53 \section{NEmacs, NEpoch}
54
55 NEmacs ¤Ç¤Ï¡¢ISO-2022-JP ¤ª¤è¤Ó US-ASCII ¤¬»È¤¨¤Þ¤¹¡£
56
57
58 \section{Mule}
59
60 ISO-2022-JP, ISO-2022-JP-2, US-ASCII, ISO-8859-1..9, ISO-2022-CN,
61 ISO-2022-KR, EUC-KR ¤Ê¤É¤Î¿¸À¸ì header ¤¬»È¤¨¤Þ¤¹¡£¤Þ¤¿¡¢´Ø¿ô 
62 mime/set-charset-and-encoding ¤ÇÄɲá¦Êѹ¹¤¬¤Ç¤­¤Þ¤¹¡£
63
64
65 \chapter{Install ¤ÈÀßÄê}
66
67 \section{Install}
68
69 Install ¤Ï¼¡¤Î¼ê½ç¤Ç¹Ô¤Ê¤¤¤Þ¤¹¡£
70
71 \begin{enumerate}
72 \item Makefile ¤Î bindir ¤ò¼«Ê¬¤Î´Ä¶­¤Ë¹ç¤ï¤»¤Æ½ñ¤­´¹¤¨¤ë¡£
73 \item methods/ °Ê²¼¤Ë¤¢¤ë method script ¤ò \ref{sec:method} Àá¤ò»²¾È¤·
74   ¤Æ¡¢¼«Ê¬¤Î´Ä¶­¤Ë¹ç¤¦¤è¤¦¤Ë½ñ¤­´¹¤¨¤ë¡£
75 \item make all ¤¹¤ë¡£
76 \item make install ¤¹¤ë¡£
77 \item *.el ¤ò Emacs ¤ÎÊÑ¿ô load-path ¤Ç»ØÄꤵ¤ì¤¿ directory ¤Ë copy ¤¹¤ë¡£
78 \end{enumerate}
79
80 \noindent{\bf [Ãí°Õ]}
81 \begin{itemize}
82 \item tm-mh-e3.el ¤ò byte-compile ¤¹¤ë¾ì¹ç¤Ï¡¢mh-e version 3.* ¤ò load 
83   ¤·¤¿¾õÂ֤ǹԤʤäƲ¼¤µ¤¤¡£
84 \item tm-gnus3.el ¤ò byte-compile ¤¹¤ë¾ì¹ç¤Ï¡¢GNUS 3 ¤¬ load ¤µ¤ì¤¿¾õ
85   Â֤ǹԤʤäƲ¼¤µ¤¤¡£
86 \item tl-18.el ¤ò byte-compile ¤¹¤ë¾ì¹ç¤Ï¡¢Emacs 18 ¤Ç¹Ô¤Ê¤Ã¤Æ²¼¤µ¤¤¡£
87 \item tl-orig.el ¤ò byte-compile ¤¹¤ë¾ì¹ç¤Ï¡¢original Emacs ¤Ç¹Ô¤Ê¤Ã¤Æ
88   ²¼¤µ¤¤¡£
89 \item tl-nemacs.el ¤ò byte-compile ¤¹¤ë¾ì¹ç¤Ï¡¢NEmacs ¤Ç¹Ô¤Ê¤Ã¤Æ²¼¤µ¤¤¡£
90 \item tl-mule.el ¤ò byte-compile ¤¹¤ë¾ì¹ç¤Ï¡¢Mule ¤Ç¹Ô¤Ê¤Ã¤Æ²¼¤µ¤¤¡£
91 \item Emacs 19 ¤Ç byte-compile ¤·¤¿ module ¤Ï Emacs 18 ¤Ç¤ÏÆ°¤­¤Þ¤»¤ó¡£
92 \end{itemize}
93
94
95 \section{ÀßÄê}
96
97 ¤³¤Î package ¤Ë¤Ï mime-setup.el ¤È tm-setup.el ¤È¤¤¤¦´Ê°×ÀßÄê file ¤¬
98 Éí°¤·¤Æ¤¤¤Þ¤¹¡£mime-setup.el ¤Ç¤Ï encoding ¤â´Þ¤á¤¿ÀßÄê¤ò¹Ô¤Ê¤¤¡¢
99 tm-setup ¤Ç¤Ï tm-MUA ¤Ë´Ø¤¹¤ëÀßÄê¤Î¤ß¤ò¹Ô¤Ê¤¤¤Þ¤¹¡£
100
101 \subsection{mime-setup}
102
103 \begin{verbatim}
104 (load "mime-setup")
105 \end{verbatim}
106
107 \noindent ¤È¤¹¤ë¤È MIME ¤Ë´Ø¤¹¤ë³Æ¼ïÀßÄê¤ò¹Ô¤Ê¤¤¤Þ¤¹¡£mime-setup ¤Ï 
108 tm-setup ¤òÆɤó¤Ç¤¤¤ë¤Î¤Ç¡¢mime-setup ¤ò»È¤¦¾ì¹ç¡¢tm-setup ¤ò load ¤¹
109 ¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£
110
111 mime-setup ¤Ç¤Ï signature ¤Î¼«Æ°ÀÚÂؤ¨ tool ¤âÉí°¤·¤Æ¤¤¤Þ¤¹¡£
112 message header ¤Î field ¤Ë¹ç¤ï¤»¤Æ signature ¤Î¼«Æ°ÀÚÂؤò¹Ô¤Ê¤¤¤¿¤¤¾ì
113 ¹ç¤Ï .emacs ¤Ë°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤òÆþ¤ì¤Æ²¼¤µ¤¤¡£¡Ê¾Ü¤·¤¯¤Ï signature.el 
114 ¤ÎÀâÌÀ½ñ¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡Ë
115
116 \begin{verbatim}
117 (setq signature-file-alist
118       '((("Newsgroups" . "jokes")       . "~/.signature-jokes")
119         (("Newsgroups" . ("zxr" "nzr")) . "~/.signature-sun")
120         (("To" . ("ishimaru" "z-suzuki")) . "~/.signature-sun")
121         (("To" . "tea")                 . "~/.signature-jokes")
122         (("To" . ("sim" "oku" "takuo")) . "~/.signature-formal")
123         ))
124 \end{verbatim}
125
126 mime-setup ¤ò»È¤¦¾ì¹ç¤Ï¡¢mime.el ¤¬É¬ÍפǤ¹¡£¤Þ¤¿¡¢SuperCite ¤ò»È¤¦¾ì
127 ¹ç¤Ï¡¢SuperCite ¤âɬÍפǤ¹¡£
128
129
130 \subsection{tm-setup}
131
132 tm-setup ¤Ï tm-MUA ¤ÎÀßÄê¤Î¤ß¤ò¹Ô¤Ê¤¦ module ¤Ç¤¹¡£mime-setup ¤ò load 
133 ¤·¤Æ¤¤¤ë¾ì¹ç¡¢¤³¤ì¤òÍۤˠload ¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¤¬¡¢mime-setup ¤ò»È
134 ¤¤¤¿¤¯¤Ê¤¤¾ì¹ç¡¢°Ê²¼¤Î¤è¤¦¤Ë¤³¤ì¤ò load ¤·¤Æ²¼¤µ¤¤¡£
135
136 \begin{verbatim}
137 (load "tm-setup")
138 \end{verbatim}
139
140
141 \subsection{vm}
142
143 vm ¤ò»È¤¦¾ì¹ç¤Ï .vm ¤« .emacs ¤Ë
144
145 \begin{verbatim}
146 (load "tm-vm")
147 \end{verbatim}
148
149 \noindent ¤òÆþ¤ì¤Æ²¼¤µ¤¤¡£
150
151
152 \subsection{ÀßÄê file ¤ò»È¤ï¤Ê¤¤¾ì¹ç}
153
154 tm-setup.el ¤ò»²¹Í¤Ë¤·¤Æ²¼¤µ¤¤¡£
155
156
157 \subsection{MH ¤ÎÀßÄê}
158
159 ¤Þ¤¿¡¢MH ¤¬ MH-6.8JP2 ¤Î¾ì¹ç¡¢.mh\_profile ¤Ë
160
161 \begin{verbatim}
162 scan:   -form scan.mime
163 inc:    -form inc.mime
164 repl:   -form replcomps.mime
165 showproc: mhl
166 \end{verbatim}
167
168 \noindent ¤òÄɲ䷤Ƥ¯¤À¤µ¤¤¡£¤Þ¤¿¡¢¤½¤ì°Ê³°¤Î MH ¤Î½èÍý¤Ï Emacs ¤Î¦
169 ¤Ç¼è¤ê»ÅÀÚ¤ë¤Î¤Ç¡¢MH ¤ÎÀßÄê¤Ï¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
170
171
172 \chapter{tm-MUA}
173
174 ``tm-MUA'' ¤È¤¤¤¦¤Î¤Ï¡¢mh-e, GNUS, RMAIL ¤Ê¤É¤Î MUA ¤Î¤¿¤á¤Î MIME µ¡Ç½
175 ¶¯²½ module ¤ÎÁí¾Î¤Ç¤¹¡£
176
177 ¸½ºß¡¢tm-MUA ¤Ë¤Ï¡¢
178
179 \begin{itemize}
180 \item {\bf tm-mh-e} : mh-e ÍѤΠtm-MUA
181 \item {\bf tm-gnus} : GNUS ÍѤΠtm-MUA
182 \item {\bf tm-rmail} : RMAIL ÍѤΠtm-MUA
183 \item {\bf tm-vm} : VM ÍѤΠtm-MUA
184 \end{itemize}
185
186 \noindent ¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Î¾Ï¤Ç¤Ï¤³¤ì¤é¤Î module ¤Ë´Ø¤·¤ÆÀâÌÀ¤·¤Þ¤¹¡£
187
188
189 \section{Summary mode}
190
191 tm-MUA ¤ò»È¤¦¤È¡¢¸µ¤Î MUA ¤Î Summary mode ¤ËÂФ·¤Æ°Ê²¼¤Îµ¡Ç½¤¬Äɲ䵤ì
192 ¤Þ¤¹¡£
193
194 \medskip
195 \begin{center}
196   \begin{tabular}{|l|l|}\hline
197     key & µ¡Ç½ \\ \hline
198     M-t & MIME header ¤Î decode ¤Ë´Ø¤¹¤ë toggle \\
199     v   & ËÜʸ¤ËÆþ¤ê¡¢mime/view-mode ¤Ë°Ü¤ë \\ \hline
200   \end{tabular}
201 \end{center}
202 \medskip
203
204
205 \section{mime/viewer-mode}
206 \label{sec:mime/viewer-mode}
207
208 tm-MUA ¤ò»È¤¦¤È¡¢Summary mode ¤Ç {\bf v} ¡Êvm ¤Ç¤Ï {\bf Z}¡Ë¤ò²¡¤¹¤³¤È
209 ¤Ë¤è¤Ã¤Æ¡¢mime/viewer-mode ¤È¤¤¤¦ MIME message ¤ò±ÜÍ÷¤¹¤ë¤¿¤á¤Î mode 
210 ¤ËÆþ¤ê¤Þ¤¹¡£mime/viewer-mode ¤Ë¤Ï°Ê²¼¤Îµ¡Ç½¤¬¤¢¤ê¤Þ¤¹¡£
211
212 \medskip
213 \begin{center}
214   \begin{tabular}{|l|l|}\hline
215     key     & µ¡Ç½ \\ \hline
216     u       & ¾å¤Î content ¤ËÌá¤ë \\
217             & message ¤Î°ìÈÖ¾å¤Î content ¤Ç¤³¤ì¤ò¹Ô¤Ê¤¦¤È Summary mode 
218               ¤ËÌá¤ë (*1) \\
219     p       & Á°¤Î content ¤Ë°ÜÆ°¤¹¤ë \\
220     n       & ¼¡¤Î content ¤Ë°ÜÆ°¤¹¤ë \\
221     SPC     & scroll up ¤¹¤ë \\
222     M-SPC   & scroll down ¤¹¤ë \\
223     DEL     & scroll down ¤¹¤ë \\
224     RET     & ¼¡¤Î¹Ô¤Ë°ÜÆ°¤¹¤ë \\
225     M-RET   & Á°¤Î¹Ô¤Ë°ÜÆ°¤¹¤ë \\
226     v       & content ¤òºÆÀ¸¤¹¤ë           (*2) \\
227     e       & content ¤«¤é file ¤ò¼è¤ê½Ð¤¹ (*2) \\
228     C-c C-p & content ¤ò°õºþ¤¹¤ë           (*2) \\ \hline
229   \end{tabular}
230 \end{center}
231 \medskip
232
233 \bigskip
234
235 \newcounter{asteriskcount}
236 \noindent{\bf ¡ÎÃí°Õ¡Ï}
237 \vspace{-1ex}
238 {\list{(*\arabic{asteriskcount})}{\usecounter{asteriskcount}\leftmargin=8ex}
239 \item tm-mh-e, tm-gnus, tm-rmail ¤Ê¤É¤Ç tm-view ¤ÎÀßÄê¤ò¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢
240   Summary mode ¤Ë¤ÏÌá¤ê¤Þ¤»¤ó¡£
241 \item ¼ÂºÝ¤ÎÆ°ºî¤ÏÂбþ¤¹¤ë method ¤Ë°Í¤ê¤Þ¤¹¡£
242 \endlist}
243
244
245 \section{tm-gnus ¤Î customize}
246
247 \subsection{article ¤ò save ¤¹¤ë»þ decoding ¤·¤Ê¤¤}
248
249 article ¤ò save ¤¹¤ë»þ¡¢Êݸ¤µ¤ì¤ë message ¤Ï¤½¤Î»þɽ¼¨¤µ¤ì¤Æ¤¤¤ë¤è¤¦
250 ¤Ë¡¢¤½¤Î»þ¤Î MIME header decoding mode ¤Ë±þ¤¸¤Æ save ¤µ¤ì¤Þ¤¹¡£
251
252 ¤·¤«¤·¡¢article ¤ò save ¤¹¤ë»þ¡¢¾ï¤Ë¡¢MIME header decoding ¤ò¹Ô¤Ê¤ï¤Ê
253 ¤¤¡¢À¸¤Î message ¤ÇÊݸ¤·¤¿¤¤¾ì¹ç¤Ï¡¢ÊÑ¿ô 
254 tm-gnus/set-mime-header-decoding-mode ¤ÎÃͤò nil ¤Ë¤·¤Æ¡¢MIME header
255 decoding ¤ò¹Ô¤Ê¤ï¤Ê¤¤ mode ¤Ë¤·¤Æ¡¢article save ´Ø¿ô¤ò¼Â¹Ô¤¹¤ë¤è¤¦¤ËÀß
256 Äꤷ¤Æ²¼¤µ¤¤¡£
257
258 Save ¤Î¼Â¹Ô¸å¡¢MIME header decoding mode ¤òÁ°¤Î¾õÂÖ¤ËÌᤷ¤¿¤¤¾ì¹ç¤Ï¡¢
259 °Ê²¼¤Î¤è¤¦¤Ë¡¢°ì»þÊÑ¿ô¤Ë MIME header decoding mode ¤òÊݸ¤·¤Æ¤ª¤±¤Ð OK
260 ¤Ç¤¹¡£
261
262 \begin{verbatim}
263         (let ((mm mime/header-decoding-mode))
264           (tm-gnus/set-mime-header-decoding-mode nil)
265           (article save ´Ø¿ô)
266           (tm-gnus/set-mime-header-decoding-mode mm)
267           )
268 \end{verbatim}
269
270 °Ê²¼¤Ë¡¢mh-e ¤Î folder ¤Ë save ¤¹¤ë¾ì¹ç¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£
271
272 \begin{verbatim}
273 (add-hook 'gnus-Startup-hook
274           (function
275            (lambda ()
276              (setq gnus-default-article-saver
277                    (function
278                     (lambda ()
279                       (interactive)
280                       (let ((mm mime/header-decoding-mode))
281                         (tm-gnus/set-mime-header-decoding-mode nil)
282                         (gnus-Subject-save-in-folder)
283                         (tm-gnus/set-mime-header-decoding-mode mm)
284                         )))))))
285 (add-hook 'gnus-startup-hook
286           (function
287            (lambda ()
288              (setq gnus-default-article-saver
289                    (function
290                     (lambda ()
291                       (interactive)
292                       (let ((mm mime/header-decoding-mode))
293                         (tm-gnus/set-mime-header-decoding-mode nil)
294                         (gnus-summary-save-in-folder)
295                         (tm-gnus/set-mime-header-decoding-mode mm)
296                         )))))))
297 \end{verbatim}
298
299 \subsection{reply ¤¹¤ë»þ Subject ¤Î encoding Ë¡¤ò reply ¸µ¤Ë¹ç¤ï¤»¤ë}
300
301 Reply ¤¹¤ë»þ¡¢reply ¸µ¤Î Subject ¤Ë ASCII °Ê³°¤Îʸ»ú½¸¹ç¤ÎÆþ¤Ã¤Æ¤¤¤ë
302 ¾ì¹ç¡¢reply ¸µ¤¬ MIME encode ¤µ¤ì¤Æ¤¤¤¿¤é encode ¤·¡¢¤½¤¦¤Ç¤Ê¤«¤Ã¤¿¤é
303 À¸¤ÇÆþ¤ì¤¿¤¤¾ì¹ç¤Ï¡¢¼¡¤Î¤è¤¦¤ËÀßÄꤷ¤Þ¤¹¡£
304
305 \begin{verbatim}
306 (add-hook 'gnus-article-prepare-hook
307           (function
308            (lambda ()
309              (if (mime/exist-encoded-word-in-subject)
310                  (setq mime/no-encoding-header-fields '("X-Nsubject"))
311                (setq mime/no-encoding-header-fields '("X-Nsubject" "Subject"))
312                ))))
313 \end{verbatim}
314
315
316 \chapter{tm-view}
317
318 tm-view ¤Ï MIME message ¤ò±ÜÍ÷¤¹¤ë¤¿¤á¤Îµ¡Ç½¤òÄ󶡤¹¤ë module ¤Ç¤¹¡£
319 tm-view ¤Ï mime/viewer-mode ¤È¤¤¤¦ mode ¤òÄ󶡤·¤Þ¤¹¡£
320
321 mime/viewer-mode ¤Îµ¡Ç½¤Ë´Ø¤·¤Æ¤Ï¡¢\ref{sec:mime/viewer-mode} Àá¤ò»²¾È
322 ¤·¤Æ²¼¤µ¤¤¡£
323
324 \section{content ¤Î decode ¾ò·ï¤ÎÀßÄê}
325
326 ÊÑ¿ô mime/content-decoding-condition ¤Ï decode »þ¤Î method ¤ò»ØÄꤹ¤ë
327 ¤¿¤á¤ÎÊÑ¿ô¤Ç¡¢tm-view 4 ¤ÎÊÑ¿ô mime/content-decoding-method-alist ¤ËÁê
328 Åö¤·¤Þ¤¹¡£
329
330 ÊÑ¿ô mime/content-decoding-method-alist ¤Ç¤Ï¡¢Ã±¤Ë 
331 content-type/subtype ¤ËÂФ¹¤ë method ¤ò»ØÄꤹ¤ë¤³¤È¤·¤«¤Ç¤­¤Þ¤»¤ó¤Ç¤·
332 ¤¿¤¬¡¢ÊÑ¿ô mime/content-decoding-condition ¤Ç¤Ï decode »þ¤ÎÀ©Ìó¾ò·ï¤ò
333 ½ñ¤¯¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
334
335 ÊÑ¿ô mime/content-decoding-condition ¤Ï¡¢
336
337 \begin{eqnarray*}
338   (¾ò·ï_1 \;\; ¾ò·ï_2 \;\; ...)
339 \end{eqnarray*}
340
341 \noindent ¤È¤¤¤¦·Á¤ò¤·¤¿ list ¤Ç¡¢³Æ¾ò·ï¤Ï
342
343 \begin{eqnarray*}
344   ((field-type_1 \; . \; value_1) \;\;
345   (field-type_2 \; . \; value_2) \;\; ...)
346 \end{eqnarray*}
347
348 \noindent ¤È¤¤¤¦·Á¤ÎÏ¢ÁÛ list ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
349
350 Î㤨¤Ð¡¢text/plain ¤Î»þ¡¢tm-plain ¤òµ¯Æ°¤¹¤ë»þ¡¢
351
352 \begin{quote}
353   ((type . "text/plain")
354   (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
355 \end{quote}
356
357 \noindent ¤È¤¤¤¦¾ò·ï¤ò½ñ¤­¤Þ¤¹¡£¸«¤Æ¤ÎÄ̤ꡢ³°Éô method ¤Î°ú¿ô¤¬½ñ¤±¤ë
358 ¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£¾Ü¤·¤¯¤Ï \ref{sec:method-arguments} Àá¤Ç½Ò¤Ù¤Þ¤¹¡£
359
360 ¤³¤Î¾ò·ï¤Ï text/plain ¤Ç¤¢¤ë content ¤Ê¤éÁ´¤Æ¤Î decoding-mode ¤ÇÍ­¸ú¤Ç
361 ¤¹¡£¤·¤«¤·¡¢
362
363 \begin{quote}
364   ((type . "text/plain")
365   (method "tm-plain" nil 'file 'type 'encoding 'mode 'name)
366   (mode . "play"))
367 \end{quote}
368
369 \noindent ¤Ê¤é¡¢play mode °Ê³°¤Ç¤ÏÍ­¸ú¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
370
371 µÕ¤Ë¡¢
372
373 \begin{quote}
374   ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file)
375   (mode . "play"))
376 \end{quote}
377
378 \noindent ¤Ê¤é¡¢Á´¤Æ¤Î content-type ¤Î play mode ¤ÇÍ­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£
379
380 ¤³¤¦¤·¤Æ³Æ¾ò·ï¤òÁ°¤«¤é¸«¤Æ¹Ô¤­¡¢ºÇ½é¤ËÍ­¸ú¤Ë¤Ê¤Ã¤¿¾ò·ï¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
381
382
383 \subsection{method ¤Î°ú¿ô¤Î»ØÄê¤Î»ÅÊý}
384 \label{sec:method-arguments}
385
386 ¾ò·ï¤Î method field ¤Ï
387
388 \begin{eqnarray*}
389   (method \; . \; SYMBOL)
390 \end{eqnarray*}
391
392 \noindent ¤«
393
394 \begin{eqnarray*}
395   (method \; Ê¸»úÎó \; FLAG \; °ú¿ô_1 \; °ú¿ô_2 \; ...)
396 \end{eqnarray*}
397
398 \noindent ¤È¤¤¤¦·Á¤ò¤·¤Æ¤¤¤Þ¤¹¡£
399
400 method field ¤ÎÃͤ¬ symbol ¤Ç¤¢¤ë¾ì¹ç¤Ï¡¢ÆâÉô method ¤È¤·¤Æµ¯Æ°¤µ¤ì¤Þ
401 ¤¹¡£
402
403 method field ¤ÎÃͤ¬ list ¤Ç¤¢¤ë¾ì¹ç¡¢³°Éô method ¤È¤·¤Æµ¯Æ°¤µ¤ì¤Þ¤¹¡£
404 ¤³¤Î¾ì¹ç¡¢
405
406 \begin{quote}
407   \begin{tabular}{lcl}
408     Ê¸»úÎó&:&³°Éô method ¤Î̾Á° \\
409     FLAG&:& t ¤Ê¤é content header ¤â³°Éô method ¤ËÅϤ¹¡£
410     nil ¤Ê¤é content body ¤Î¤ß¤òÅϤ¹¡£\\
411     °ú¿ôÎó&:&³°Éô method ¤Î°ú¿ô
412   \end{tabular}
413 \end{quote}
414
415 \noindent ¤È²ò¼á¤µ¤ì¤Þ¤¹¡£
416
417 ¤Þ¤¿¡¢³°Éô method ¤Î°ú¿ô¤Ï¼¡¤Î¤è¤¦¤Ê·Á¼°¤Ç½ñ¤­¤Þ¤¹¡£
418
419 \begin{quote}
420   \begin{tabular}{lcl}
421     Ê¸»úÎó&:&¤½¤Îʸ»úÎó¤òÅϤ¹ \\
422     'SYMBOL&:&SYMBOL ¤ò key ¤È¤·¤¿ÃͤòÅϤ¹\\
423     'ʸ»úÎó&:&ʸ»úÎó¤ò key ¤È¤·¤¿ÃͤòÅϤ¹
424   \end{tabular}
425 \end{quote}
426
427 'SYMBOL ¤Ç»ØÄê¤Ç¤­¤ë¤â¤Î¤Ë¤Ï¡¢
428
429 \begin{quote}
430   \begin{tabular}{lcl}
431     'file&:&content ¤òÅϤ¹¤¿¤á¤Î file Ì¾ \\
432     'type&:&content-type/sub-type ̾ \\
433     'encoding&:&content-transfer-encoding \\
434     'mode&:&decoding mode \\
435     'name&:&file ¤ËÍ¾ì¹ç¤Î file Ì¾
436   \end{tabular}
437 \end{quote}
438
439 \noindent ¤Ê¤É¤¬¤¢¤ê¡¢'ʸ»úÎó ¤Ç¤Ï Content-Type field ¤Î parameter ¤Î
440 Ãͤ¬»ØÄê¤Ç¤­¤Þ¤¹¡£
441
442
443 \subsection{Îã}
444
445 ½é´üÃͤϰʲ¼¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
446
447 \begin{verbatim}
448 (defvar mime/content-decoding-condition
449   '(((type . "text/plain")
450      (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
451     ((type . "text/x-latex")
452      (method "tm-latex" nil 'file 'type 'encoding 'mode 'name))
453     ((type . "audio/basic")
454      (method "tm-au"    nil 'file 'type 'encoding 'mode 'name))
455     ((type . "image/gif")
456      (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
457     ((type . "image/jpeg")
458      (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
459     ((type . "image/tiff")
460      (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
461     ((type . "image/x-tiff")
462      (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
463     ((type . "image/x-xbm")
464      (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
465     ((type . "image/x-pic")
466      (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
467     ((type . "video/mpeg")`
468      (method "tm-mpeg"  nil 'file 'type 'encoding 'mode 'name))
469     ((type . "application/octet-stream")
470      (method "tm-file"  nil 'file 'type 'encoding 'mode 'name))
471     ((type . "message/partial")
472      (method . mime/decode-message/partial-region))
473     ((method "metamail" t
474              "-m" "tm" "-x" "-d" "-z" "-e" 'file)(mode . "play"))
475     ))
476 \end{verbatim}
477
478 Î㤨¤Ð¡¢¡ÖÁ´Éô metamail »È¤¦¤ó¤ä¡×¤È¤¤¤¦¾ì¹ç¡¢
479
480 \begin{verbatim}
481 (setq mime/content-decoding-condition
482       '(
483         ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file))
484        ))
485 \end{verbatim}
486
487 \noindent ¤È¤¹¤ì¤Ð OK ¤Ç¤¹¡£
488
489 ¹©Éפ¹¤ì¤Ð¡¢¤«¤Ê¤êÊ£»¨¤Ê¾ò·ï¤¬½ñ¤±¤ë¤Ç¤·¤ç¤¦¡£
490
491
492 \section{method script}
493 \label{sec:method}
494
495 ³Æ method ¤Ï shell script ¤Ç½ñ¤­¤Þ¤¹¡£tm-verw.el ¤«¤éÅϤµ¤ì¤ë°ú¿ô¤Ï¡¢
496 ÊÑ¿ô mime/content-decoding-condition ¤Ç»ØÄê¤Ç¤­¤Þ¤¹¤¬¡¢É¸½àŪ¤Ê°ú¿ôÎó
497 ¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£
498
499 \medskip
500 \begin{center}
501   \begin{tabular}{|c|l|} \hline
502     °ú¿ô & \multicolumn{1}{|c|}{ ÃÍ }\\ \hline
503     \$1  & decode Á°¤Î file Ì¾          \\
504     \$2  & Content-Type (type/sub-type) \\
505     \$3  & encoding
506     \{7bit / quoted-printable / base64 / 8bit / binary / ...\}\\
507     \$4  & decoding-mode \{play / extract / print\}           \\
508     \$5  & file ̾                                            \\ \hline
509   \end{tabular}
510 \end{center}
511 \medskip
512
513 ¤Þ¤¿¡¢message/partial ¤À¤±¤Ï tm-view.el ¼«¿È¤ÇÉü¸µ¤·¤Þ¤¹¡£
514
515
516 \section{ɽ¼¨}
517
518 mime/viewer-mode ¤ËÆþ¤ë¤È¡¢³Æ content ¤Ï preview buffer ¤Ë
519
520 \begin{verbatim}
521 [1 (text/plain)]
522
523 ËÜʸ
524 \end{verbatim}
525
526 \noindent ¤Î¤è¤¦¤Ë²Ã¹©¤µ¤ì¤Æɽ¼¨¤µ¤ì¤Þ¤¹¡£tm-view ¤Ç¤Ï content ¤òɽ¼¨
527 ¤¹¤ëºÝ¡¢
528
529 \begin{itemize}
530 \item content subject
531 \item content header
532 \item content body
533 \end{itemize}
534
535 \noindent ¤È¤¤¤¦£³¤Ä¤ÎÉôʬ¤Ëʬ¤±¤Æ°·¤ï¤ì¤Þ¤¹¡£
536
537
538 \subsection{content subject}
539
540 content subject ¤Ï preview buffer ¤Ç content ¤ÎÀèƬ¤òɽ¤¹¤¿¤á¤ÎÉôʬ¤Ç¡¢
541 ɸ½à¤Ç¤Ï¡¢
542
543 \begin{quote}
544   [cid Âê̾ (·¿)]
545 \end{quote}
546
547 \noindent ¤Î¤è¤¦¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£cid ¤Ï message ¤ÎÃæ¤Ç¤Î content ¤Î°ÌÃÖ
548 ¤òɽ¤¹¤â¤Î¤Ç¡¢ÀáÈÖ¹æ¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¹¡£Âê̾¤Ï¡¢Subject ¤ä 
549 Content-Description ¤Ê¤É¤Ë½ñ¤«¤ì¤¿Ê¸»úÎ󤫤éºî¤é¤ì¤Þ¤¹¡£·¿¤Ï 
550 Content-Type ¤Ë½ñ¤«¤ì¤¿ type/subtype ¤Î¤³¤È¤Ç¤¹¡£
551
552 ¤³¤Î content subject ¤Îɽ¼¨¤ÏÊÑ¿ô mime/make-content-subject-function 
553 ¤Ë¤è¤Ã¤ÆÀßÄê¤Ç¤­¤Þ¤¹¡£´ûÄêÃͤϡ¢
554
555 \begin{verbatim}
556 (defvar mime/make-content-subject-function
557   (function
558    (lambda (cid subj ctype)
559      (insert
560       (format "[%s %s (%s)]\n"
561               (if (listp cid)
562                   (mapconcat (function
563                               (lambda (num)
564                                 (format "%s" (+ num 1))
565                                 ))
566                              cid ".")
567                 "0")
568               subj (car ctype)))
569      )))
570 \end{verbatim}
571
572 \noindent ¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢Î㤨¤Ð¡¢
573
574 \begin{verbatim}
575 (setq mime/make-content-subject-function
576       (function
577        (lambda (cid subj ctype)
578          (if (not (member (car ctype) mime/default-showing-Content-Type-list))
579              (insert
580               (format "[%s %s (%s)]\n"
581                       (if (listp cid)
582                           (mapconcat (function
583                                       (lambda (num)
584                                         (format "%s" (+ num 1))
585                                         ))
586                                      cid ".")
587                         "0")
588                       subj (car ctype))))
589          )))
590 \end{verbatim}
591
592 \noindent ¤È¤¹¤ì¤Ð±£¤µ¤ì¤¿ content ¤À¤± content subject ¤òɽ¼¨¤¹¤ë¤è¤¦
593 ¤Ë¤Ç¤­¤Þ¤¹¡£
594
595
596 \subsection{content header}
597
598 content header ¤Ï preview buffer ¤Ç content header ¤òɽ¼¨¤¹¤ë¤¿¤á¤ÎÉô
599 ʬ¤Ç¤¹¡£É¸½à¤Ç¤Ï¶õ¹Ô¤Ë¤Ê¤ê¤Þ¤¹¡£
600
601 ¤³¤Î content header ¤Îɽ¼¨¤ÏÊÑ¿ô mime/make-content-header-filter ¤Ë¤è¤Ã
602 ¤ÆÀßÄê¤Ç¤­¤Þ¤¹¡£´ûÄêÃͤϡ¢
603
604 \begin{verbatim}
605 (defvar mime/make-content-header-filter
606   (function
607    (lambda (cid)
608      (if (listp cid)
609          (delete-region (goto-char (point-min))
610                         (or (and (re-search-forward "^$" nil t)
611                                  (match-end 0))
612                             (point-max))
613                         )
614        )
615      )))
616 \end{verbatim}
617
618 \noindent ¤È¤Ê¤Ã¤Æ¤ª¤ê¡¢content header ¤ò body ¤È¤Î¶­¤Î¶õ¹Ô¤Þ¤Çºï½ü¤¹
619 ¤ë¤È¤¤¤¦É÷¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£Î㤨¤Ð¡¢
620
621 \begin{verbatim}
622 (setq mime/make-content-header-filter
623   (function
624    (lambda (cid)
625     )))
626 \end{verbatim}
627
628 \noindent ¤È¤¹¤ì¤Ð¡¢Á´¤Æ¤Î content header field ¤òɽ¼¨¤Ç¤­¤Þ¤¹¡£
629
630
631 \subsection{content body}
632
633 preview buffer ¤Ë content body ¤òɽ¼¨¤¹¤ëºÝ¡¢content-type Ëè¤Ë
634
635 \begin{enumerate}
636 \item ±£ÊÃ
637 \item ²Ã¹©
638 \end{enumerate}
639
640 \noindent ¤È¤¤¤¦½èÍý¤¬¹Ô¤Ê¤ï¤ì¤Þ¤¹¡£
641
642 ±£ÊäÏÈó text part ¤ò±£¤¹¤¿¤á¤Î½èÍý¤Ç¡¢ÊÑ¿ô 
643 mime/default-showing-Content-Type-list ¤ËÀßÄꤵ¤ì¤¿ content-type °Ê³°
644 ¤Î content ¤¬±£Ê䵤ì¤Þ¤¹¡£¤³¤ÎÊÑ¿ô¤Î´ûÄêÃͤϡ¢
645
646 \begin{verbatim}
647 (defvar mime/default-showing-Content-Type-list
648   '("text/plain" "text/richtext" "text/enriched" "text/x-latex" nil))
649 \end{verbatim}
650
651 \noindent ¤Ç¡¢text/plain, text/richtext, text/enriched, text/x-latex, 
652 µÚ¤Ó¡¢Èó MIME content ¤Î¤ß¤¬É½¼¨¤µ¤ì¡¢¤½¤ì°Ê³°¤Ï¡¢±£Ê䵤ì¤Þ¤¹¡£
653
654 ±£Ê䵤ì¤Ê¤«¤Ã¤¿ content ¤ËÂФ·¤Æ¡¢²Ã¹©½èÍý¤¬¹Ô¤Ê¤ï¤ì¤Þ¤¹¡£¤½¤Î 
655 content ¤Î content-type ¤ò key ¤Ë¤·¤ÆÊÑ¿ô mime/content-filter-alist ¤ò
656 °ú¤­¡¢¤½¤ÎÃÍÉô¤Ë½ñ¤«¤ì¤¿´Ø¿ô¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
657
658 ÊÑ¿ô mime/content-filter-alist ¤Î´ûÄêÃͤϠnil ¤Ç¤¹¤¬¡¢tm-rich.el ¤ò 
659 load ¤¹¤ë¤È¡¢
660
661 \begin{verbatim}
662 (aput 'mime/content-filter-alist
663       "text/enriched" (function mime/decode-text/enriched-body))
664 \end{verbatim}
665
666 \noindent ¤Î¤è¤¦¤Ë text/enriched ¤ËÂФ¹¤ë²Ã¹©½èÍý¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£
667
668
669 \section{À©¸Â}
670
671 Éí°¤Î BASE64 decoder ¤Ç¤¢¤ë decode-b.c ¤Ï¤¤¤¤²Ã¸º¤Êºî¤ê¤Ê¤Î¤Ç¡¢Æ°¤«¤Ê
672 ¤«¤Ã¤¿¤é¡¢Ã»¤¤¥×¥í¥°¥é¥à¤Ê¤Î¤Ç¡¢°Õ¤òµâ¤ó¤Ç½¤Àµ¤·¤Æ²¼¤µ¤¤¡£
673 (\verb+^+\_\verb+^+;
674
675 ¤Þ¤¿¡¢metamail Éí°¤Î mmencode ¤ò»È¤Ã¤Æ decode ¤·¤Æ¤âÎɤ¤¤Ç¤·¤ç¤¦¡£
676
677 ¤Þ¤¿¡¢Quoted-Printable ¤Î decoder ¤ÏÉí°¤·¤Þ¤»¤ó¤Î¤Ç¡¢mmencode ¤ò»È¤Ã
678 ¤Æ²¼¤µ¤¤¡£
679
680
681 \chapter{tiny-mime}
682
683 tiny-mime ¤Ï Mule, NEmacs, NEpoch ¾å¤ÇÆ°ºî¤¹¤ë MIME header ¤Î 
684 encoder/decoder ¤Ç¤¹¡£tiny-mime ¤Ï¡¢ÀΡ¢¤¨¤Ê¤ß ¤Ä¤°¤È¤â ¤µ¤ó¤¬ 
685 fj.editor.emacs ¤ËÅê¹Æ¤µ¤ì¤¿ ISO-2022-JP MIME header decoder ¤ò¸µ¤Ë¤·
686 ¤Æ¤¤¤Þ¤¹¡£
687
688 ¸½ºß¤Ç¤Ï¡¢Åö»þ¤Î¤â¤Î¤ËÈæ¤Ù¡¢
689
690 \begin{itemize}
691 \item decoding »þ¤Ë¤ª¤±¤ë unfolding µ¡Ç½¤ÎÄɲÃ
692 \item ISO-2022-JP ¤Ë²Ã¤¨¡¢ISO-2022-KR, ISO-8859-*, US-ASCII ¤Ê¤É¤Î¿¸À
693   ¸ì header ¤Î encode/decode µ¡Ç½¤ÎÄɲÃ
694 \item Q-encoding ¤ÎÄɲÃ
695 \item RFC 1522 ¤Ø¤ÎÂбþ
696 \end{itemize}
697
698 \noindent ¤È¤¤¤Ã¤¿µ¡Ç½¶¯²½¤¬¹Ô¤Ê¤ï¤ì¤Æ¤¤¤Þ¤¹¡£
699
700 tiny-mime ¤Ï tm ¤Ë¤ª¤±¤ë MIME header encoder/decoder ¤Ç¤¢¤ê¡¢tm-view,
701 tm-MUA ¤¬¤³¤ì¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£
702
703
704 \section{mime/decode-message-header}
705
706 {\tt mime/decode-message-header} ¤Ï MIME header ¤ò decode ¤¹¤ë¤¿¤á¤ÎÌ¿
707 Îá¤Ç¤¹¡£tiny-mime ¤¬ load ¤µ¤ì¤Æ¤¤¤ë¾õÂ֤ǡ¢decode ¤·¤¿¤¤ buffer ¤Î¾å
708 ¤Ç¡¢
709
710 {\list{}{\leftmargin=8ex}\item[]
711 \par
712 M-x {\tt mime/decode-message-header}
713 \endlist}
714
715 \noindent ¤ò¼Â¹Ô¤¹¤ë¤È¡¢¤½¤Î buffer ¾å¤Î MIME header ¤¬ decode ¤µ¤ì¤Þ
716 ¤¹¡£
717
718 tm-MUA ¤ä tm-view ¤Ï¤³¤ÎÌ¿Îá¤ò¸Æ¤ó¤Ç¤¤¤ë¤Î¤Ç¡¢¤³¤ì¤é¤òÍøÍѤ·¤Æ¤¤¤ë¾ì¹ç¡¢
719 Íۤˤ³¤ÎÌ¿Îá¤ò¼Â¹Ô¤¹¤ëɬÍפÏ̵¤¤¤Ç¤·¤ç¤¦¡£
720
721
722 \section{mime/decode-region}
723
724 region ¤ËÂФ·¤Æ¡¢
725
726 {\list{}{\leftmargin=8ex}\item[]
727 \par
728 M-x {\tt mime/decode-region}
729 \endlist}
730
731 \noindent ¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ç¡¢°úÍѤʤɤǠbuffer ¤Ë»Ä¤Ã¤¿ MIME header ¤ò 
732 decode ¤Ç¤­¤Þ¤¹¡£
733
734
735 \chapter{¥Ð¥°Êó¹ð¤Î»ÅÊý}
736
737 tm ¤Î¥Ð¥°¤ò¸«¤Ä¤±¤¿¤é fj.editor.emacs ¤Ë post ¤¹¤ë¤«¡¢tm ML
738 $<$tm@chamonix.jaist.ac.jp$>$ ¤Ë mail ¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¡£
739
740 tm ML ¤Ç¤Ï tm ¤Î¥Ð¥°¾ðÊó¤Î¸ò´¹¤äºÇ¿·ÈǤÎÇÛÉÛ¡¢tm ¤Î²þÎɤ˴ؤ¹¤ëµÄÏÀ¤ò
741 ¹Ô¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£tm ML ¤Ë»²²Ã¤·¤¿¤¤Êý¤Ï
742
743 \begin{center}
744   tm-admin@chamonix.jaist.ac.jp
745 \end{center}
746
747 \noindent ¤Þ¤Ç mail ¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¡£ÅÐÏ¿¤Ï¼êÆ°¤Ç¤¹¤Î¤Ç¡¢¤Ç¤­¤ì¤Ð¡¢¼«Á³
748 ¸À¸ì¤Ç½ñ¤¤¤Æ²¼¤µ¤¤¡£(\verb+^+\_\verb+^+)
749
750 \end{document}