This commit was generated by cvs2svn to compensate for changes in r434,
[elisp/tm.git] / tiny-mime-jp.tex
1 \documentstyle[a4j]{jarticle}
2 \setcounter{secnumdepth}{6}
3 \setcounter{tocdepth}{6}
4 \topsep=0.1cm
5 \parsep=0.1cm
6 \itemsep=0.0cm
7 \begin{document}
8 \title{
9 tiny-mime.el ÀâÌÀ½ñ}
10 \author{
11 ¼é²¬ ÃÎɧ\\
12 }
13 \date{
14 1994ǯ7·î27Æü}
15 \maketitle
16 \medskip
17 \par
18 ¤³¤ÎÀâÌÀ½ñ¤Ï ol2 ¤È plain2 ¤òÍѤ¤¤ë¤³¤È¤Ë¤è¤Ã¤Æ LaTeX ·Á¼°¤ËÊÑ´¹¤¹¤ë
19 ¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
20 \medskip
21 \medskip
22
23 \section{tiny-mime.el ¤È¤Ï}
24 \medskip
25 \par
26 tiny-mime.el ¤Ï Mule, NEmacs, NEpoch ¾å¤ÇÆ°ºî¤¹¤ë MIME message
27 header ¤Î encoder/decoder ¤Ç¤¹¡£¥ª¥ê¥¸¥Ê¥ë¤Ï¡¢ÀΡ¢¤¨¤Ê¤ß ¤Ä¤°¤È¤â ¤µ¤ó
28 ¤¬ fj.editor.emacs ¤ËÅê¹Æ¤µ¤ì¤¿ MIME message header ¤Î decoder ¤Ç¤¹¡£
29 \medskip
30 \par
31 ¸½ºß¤Ç¤Ï¡¢Åö»þ¤Î¤â¤Î¤ËÈæ¤Ù¡¢
32 \medskip
33 \begin{itemize}
34 \item decoding »þ¤Ë¤ª¤±¤ë unfolding µ¡Ç½
35 \item ISO-2022-JP ¤Ë²Ã¤¨¡¢ISO-8859-*, US-ASCII ¤Ê¤É¤Î encoding/decoding
36 \item Q-encoding ¤Î decoding
37 \medskip
38 \end{itemize}
39 \par
40 ¤È¤¤¤Ã¤¿µ¡Ç½¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£
41 \medskip
42 \medskip
43
44 \section{tiny-mime.el ¤Î¥µ¥Ý¡¼¥È¤¹¤ë character set, encoding}
45 \medskip
46 \par
47 tiny-mime.el ¤Ï¡¢¼¡¤Î character set, encoding ¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£
48 \medskip
49
50 \subsection{Mule}
51 \medskip
52 \par
53 ISO-2022-JP, US-ASCII, ISO-8859-1..9, ISO-2022-CN, ISO-2022-KR,
54 EUC-KR ¤Ê¤É¤Î encoding/decoding ¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£¤Þ¤¿¡¢´Ø¿ô
55 mime/set-charset-and-encoding ¤ÇÄɲá¦Êѹ¹¤¬¤Ç¤­¤Þ¤¹¡£
56 \medskip
57
58 \subsection{NEmacs, NEpoch}
59 \medskip
60 \par
61 ISO-2022-JP, US-ASCII ¤Î encoding/decoding ¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£
62 \medskip
63 \par
64 ¤Þ¤¿¡¢ISO-8859-*¤Ç¤¢¤Ã¤Æ¤â¡¢encoded-text ¤Ë´Þ¤Þ¤ì¤ëʸ»úÎ󤬼ºݤˤÏ
65 ASCII ¤Çɽ¤»¤ëÈϰϤʤéɽ¼¨¤·¤Þ¤¹¡£
66 \medskip
67 \medskip
68
69 \section{tiny-mime.el ¤Î´Êñ¤Ê»È¤¤Êý}
70 \medskip
71
72 \subsection{decode}
73 \medskip
74 \par
75 tiny-mime.el ¤ò load ¤·¤Æ¡¢decode ¤·¤¿¤¤ buffer ¾å¤Ç¡¢
76 \medskip
77 {\list{}{\leftmargin=8ex}\item[]
78 \par
79 M-x mime/decode-message-header
80 \endlist}
81 \medskip
82 \par
83 ¤ò¼Â¹Ô¤·¤Þ¤¹¡£
84 \medskip
85 \par
86 ¤Þ¤¿¡¢decode ¤·¤¿¤¤ region ¤ò
87 \medskip
88 {\baselineskip=10pt
89 \begin{verbatim}
90         M-x mime/decode-region
91 \end{verbatim}}
92 \medskip
93 \par
94 ¤Ç decode ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£°úÍѤʤɤǠbody-part ¤Ë»Ä¤Ã¤¿
95 encoded-word ¤ò decode ¤¹¤ë¤Î¤ËÊØÍø¤Ç¤·¤ç¤¦¡£
96 \medskip
97
98 \subsection{encode}
99 \medskip
100 \par
101 tiny-mime.el ¤ò load ¤·¤Æ¡¢encode ¤·¤¿¤¤ buffer ¾å¤Ç¡¢
102 \medskip
103 {\list{}{\leftmargin=8ex}\item[]
104 \par
105 M-x mime/encode-message-header
106 \endlist}
107 \medskip
108 \par
109 ¤ò¼Â¹Ô¤·¤Þ¤¹¡£
110 \medskip
111 \medskip
112
113 \section{tiny-mime.el ¤ÎÊÑ¿ô}
114 \medskip
115
116 \subsection{mime/no-encoding-header-fields}
117 \medskip
118 \par
119 tiny-mime.el ¤Ç encode ¤·¤Ê¤¤ message header ¤Î field ¤ò»ØÄꤷ¤Þ¤¹¡£
120 \medskip
121 \par
122 default ¤Ç¤Ï X-Nsubject ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£
123 \medskip
124 \par
125 Î㡧 X-Nsubject ¤È Subject ¤ò encode ¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£
126 \medskip
127 {\baselineskip=10pt
128 \begin{verbatim}
129 ----------------------------------------------------------------------
130 (setq mime/no-encoding-header-fields '("X-Nsubject" "Subject"))
131 ----------------------------------------------------------------------
132 \end{verbatim}}
133 \medskip
134 \par
135 ¡ÎÃí°Õ¡Ï mime.el ¤ÈÊ»ÍѤ¹¤ë¾ì¹ç¡¢tiny-mime.el ¤¬ encode ¤·¤Ê¤¯¤Æ¤â¡¢
136 mime.el ¤¬ encode ¤¹¤ë¤Î¤Ç¡¢mime.el ¤Î message header encoder ¤¬Æ¯¤«¤Ê
137 ¤¤¤è¤¦¤Ë¤ËÀßÄꤷ¤Þ¤¹¡£
138 \medskip
139
140 \subsection{mime/use-X-Nsubject}
141 \medskip
142 \par
143 ¤³¤ÎÊÑ¿ô¤ÎÃͤ¬ t ¤Î¾ì¹ç¡¢message header ¤ò encode ¤¹¤ë»þ¡¢encode ¤·
144 ¤¿·ë²Ì¡¢Subject ¤Ë encoded-word ¤¬´Þ¤Þ¤ì¤ë¾ì¹ç¡¢Subject ¤ò decode ¤·¤¿
145 ¤â¤Î¤òÆþ¤ì¤¿ X-Nsubject ¤òºîÀ®¤·¤Þ¤¹¡£
146 \medskip
147 \par
148 default ¤Ç¤Ï nil ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£
149 \medskip
150 \par
151 ¡ÎÃí°Õ¡ÏMule ¤Ç ISO-2022-JP ¤Ë´Þ¤Þ¤ì¤ë¤â¤Î°Ê³°¤Îʸ»ú½¸¹ç¤ò»È¤¦¾ì¹ç¤Ï¡¢
152 ¤³¤ì¤ò»ØÄꤷ¤Ê¤¤Êý¤¬¸­ÌÀ¤Ç¤¹¡£
153 \medskip
154
155 \subsection{mail-header-separator}
156 \medskip
157 \par
158 ´Ø¿ô mime/encode-message-header ¤Ë¤ª¤±¤ë message header ¤È body part
159 ¤Î¶èÀÚ¤ê¤òɽ¤¹ÊÑ¿ô¤Ç¤¹¡£Î㤨¤Ð¡¢GNUS ¤Ç¤Ï "--text follows this line--"
160 ¤¬»ØÄꤵ¤ì¤Þ¤¹¡£
161 \medskip
162 \par
163 ¡ÎÃí°Õ¡Ï¤³¤ÎÊÑ¿ô¤Îʸ»úÎó¤Ï¡¢version 2.6 ¤è¤êÀµµ¬É½¸½¤Ç¤Ï¤Ê¤¯¤Ê¤ê¤Þ¤·¤¿¡£
164 \medskip
165 \medskip
166
167 \section{mailer, news reader ¤Ø¤ÎÁȤ߹þ¤ß}
168 \medskip
169 \par
170 Æü¾ïŪ¤Ë¡¢Ìµ°Õ¼±¤Ë MIME header ¤òËÜÍè¤Î¸À¸ì¤Ç¸«¤¿¤¤¤È¤¤¤¦¤Î¤ÏÅöÁ³¤Î
171 Íßµá¤Ç¤¹¡£¤½¤³¤Ç¡¢tiny-mime.el ¤ò mailer ¤ä news reader ¤ËÁȤ߹þ¤à¤È¼«
172 ưŪ¤Ë MIME header ¤Î encode/decode ¤¬¤Ç¤­¤Þ¤¹¡£
173 \medskip
174 \par
175 ¤Þ¤¿¡¢metamail ¤ò»È¤Ã¤Æ¤ª¤é¤ì¤ëÊý¤Ç¤â¡¢ÉáÃʤϠmessage header ¤Î
176 decode ¤À¤±¤ÇÎɤ¯¤Æ¡¢³¨¤ä²»¤Ê¤É¤òºÆÀ¸¤¹¤ë»þ¤À¤± metamail ¤ò»È¤¦¤È¤¤¤¦
177 ¤è¤¦¤Ê»È¤¤Êý¤â¤Ç¤­¤Þ¤¹¡£
178 \medskip
179 \par
180 ¤³¤ÎÌÜŪ¤ò¼Â¸½¤¹¤ë¤Ë¤Ï¡¢mailer ¤ä news reader ¤ÎŬÀڤʠhook ¤Ë
181 mime/decode-message-header ¤òÆþ¤ì¤ì¤ÐÎɤ¤¤Ç¤·¤ç¤¦¡£¤Þ¤¿¡¢Ê¸»úÎó¤Î
182 decode ¤ò¤·¤¿¤¤¾ì¹ç¤Î¤¿¤á¤Ë¡¢
183 \medskip
184 {\list{}{\leftmargin=8ex}\item[]
185 \par
186 (mime/decode-string Ê¸»úÎó)
187 \endlist}
188 \medskip
189 \par
190 ¤È¤¤¤¦´Ø¿ô¤âÍÑ°Õ¤·¤Æ¤¤¤Þ¤¹¡£
191 \medskip
192 \par
193 GNUS ¤È mh-e ¤Ë´Ø¤·¤Æ¤Ï¡¢tm-gnus, tm-mh-e ¤È¤¤¤¦ MIME Âбþ²½¥â¥¸¥å¡¼
194 ¥ë¤òÍÑ°Õ¤·¤Æ¤¤¤Þ¤¹¡£
195 \medskip
196 \par
197 ¤³¤ì¤é¤Î¡¢³Æ MUA ¤ËÂбþ¤¹¤ë¥â¥¸¥å¡¼¥ë¤ò load ¤¹¤ë¤È tiny-mime.el ¤Ë
198 ¤è¤ë MIME header ¤ÎÉü¸µ¤È tm-body ¤òÍøÍѤ·¤¿ MIME body ¤ÎºÆÀ¸¤¬¹Ô¤Ê¤¨
199 ¤Þ¤¹¡£
200 \medskip
201 \par
202 ¾Ü¤·¤¯¤Ï¡¢¤½¤ì¤¾¤ì¤ÎÀâÌÀ½ñ¤ò¤ªÆɤ߲¼¤µ¤¤¡£
203 \medskip
204 \medskip
205
206 \section{mime.el ¤È¤ÎÊ»ÍÑ}
207 \medskip
208 \par
209 mime.el ¤ÈÊ»ÍѤ¹¤ëÎã¤ò¼¨¤·¤Þ¤¹¡£¤³¤ÎÎã¤Î¾ì¹ç¡¢ISO-2022-JP Ê¸»úÎó¤Î
210 encode ¤Ï tiny-mime.el ¤¬¹Ô¤Ê¤¤¡¢¤½¤ì°Ê³°¤Îʸ»ú½¸¹ç¤Ë°¤¹¤ëʸ»úÎó¤Ï
211 mime.el ¤¬ encode ¤·¤Þ¤¹¡£
212 \medskip
213 \par
214 ¤Þ¤¿¡¢tiny-mime.el ¤¬ encode ¤·¤Ê¤«¤Ã¤¿Ê¸»úÎó¤â mime.el ¤¬ encode ¤¹
215 ¤ë¤Î¤Ç¡¢·ë²ÌŪ¤Ë¡¢É¬¤ºÁ´¤Æ¤Î field ¤¬ encode ¤µ¤ì¤ë¤³¤È¤ËÃí°Õ¤·¤Æ²¼¤µ
216 ¤¤¡£
217 \medskip
218 {\baselineskip=10pt
219 \begin{verbatim}
220 ----------------------------------------------------------------------
221 ;;;
222 ;;; for Edit MIME mode
223 ;;;
224 (autoload 'mime-mode "mime" "Edit MIME message." t)
225 (autoload 'mime-convert-buffer "mime" "convert to MIME." t)
226 (autoload 'insert-signature "signature" "Insert signature" t)
227 (add-hook 'mime-mode-hook
228           (function
229            (lambda ()
230              (define-key (current-local-map)
231                "\C-c\C-s" (function insert-signature))
232              )))
233
234 ;; MIME header ¤Î encoder ¤ò tiny-mime ¤Î¤â¤Î¤ò»È¤¦¡£
235 (setq mime-translate-hook 'mime/encode-message-header)
236
237 ;;;
238 ;;; for GNUS
239 ;;;
240 (add-hook 'news-reply-mode-hook (function mime-mode))
241 (setq gnus-signature-file nil)
242
243 ;;;
244 ;;; for mh-e
245 ;;;
246 (add-hook 'mh-letter-mode-hook
247           (function
248            (lambda ()
249              (mime/decode-message-header)
250              (mime-mode)
251              (make-local-variable 'mail-header-separator)
252              (setq mail-header-separator "--------"))
253            ))
254 ----------------------------------------------------------------------
255 \end{verbatim}}
256 \medskip
257
258 \subsection{ÆÃÄê¤Î field ¤ò encode ¤·¤¿¤¯¤Ê¤¤¾ì¹ç}
259 \medskip
260 \par
261 ÆÃÄê¤Î field ¤ò encode ¤·¤¿¤¯¤Ê¤¤¾ì¹ç¡¢tiny-mime.el ¤ÎÊÑ¿ô
262 mime/no-encoding-header-fields ¤Ë¤è¤Ã¤Æ¡¢tiny-mime.el ¤Ë¤è¤ë encode ¤ò
263 ¤ä¤á¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¤¬¡¢mime.el ¤¬ encode ¤¹¤ë¤Î¤Ç¤Ï°ÕÌ£¤¬¤¢¤ê¤Þ¤»¤ó¡£
264 ¤½¤³¤Ç¡¢¼¡¤Î¤è¤¦¤ËÀßÄꤹ¤ë¤³¤È¤Ç¡¢mime.el ¤Ç¤â encode ¤·¤Ê¤¤¤è¤¦¤Ë¤Ç¤­
265 ¤Þ¤¹¡£
266 \medskip
267 {\baselineskip=10pt
268 \begin{verbatim}
269 ----------------------------------------------------------------------
270 (if (boundp 'MULE)
271     (progn
272       (defun mime-header-charset-chooser-for-mule-no-encode-ISO-2022-JP (begin end)
273         (let ((lclist (find-charset-region begin end)))
274           (cond ((null lclist) nil)             ;US-ASCII requres no encoding.
275                 ((memq lc-ltn1 lclist)
276                  '("ISO-8859-1" . "Q"))
277                 ((memq lc-ltn2 lclist)
278                  '("ISO-8859-2" . "Q"))
279                 ((memq lc-ltn3 lclist)
280                  '("ISO-8859-3" . "Q"))
281                 ((memq lc-ltn4 lclist)
282                  '("ISO-8859-4" . "Q"))
283                 ((memq lc-crl lclist)
284                  '("ISO-8859-5" . "Q"))
285                 ;;((memq lc-arb lclist)
286                 ;; '("ISO-8859-6" . "Q"))
287                 ((memq lc-grk lclist)
288                  '("ISO-8859-7" . "Q"))
289                 ((memq lc-hbw lclist)
290                  '("ISO-8859-8" . "Q"))
291                 ((memq lc-ltn5 lclist)
292                  '("ISO-8859-9" . "Q"))
293                 ((memq lc-jp lclist) nil)
294                 (t                              ;Unknown charset.  It must be Mule!
295                  '("ISO-2022-JP-2" . "B"))
296                 )))
297       (setq mime-header-charset-chooser
298             'mime-header-charset-chooser-for-mule-no-encode-ISO-2022-JP)
299       )
300   (progn
301     (defun mime-header-charset-chooser-for-nemacs-no-encode-ISO-2022-JP (begin end))
302     (setq mime-header-charset-chooser
303           'mime-header-charset-chooser-for-nemacs-no-encode-ISO-2022-JP)
304     ))
305 ----------------------------------------------------------------------
306 \end{verbatim}}
307 \medskip
308 \par
309 Íפ¹¤ë¤Ë¡¢ISO-2022-JP Ê¸»úÎó¤Î encode ¤ò mime.el ¤Ë¤µ¤»¤Ê¤¯¤¹¤ëÌõ¤Ç
310 ¤¹¡£
311 \medskip
312 \medskip
313
314 \section{charset ¤ÎÄɲá¦Êѹ¹}
315 \medskip
316 \par
317 Mule ¤Ç¤Ï¡¢´Ø¿ô mime/set-charset-and-encoding ¤Ç¡¢charset ¤ÎÄɲá¦ÊÑ
318 ¹¹¤¬¤Ç¤­¤Þ¤¹¡£
319 \medskip
320 \begin{description}
321 \item[´Ø¿ô:]mime/set-charset-and-encoding lc cs charset encoding
322 \medskip
323 \begin{description}
324 \item[lc:]charset ¤ËÂбþ¤¹¤ë leading-char ¤ò»ØÄꤹ¤ë¡£
325 \item[cs:]charset ¤ËÂбþ¤¹¤ë coding-system ¤ò»ØÄꤹ¤ë¡£1 octet Ê¸»ú
326 ½¸¹ç¤Ç coding-system ¤òºî¤é¤Ê¤¤¾ì¹ç¤Ï¡¢nil ¤ò»ØÄꤹ¤ë¡£
327 \item[charset:]MIME ¤Î charset.
328 \item[encoding:]encode ¤¹¤ëºÝ¤Î encoding.
329 \medskip
330 \medskip
331 \end{description}
332 \end{description}
333 \par
334 Î㡧 KS C5601-1987 ¤ò EUC-KR ¤Î B encoding ¤¹¤ë¤è¤¦¤ËÀßÄꤹ¤ë
335 \medskip
336 {\list{}{\leftmargin=8ex}\item[]
337 \par
338 (mime/set-charset-and-encoding lc-kr *euc-kr* "EUC-KR" "B")
339 \endlist}
340 \medskip
341 \medskip
342 \par
343 Î㡧 koi8-r ¤ò Q encoding ¤¹¤ë¤è¤¦¤ËÀßÄꤹ¤ë¡£
344 \medskip
345 {\list{}{\leftmargin=8ex}\item[]
346 \par
347 (mime/set-charset-and-encoding lc-prv11 nil "KOI8-R" "Q")
348 \endlist}
349 \medskip
350 \medskip
351 \par
352 ¡ÎÃí°Õ¡Ï¸½ºß¤Î¤È¤³¤í¡¢private character ¤ÎÀßÄê¤ÏÆñ¤¢¤ê¤Ç¤¹¡£(\verb+^+\_\verb+^+;
353 \end{document}