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