tm 7.73.
[elisp/tm.git] / doc / tm-charset_ja.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 tm ¤Ë¤ª¤±¤ëʸ»ú code ¤Î¼è¤ê°·¤¤¤Ë¤Ä¤¤¤Æ}
10 \author{
11 ¼é²¬ ÃÎɧ\\
12 }
13 \date{
14 1996ǯ7·î18Æü}
15 \maketitle
16 \medskip
17
18 \section{charset ¼è¤ê°·¤¤¤Ë´Ø¤¹¤ë´ðËܸ¶Â§}
19 \medskip
20 \par
21 tm ¤Ç¤Ï¸¶Â§¤È¤·¤Æ MIME ¤ÇÄê¤á¤é¤ì¤¿ charset µ¡¹½¤Ë´ð¤Å¤¤¤Æʸ»ú code
22 ¤ò¼è¤ê°·¤¦¡£¤³¤ì¤ò¼Â¸½¤¹¤ë¤¿¤á¤Ë¡¢message ¤òɽ¼¨¤¹¤ë¤¿¤á¤Î buffer
23 (preview buffer; cooked buffer) ¤Î¾¤ËÀ¸¤Î¡Ê¨¤Á¡¢code ÊÑ´¹¤µ¤ì¤Æ¤ª¤é
24 ¤º network code ¤Î¤Þ¤Þ¤Î¡Ëmessage ¤¬Æþ¤Ã¤¿ buffer (original article
25 buffer, raw buffer) ¤òÍѤ¤¤ë¤³¤È¤È¤¹¤ë¡£¤³¤Î¾ò·ï¤¬Ëþ¤¿¤µ¤ì¤ì¤Ð¡¢base64
26 ¤ä quoted-printable Åù¤Î encode ¤ò¹Ô¤Ê¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ç¤â¡¢£±¤Ä¤Î
27 message ¤ËÊ£¿ô¤Îʸ»ú code ¤òº®ºß¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
28 \medskip
29 \par
30 ¤·¤«¤·¤Ê¤¬¤é¡¢¸½¼Â¤Ë¤Ï´ö¤Ä¤«¤ÎÌäÂ꤬¸ºß¤¹¤ë¡££±¤Ä¤ÏÈó MIME message
31 ¤Î¼è¤ê°·¤¤¤Ç¤¢¤ê¡¢¤â¤¦°ì¤Ä¤Ï¾åµ­¤Î¤è¤¦¤ÊÊýË¡¤ò¤È¤ë¤³¤È¤¬º¤Æñ¤Ê MUA ¤ò
32 ÍøÍѤ¹¤ë¾ì¹ç¤Ç¤¢¤ë¡£Èó MIME message ¤ËÂФ·¤Æ¤Ï¡¢tm ¤Ï default ¤Î
33 charset ¤ò²¾Äꤹ¤ë¤³¤È¤ÇÂн褷¤Æ¤¤¤ë¡£¸å¼Ô¤ÎÌäÂê¤Ë´Ø¤·¤Æ¤Ï MUA Ëè¤Ë
34 code ÊÑ´¹ program ¤òÀßÄꤷ¡¢raw buffer ¤òºîÀ®¤¹¤ë¤³¤È¤¬º¤Æñ¤Ê MUA ¤Î¾ì
35 ¹ç¡¢7bit, 8bit, binary ¤Î¤è¤¦¤Ê encode ¤µ¤ì¤Æ¤¤¤Ê¤¤ message ¤Î charset
36 ¤Ë¤è¤ë code ÊÑ´¹¤ò¤ä¤á¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤ÇÂн褷¤Æ¤¤¤ë¡£
37 \medskip
38 \par
39 °Ê²¼¡¢¼ÂºÝ¤Îµ¡¹½¤Ë´Ø¤·¤ÆÀâÌÀ¤¹¤ë¡£
40 \medskip
41 \medskip
42
43 \section{ʸ»ú code ¤Î¼è¤ê°·¤¤¤Ë´Ø¤¹¤ë layer ¹½Â¤}
44 \medskip
45 \par
46 tm ¤Ï
47 \medskip
48 {\baselineskip=10pt
49 \begin{verbatim}
50         (4) user interface layer (tm)
51         (3) non-interactive MIME feature layer (tm)
52         (2) MIME encoding layer (MEL) / utility function layer (tl)
53         (1) emu API layer
54         (0) (API of emacs variants)
55 \end{verbatim}}
56 \medskip
57 \par
58 ¤È¤¤¤¦£µÁع½Â¤¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¬¡¢Ê¸»ú code ¤Î¼è¤ê°·¤¤¤âƱÍͤǤ¢¤ë¡£
59 \medskip
60 \par
61 Â裱ÁؤǤ¢¤ë emu API ¤ÇÁ´¤Æ¤Î emacs variant ¤ÇÍøÍѲÄǽ¤Ê´ðËÜ´Ø¿ô¤òÄó
62 ¶¡¤·¡¢Â裳ÁؤǠtm-view ¤ÇÍøÍѤ¹¤ë¤¿¤á¤Î´ðËÜŪ¤Êµ¡Ç½¤ò¼Â¸½¤·¡¢Â裴ÁؤÇ
63 ¤½¤Î³¦Ì̤òÄêµÁ¤¹¤ë¡£
64 \medskip
65 \medskip
66
67 \section{ʸ»ú code ¤Ë´Ø¤¹¤ë emu API ¤Îµ¡Ç½}
68 \medskip
69 \par
70 EMACS ¤Ë¤Ï¡¢¸µÍ衢ʸ»ú¤È¤¤¤¦³µÇ°¤Ï¸ºß¤·¤Ê¤«¤Ã¤¿¡£¤è¤Ã¤Æ¡¢¤½¤ì¤ò°·¤¦
71 ¤¿¤á¤Îµ¡Ç½¤Ï¸ºß¤·¤Ê¤«¤Ã¤¿¡£
72 \medskip
73 \par
74 emacs ¤ÎÀ¤³¦¤Ëʸ»ú code ¤È¤¤¤¦³µÇ°¤ò»ý¤Á¹þ¤ó¤À¤Î¤Ï NEmacs ¤Ç¤¢¤ë¡Ê¿
75 ʬ(\verb+^+\_\verb+^+;¡Ë¡£NEmacs ¤Ï `JIS', `EUC', `Shift JIS'¡Ê¤ª¤è¤Ó̵ÊÑ´¹¡Ë¤È¤¤¤¦£³
76 ¼ïÎà¤Î¡Ø´Á»ú code¡Ù¤òƳÆþ¤·¤¿¡£¤½¤·¤Æ¡¢¤³¤ì¤ò¿ôÃͤÇɽ¸½¤·¤¿¡£
77 \medskip
78 \par
79 NEmacs ¤ÏÆüËܸì¡Ê¤Î subset¡Ë¤·¤«°·¤¦É¬Íפ¬¤Ê¤«¤Ã¤¿¤Î¤Ç¹â¡¹£³¼ïÎà¤Îʸ
80 »ú code ¤¬»È¤¨¤ì¤Ð½½Ê¬¤Ç¤¢¤Ã¤¿¤¬¡¢¤³¤ì¤ò¿¸À¸ì²½¤·¤¿ MULE ¤Ç¤Ï¤è¤ê¿¿ô
81 ¤Îʸ»ú code ¤¬°·¤¦¤³¤È¤¬Í׵ᤵ¤ì¡¢¤Þ¤¿¡¢user ¤¬Ê¸»ú code ¤òÄêµÁ¤Ç¤­¤ë
82 ¤³¤È¤âɬÍפǤ¢¤Ã¤¿¡£¤³¤Î¤¿¤á¡¢¿ôÃͤǤϤʤ¯¡¢ÀèƬ¤ÈËöÈø¤Ë `*' ¤òÉÕ¤±¤¿
83 ¼«¸Êɾ²Á·Á¼°¤ÎÄê¿ô¤Çɽ¸½¤µ¤ì¤ë coding-system ¤È¤¤¤¦³µÇ°¤¬Æ³Æþ¤µ¤ì¤¿¡£
84 \medskip
85 \par
86 XEmacs ¤Ë mule µ¡Ç½¤òƳÆþ¤·¤è¤¦¤È¤·¤¿¿Íã¤Ï¼«¸Êɾ²Á·Á¼°¤ÎÄê¿ô¤ÎÂå¤ï
87 ¤ê¤Ë coding-system ¤òɽ¤¹¿·¤¿¤Ê·¿¤òƳÆþ¤¹¤ë¤³¤È¤Ë¤·¤¿¡£¤Þ¤¿¡¢¤³¤Î·¿¤Ë
88 Âбþ¤¹¤ë̾Á°¤ò symbol ¤ÇÍ¿¤¨¤¿¡£¤³¤Î¤¿¤á¡¢coding-system ¤òɽ¤¹ÂçÎ̤ÎÄê
89 ¿ô¤Ï°ìÁݤµ¤ì¤¿¡£
90 \medskip
91 \par
92 ¤³¤Î¤è¤¦¤Ë¡¢¸½Â¸¤¹¤ë emacs variants ¤Î´Ö¤Ç¤Ïʸ»ú code ¤Îɽ¸½Ë¡¤Ï¤µ¤Þ
93 ¤¶¤Þ¤Ç¤¢¤ë¡£¤â¤È¤â¤È¡¢emu ¤Ï¤³¤ÎʬÌî¤Ç¤â¤Ã¤È¤âµ¡Ç½¤Î¹â¤¤ MULE ¤ò¤ª¼êËÜ
94 ¤Ë¤³¤ì¤Îµ¡Ç½¤ò emulate ¤¹¤ë´Ø¿ô¤ò³Æ emacs variant ¤ËÂФ·¤ÆÄêµÁ¤¹¤ëÊýË¡
95 ¤òºÎ¤Ã¤¿¤¬¡¢MULE ¤ò¸µ¤Ë EMACS/MULE Åý¹çÈǤä XEmacs/mule ¤¬À¸¤Þ¤ì¤ë¤Ë½¾
96 ¤¤¡¢coding-system µ¡Ç½¤ò¤½¤Î¤Þ¤Þ»È¤¦¤Î¤ÏÆÀºö¤Ç¤Ï¤Ê¤¤¤ÈȽÃǤ¹¤ë¤Ë»ê¤Ã¤¿¡£
97 Âå¤ï¤ê¤Ë¤è¤êÃê¾ÝÅ٤ι⤤ MIME charset ¤Ë´Ø¤¹¤ë API ¤òÍÑ°Õ¤¹¤ë¤³¤È¤Ë¤·
98 ¤¿¡£
99 \medskip
100 \par
101 MIME charset ¤Ïʸ»ú code ¤òɽ¤¹¤â¤Î¤Ç¤¢¤ê¡¢MULE ¤Ç¤¤¤¦¤È¤³¤í¤Î
102 leading-char ¤ä EMACS/MULE ¤ä XEmacs/mule ¤Ç¤¤¤¦¤È¤³¤í¤Î charset ¤ËÁê
103 Åö¤¹¤ë¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢mule ¤Î coding-system ¤ËÁêÅö¤¹¤ëµ¡Ç½¤Ç¤¢¤ë¡£¼ÂºÝ¡¢
104 mule ¤Î coding-system ¤Î̾Á°¤È MIME charset ¤Î̾Á°¤Ï¶¦Ä̤¹¤ë¤â¤Î¤â¾¯¤Ê
105 ¤¯¤Ê¤¤¡£
106 \medskip
107 \par
108 MIME charset ¤Îɽ¸½¤Î»ÅÊý¤È¤·¤Æ¡¢emu API ¤Ç¤Ï XEmacs/mule ¤ÈƱÍÍ¡¢
109 symbol ¤òÍѤ¤¤ë¤³¤È¤Ë¤·¤¿¡£MULE ¤Î¤è¤¦¤ÊÊÑ¿ô¤ò»È¤¦¤È«Çû¤Ë´Ø¤¹¤ë check
110 ¤¬É¬ÍפǤ¢¤ë¤¬¡¢symbol ¤Ç¤Ï¤³¤Î¤è¤¦¤Ê check ¤ÏÉÔÍפǤ¢¤ë¡£¤Þ¤¿¡¢¾­ÍèŪ
111 ¤Ë¡¢XEmacs/mule ¤ÎÊýË¡¤ËÅý¹ç¤µ¤ì¤ë¤³¤È¤ò´üÂÔ¤¹¤ë°ÕÌ£¤â¤¢¤ë¡£¼ÂºÝ¡¢
112 XEmacs/mule ¤È emu API ¤Î´Ö¤Î gap ¤Ï¾¯¤Ê¤¯¡¢¾­Íè¡¢Á´¤Æ¤Î MIME charset
113 ¤¬ XEmacs/mule ¤Î coding-system ¤È¤·¤ÆÄêµÁ¤µ¤ì¤ì¤Ð¡¢emu ¤È¤·¤Æ¤³¤ì¤òÍÑ
114 °Õ¤¹¤ëɬÍפϤʤ¯¤Ê¤ë¤À¤í¤¦¡£
115 \medskip
116 \par
117 ¤µ¤Æ¡¢°Ê²¼¤Ç¤Ï¼ÂºÝ¤Îµ¡Ç½¤ò²òÀ⤹¤ë¡£
118 \medskip
119 \begin{description}
120 \item[{[}ÊÑ¿ô{]}]charsets-mime-charset-alist
121 \medskip
122 \par
123 Key Éô¤Ë charset ¤Î list, value Éô¤Ë mime-charset ¤ò¤È¤ëÏ¢ÁÛ¥ê
124 ¥¹¥È¡£´Ø¿ô charsets-to-mime-charset ¤ä´Ø¿ô
125 detect-mime-charset-region ¤¬¤³¤ÎÊÑ¿ô¤ò»²¾È¤¹¤ë¡£
126 \medskip
127 \item[{[}ÊÑ¿ô{]}]default-mime-charset
128 \medskip
129 \par
130 ÊÑ¿ô charsets-mime-charset-alist ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤ charset ¤Î
131 list ¤ËÂФ·¤Æ¤Ä¤±¤ë MIME charset ¤ò¼¨¤¹¡£´Ø¿ô
132 charsets-to-mime-charset ¤ä´Ø¿ô detect-mime-charset-region ¤¬
133 ¤³¤ÎÊÑ¿ô¤ò»²¾È¤¹¤ë¡£
134 \medskip
135 \item[{[}´Ø¿ô{]}]charsets-to-mime-charset         CHARSETS
136 \medskip
137 \par
138 charset ¤Î list `CHARSETS' ¤ËÂбþ¤¹¤ë MIME charset ¤òÊÖ¤¹¡£
139 \medskip
140 \item[{[}´Ø¿ô{]}]detect-mime-charset-region       start end
141 \medskip
142 \par
143 `START' ¤È `END' ¤Ç°Ï¤Þ¤ì¤¿Îΰè¤ËÂбþ¤¹¤ë MIME charset ¤òÊÖ¤¹¡£
144 \medskip
145 \item[{[}´Ø¿ô{]}]encode-mime-charset-region       START END CHARSET
146 \medskip
147 \par
148 `START' ¤È `END' ¤Ç°Ï¤Þ¤ì¤¿Îΰè¤ò MIME charset `CHARSET' ¤Ç
149 encode ¤¹¤ë¡£
150 \medskip
151 \item[{[}´Ø¿ô{]}]encode-mime-charset-string       STRING CHARSET
152 \medskip
153 \par
154 ʸ»úÎó `STRING' ¤ò MIME charset `CHARSET' ¤Ç encode ¤¹¤ë¡£
155 \medskip
156 \item[{[}´Ø¿ô{]}]decode-mime-charset-string       STRING CHARSET
157 \medskip
158 \par
159 ʸ»úÎó `STRING' ¤ò MIME charset `CHARSET' ¤Ç decode ¤¹¤ë¡£
160 \medskip
161 \medskip
162 \end{description}
163
164 \section{ʸ»ú code ¤Ë´Ø¤¹¤ë tm ¤Î¼ÂÁõ}
165 \medskip
166 \par
167 ¤â¤·¡¢ÁÇľ¤Ë charset ¤ò¼Â¸½¤¹¤ë¤À¤±¤Ê¤é emu API ¤ò¤½¤Î¤Þ¤Þ»È¤¨¤ÐÎɤ¤
168 ¤Î¤À¤¬¡¢¼ÂºÝ¤Ë¤Ï VM ¤ä RMAIL¡Ê¤ª¤è¤ÓÀΤΠGNUS, Gnus¡Ë¤È¤¤¤Ã¤¿ raw
169 buffer ¤ò¼Â¸½¤·¤Ë¤¯¤¤ MUA ¤Ç¤Ï charset ¤ËÂбþ¤¹¤ë¤³¤È¤¬º¤Æñ¤Ç¤¢¤ë¡£¤³
170 ¤Î¤¿¤á¡¢tm-view ¤Ï¤³¤Î¤è¤¦¤Ê MUA ¤Ç¤Ï½ã¿è¤Ê°ÕÌ£¤Ç¤Î raw buffer ¤Î¼Â¸½
171 ¤òÄü¤á original article buffer Ãæ¤Ë´û¤Ë charset ¤Ë°Í¤é¤º¤Ë code ÊÑ´¹¤·
172 ¤¿ message ¤òÆþ¤ì¤ë¤³¤È¤òǧ¤á¤Æ¤¤¤ë¡£
173 \medskip
174 \par
175 ¤è¤Ã¤Æ¡¢°Ê²¼¤Î£²¼ïÎà¤Î code ÊÑ´¹´Ø¿ô¤ò»È¤¤Ê¬¤±¤ëɬÍפ¬¤¢¤ë¡£
176 \medskip
177 \begin{description}
178 \item[{[}´Ø¿ô{]}]mime-charset/decode-buffer       charset \&optional encoding
179 \medskip
180 \par
181 current buffer ¤ò MIME charset `charset' ¤ÇÆâÉô code ¤ËÊÑ´¹¤¹
182 ¤ë¡£¤³¤Î´Ø¿ô¤Ï `encoding' ¤Ë°Í¤é¤ºÉ¬¤º code ÊÑ´¹¤ò¹Ô¤Ê¤¦¡£
183 \medskip
184 \item[{[}´Ø¿ô{]}]mime-charset/maybe-decode-buffer charset \&optional encoding
185 \medskip
186 \par
187 `encoding' ¤¬ nil, "7bit", "8bit", "binary" °Ê³°¤Î»þ¡¢Â¨¤Á¡¢
188 ASCII printable ¤Ê encode ¤¬»Ü¤µ¤ì¤Æ¤¤¤ë»þ¤Î¤ß¡¢¼ÂºÝ¤Ë¡¢
189 current buffer ¤ò MIME charset `charset' ¤ÇÆâÉô code ¤ËÊÑ´¹¤¹
190 ¤ë¡£¤½¤ì°Ê³°¤Î»þ¤Ï¡¢²¿¤â¤·¤Ê¤¤¡£
191 \medskip
192 \medskip
193 \end{description}
194
195 \section{ʸ»ú code ¤Ë´Ø¤¹¤ë tm ¤Î³¦ÌÌ}
196 \medskip
197 \par
198 MUA ¤Ë¤è¤Ã¤Æʸ»ú code ¤ò»È¤¤Ê¬¤±¤ë¤¿¤á¤Ë tm ¤Ï¤³¤³¤Ç½Ò¤Ù¤ë¤è¤¦¤Ê³¦ÌÌ
199 ¤òÄ󶡤¹¤ë¡£
200 \medskip
201 \begin{description}
202 \item[{[}ÊÑ¿ô{]}]mime-viewer/code-converter-alist
203 \medskip
204 \par
205 ¤³¤ÎÊÑ¿ô¤Ï key Éô¤ò major-mode, value Éô¤ò code ÊÑ´¹´Ø¿ô¤È¤¹¤ë
206 Ï¢ÁÛ list ¤Ç¤¢¤ë¡£¤³¤ì¤òÍѤ¤¤Æ³Æ MUA Ëè¤Î code ÊÑ´¹´Ø¿ô¤òÀßÄê
207 ¤¹¤ë¡£code ÊÑ´¹´Ø¿ô¤ÏÁ´Àá¤Ç½Ò¤Ù¤¿¼ÂÁõ¤òÍѤ¤¤ë¤³¤È¡£
208 \medskip
209 \item[{[}ÊÑ¿ô{]}]mime::article/code-converter
210 \medskip
211 \par
212 method ¤ÇÍѤ¤¤é¤ì¤ë code ÊÑ´¹´Ø¿ô¤ò»ØÄꤹ¤ë¤¿¤á¤Î original
213 article buffer ¤Î buffer local ÊÑ¿ô¤Ç¤¢¤ë¡£ÊÑ¿ô
214 `mime-viewer/code-converter-alist' ¤è¤ê¤â¹â¤¤Í¥ÀèÅ٤ǻ²¾È¤µ¤ì
215 ¤ë¡£
216 \medskip
217 \item[{[}´Ø¿ô{]}]mime-preview/decode-text-buffer  charset encoding
218 \medskip
219 \par
220 MIME charset `charset', MIME encoding `encoding' ¤ÇÉä¹æ²½¤µ¤ì
221 ¤¿ current buffer ¤ò decode ¤¹¤ë¡£code ÊÑ´¹¤ÏÊÑ¿ô
222 `mime::article/code-converter' ¤ª¤è¤Ó
223 `mime-viewer/code-converter-alist' ¤ò»²¾È¤·¤ÆÆÀ¤é¤ì¤¿´Ø¿ô¤Ë¤è¤Ã
224 ¤Æ¼Â¹Ô¤µ¤ì¤ë¡£
225 \medskip
226 \medskip
227 \end{description}
228
229 \section{ʸ»ú code ´Ø·¸¤Î´Ø¿ô¤Î»È¤¤Êý¤Î»Ø¿Ë}
230 \medskip
231 \par
232 tm-view ¤Î method ¤¬¤¢¤ë content ¤ò¤¢¤ë charset, encoding ¤Ë½¾¤Ã¤Æ
233 decode ¤¹¤ë¾ì¹ç¤Ï´Ø¿ô mime-preview/decode-text-buffer ¤òÍѤ¤¤ë¤³¤È¤È¤¹
234 ¤ë¡£
235 \medskip
236 \par
237 tm-view ¤Î method ¤Ë¤ª¤¤¤Æ¡¢¤¢¤ë content ¤ËÂФ·¤ÆºÆµ¢Åª¤Ë preview
238 buffer ¤òºîÀ®¤¹¤ë¤è¤¦¤Ê¾ì¹ç¤Ç¡¢ÊÑ¿ô mime::article/code-converter ¤òÀß
239 Äꤹ¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ï¡¢´Ø¿ô mime-charset/decode-buffer ¤ª¤è¤Ó
240 mime-charset/maybe-decode-buffer ¤òÍѤ¤¤ë¤³¤È¤È¤¹¤ë¡£
241 \medskip
242 \par
243 ¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤ª¤¤¤Æ¡¢¼ÂºÝ¤Ë code ÊÑ´¹¤ò¹Ô¤Ê¤¦¤è¤¦¤Ê¾ì¹ç¤Ï¡¢emu
244 API ¤Îµ¡Ç½¤òÍѤ¤¤ë¤³¤È¤È¤¹¤ë¡£
245 \end{document}