1 (defvar chise-tex-coded-charset-expression-alist
2 '((=ucs@gb "UCSgb" 4 X)
3 (=ucs@jis "UCSjis" 4 X)
10 (=gt-pj-7 "GTpj7" 4 X)
11 (=gt-pj-8 "GTpj8" 4 X)
12 (=gt-pj-9 "GTpj9" 4 X)
13 (=gt-pj-10 "GTpj10" 4 X)
14 (=gt-pj-11 "GTpj11" 4 X)
16 (=ucs@cns "UCScns" 4 X)))
18 (defun chise-tex-encode-region (start end)
22 (narrow-to-region start end)
24 (let (chr ret rest spec)
25 (while (and (skip-chars-forward "\x00-\xFF")
27 (setq chr (char-after))
28 (cond ((memq chr '(?
\e$(O#@
\e(B))
30 (insert (format "\\UCSjis{%04X}"
31 (encode-char chr '=ucs@jis)))
33 ((and (setq ret (encode-char chr '=jis-x0208-1983))
36 ;; ((setq ret (encode-char chr '=jis-x0208-1990))
38 ;; (insert (decode-char '=jis-x0208-1983 ret)))
40 (setq rest chise-tex-coded-charset-expression-alist)
41 (while (setq spec (car rest))
42 (if (setq ret (encode-char chr (car spec)))
44 (setq rest (cdr rest))))
46 ;; (if (eq (char-before) ?
\e$B!T
\e(B)
48 (insert (format (format "\\%s{%%0%d%s}"
56 (defun chise-tex-decode-region (start end)
60 (narrow-to-region start end)
62 (let (macro code ret ms me)
63 (while (re-search-forward "\\\\\\([a-zA-Z0-9]+\\){\\([0-9A-Fa-f]+\\)}"
65 (setq macro (match-string 1)
67 ms (match-beginning 0)
70 (setq rest chise-tex-coded-charset-expression-alist)
71 (while (setq spec (car rest))
72 (if (string= (nth 1 spec) macro)
74 (setq rest (cdr rest))))
75 (setq ret (decode-char (car spec)
78 (if (eq (nth 3 spec) 'X)
81 (delete-region (match-beginning 0)(match-end 0))
86 'iso-2022-jp-tex 'iso2022
87 "ISO-2022-JP with TeX representation."
91 input-charset-conversion ((latin-jisx0201 ascii)
92 (japanese-jisx0208-1978 japanese-jisx0208))
93 pre-write-conversion chise-tex-encode-region
94 post-read-conversion chise-tex-decode-region