Mercurial > emacs
comparison lisp/international/iso-cvt.el @ 7260:b71d8f758a66
Initial revision
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sun, 01 May 1994 23:14:10 +0000 |
parents | |
children | eb4b69bf2d4e |
comparison
equal
deleted
inserted
replaced
7259:5a03fc943b38 | 7260:b71d8f758a66 |
---|---|
1 ;; iso-cvt.el -- translate to ISO 8859-1 from/to net/TeX conventions | |
2 ;; Copyright © 1993 Free Software Foundation, Inc. | |
3 ;; Was formerly called gm-lingo.el. | |
4 | |
5 ;; Author: Michael Gschwind <mike@vlsivie.tuwien.ac.at> | |
6 ;; Keywords: tex, iso, latin, i18n | |
7 | |
8 ;; This file is part of GNU Emacs. | |
9 | |
10 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
11 ;; it under the terms of the GNU General Public License as published by | |
12 ;; the Free Software Foundation; either version 2, or (at your option) | |
13 ;; any later version. | |
14 | |
15 ;; GNU Emacs is distributed in the hope that it will be useful, | |
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 ;; GNU General Public License for more details. | |
19 | |
20 ;; You should have received a copy of the GNU General Public License | |
21 ;; along with GNU Emacs; see the file COPYING. If not, write to | |
22 ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. | |
23 | |
24 ;;; Commentary: | |
25 | |
26 ; Calling `iso-german' will turn the net convention f or umlauts ("a etc.) | |
27 ; into ISO latin umlaute for easy reading. | |
28 ; hooks change TeX files to Latin-1 for editing and back to TeX sequences | |
29 ; for calling TeX. An alternative is a TeX style that handles | |
30 ; 8 bit ISO files (available on ftp.vlsivie.tuwien.ac.at in /pub/8bit) | |
31 ; - but these files are difficult to transmit ... so while the net is | |
32 ; still @ 7 bit this may be useful | |
33 | |
34 ; to do: translate buffer when displaying from GNUS, | |
35 ; use function 'german which does the Right Thing | |
36 ; | |
37 ; to do: use more general regular expressions for (g)tex2iso tables, to | |
38 ; cover more cases for translation. | |
39 | |
40 ;;; Code: | |
41 | |
42 (provide 'iso-cvt) | |
43 | |
44 (defvar iso-spanish-trans-tab | |
45 '( | |
46 ("~n" "ñ") | |
47 ("\([a-zA-Z]\)#" "\\1ñ") | |
48 ("~N" "Ñ") | |
49 ("\\([-a-zA-Z\"`]\\)\"u" "\\1ü") | |
50 ("\\([-a-zA-Z\"`]\\)\"U" "\\1Ü") | |
51 ("\\([-a-zA-Z]\\)'o" "\\1ó") | |
52 ("\\([-a-zA-Z]\\)'O" "\\Ó") | |
53 ("\\([-a-zA-Z]\\)'e" "\\1é") | |
54 ("\\([-a-zA-Z]\\)'E" "\\1É") | |
55 ("\\([-a-zA-Z]\\)'a" "\\1á") | |
56 ("\\([-a-zA-Z]\\)'A" "\\1A") | |
57 ("\\([-a-zA-Z]\\)'i" "\\1í") | |
58 ("\\([-a-zA-Z]\\)'I" "\\1Í") | |
59 ) | |
60 "Spanish translation table.") | |
61 | |
62 (defun iso-translate-conventions (trans-tab) | |
63 "Use the translation table argument to translate the current buffer." | |
64 (interactive) | |
65 (save-excursion | |
66 (widen) | |
67 (goto-char (point-min)) | |
68 (let ((work-tab trans-tab) | |
69 (buffer-read-only nil)) | |
70 (while work-tab | |
71 (save-excursion | |
72 (let ((trans-this (car work-tab))) | |
73 (while (re-search-forward (car trans-this) nil t) | |
74 (replace-match (car (cdr trans-this)) nil nil))) | |
75 (setq work-tab (cdr work-tab))))))) | |
76 | |
77 (defun iso-spanish () | |
78 "Translate net conventions for Spanish to ISO 8859-1." | |
79 (interactive) | |
80 (iso-translate-conventions iso-spanish-trans-tab)) | |
81 | |
82 (defvar iso-aggressive-german-trans-tab | |
83 '( | |
84 ("\"a" "ä") | |
85 ("\"A" "Ä") | |
86 ("\"o" "ö") | |
87 ("\"O" "Ö") | |
88 ("\"u" "ü") | |
89 ("\"U" "Ü") | |
90 ("\"s" "ß") | |
91 ("\\\\3" "ß") | |
92 ) | |
93 "German translation table. | |
94 This table uses an aggressive translation approach and may translate | |
95 erroneously translate too much.") | |
96 | |
97 (defvar iso-conservative-german-trans-tab | |
98 '( | |
99 ("\\([-a-zA-Z\"`]\\)\"a" "\\1ä") | |
100 ("\\([-a-zA-Z\"`]\\)\"A" "\\1Ä") | |
101 ("\\([-a-zA-Z\"`]\\)\"o" "\\1ö") | |
102 ("\\([-a-zA-Z\"`]\\)\"O" "\\1Ö") | |
103 ("\\([-a-zA-Z\"`]\\)\"u" "\\1ü") | |
104 ("\\([-a-zA-Z\"`]\\)\"U" "\\1Ü") | |
105 ("\\([-a-zA-Z\"`]\\)\"s" "\\1ß") | |
106 ("\\([-a-zA-Z\"`]\\)\\\\3" "\\1ß") | |
107 ) | |
108 "German translation table. | |
109 This table uses a conservative translation approach and may translate too | |
110 little.") | |
111 | |
112 | |
113 (defvar iso-german-trans-tab iso-aggressive-german-trans-tab | |
114 "Currently active translation table for German.") | |
115 | |
116 (defun iso-german () | |
117 "Translate net conventions for German to ISO 8859-1." | |
118 (interactive) | |
119 (iso-translate-conventions iso-german-trans-tab)) | |
120 | |
121 (defvar iso-iso2tex-trans-tab | |
122 '( | |
123 ("ä" "{\\\\\"a}") | |
124 ("à" "{\\\\`a}") | |
125 ("á" "{\\\\'a}") | |
126 ("ã" "{\\\\~a}") | |
127 ("â" "{\\\\^a}") | |
128 ("ë" "{\\\\\"e}") | |
129 ("è" "{\\\\`e}") | |
130 ("é" "{\\\\'e}") | |
131 ("ê" "{\\\\^e}") | |
132 ("ï" "{\\\\\"\\\\i}") | |
133 ("ì" "{\\\\`\\\\i}") | |
134 ("í" "{\\\\'\\\\i}") | |
135 ("î" "{\\\\^\\\\i}") | |
136 ("ö" "{\\\\\"o}") | |
137 ("ò" "{\\\\`o}") | |
138 ("ó" "{\\\\'o}") | |
139 ("õ" "{\\\\~o}") | |
140 ("ô" "{\\\\^o}") | |
141 ("ü" "{\\\\\"u}") | |
142 ("ù" "{\\\\`u}") | |
143 ("ú" "{\\\\'u}") | |
144 ("û" "{\\\\^u}") | |
145 ("Ä" "{\\\\\"A}") | |
146 ("À" "{\\\\`A}") | |
147 ("Á" "{\\\\'A}") | |
148 ("Ã" "{\\\\~A}") | |
149 ("Â" "{\\\\^A}") | |
150 ("Ë" "{\\\\\"E}") | |
151 ("È" "{\\\\`E}") | |
152 ("É" "{\\\\'E}") | |
153 ("Ê" "{\\\\^E}") | |
154 ("Ï" "{\\\\\"I}") | |
155 ("Ì" "{\\\\`I}") | |
156 ("Í" "{\\\\'I}") | |
157 ("Î" "{\\\\^I}") | |
158 ("Ö" "{\\\\\"O}") | |
159 ("Ò" "{\\\\`O}") | |
160 ("Ó" "{\\\\'O}") | |
161 ("Õ" "{\\\\~O}") | |
162 ("Ô" "{\\\\^O}") | |
163 ("Ü" "{\\\\\"U}") | |
164 ("Ù" "{\\\\`U}") | |
165 ("Ú" "{\\\\'U}") | |
166 ("Û" "{\\\\^U}") | |
167 ("ñ" "{\\\\~n}") | |
168 ("Ñ" "{\\\\~N}") | |
169 ("ç" "{\\\\c c}") | |
170 ("Ç" "{\\\\c C}") | |
171 ("ß" "{\\\\ss}") | |
172 ("¿" "{?`}") | |
173 ("¡" "{!`}") | |
174 ) | |
175 "Translation table for translating ISO 8859-1 characters to TeX sequences.") | |
176 | |
177 | |
178 | |
179 | |
180 (defun iso-iso2tex () | |
181 "Translate ISO 8859-1 characters to TeX sequences." | |
182 (interactive) | |
183 (iso-translate-conventions iso-iso2tex-trans-tab)) | |
184 | |
185 | |
186 (defvar iso-tex2iso-trans-tab | |
187 '( | |
188 ("{\\\\\"a}" "ä") | |
189 ("{\\\\`a}" "à") | |
190 ("{\\\\'a}" "á") | |
191 ("{\\\\~a}" "ã") | |
192 ("{\\\\^a}" "â") | |
193 ("{\\\\\"e}" "ë") | |
194 ("{\\\\`e}" "è") | |
195 ("{\\\\'e}" "é") | |
196 ("{\\\\^e}" "ê") | |
197 ("{\\\\\"\\\\i}" "ï") | |
198 ("{\\\\`\\\\i}" "ì") | |
199 ("{\\\\'\\\\i}" "í") | |
200 ("{\\\\^\\\\i}" "î") | |
201 ("{\\\\\"i}" "ï") | |
202 ("{\\\\`i}" "ì") | |
203 ("{\\\\'i}" "í") | |
204 ("{\\\\^i}" "î") | |
205 ("{\\\\\"o}" "ö") | |
206 ("{\\\\`o}" "ò") | |
207 ("{\\\\'o}" "ó") | |
208 ("{\\\\~o}" "õ") | |
209 ("{\\\\^o}" "ô") | |
210 ("{\\\\\"u}" "ü") | |
211 ("{\\\\`u}" "ù") | |
212 ("{\\\\'u}" "ú") | |
213 ("{\\\\^u}" "û") | |
214 ("{\\\\\"A}" "Ä") | |
215 ("{\\\\`A}" "À") | |
216 ("{\\\\'A}" "Á") | |
217 ("{\\\\~A}" "Ã") | |
218 ("{\\\\^A}" "Â") | |
219 ("{\\\\\"E}" "Ë") | |
220 ("{\\\\`E}" "È") | |
221 ("{\\\\'E}" "É") | |
222 ("{\\\\^E}" "Ê") | |
223 ("{\\\\\"I}" "Ï") | |
224 ("{\\\\`I}" "Ì") | |
225 ("{\\\\'I}" "Í") | |
226 ("{\\\\^I}" "Î") | |
227 ("{\\\\\"O}" "Ö") | |
228 ("{\\\\`O}" "Ò") | |
229 ("{\\\\'O}" "Ó") | |
230 ("{\\\\~O}" "Õ") | |
231 ("{\\\\^O}" "Ô") | |
232 ("{\\\\\"U}" "Ü") | |
233 ("{\\\\`U}" "Ù") | |
234 ("{\\\\'U}" "Ú") | |
235 ("{\\\\^U}" "Û") | |
236 ("{\\\\~n}" "ñ") | |
237 ("{\\\\~N}" "Ñ") | |
238 ("{\\\\c c}" "ç") | |
239 ("{\\\\c C}" "Ç") | |
240 ("\\\\\"{a}" "ä") | |
241 ("\\\\`{a}" "à") | |
242 ("\\\\'{a}" "á") | |
243 ("\\\\~{a}" "ã") | |
244 ("\\\\^{a}" "â") | |
245 ("\\\\\"{e}" "ë") | |
246 ("\\\\`{e}" "è") | |
247 ("\\\\'{e}" "é") | |
248 ("\\\\^{e}" "ê") | |
249 ("\\\\\"{\\\\i}" "ï") | |
250 ("\\\\`{\\\\i}" "ì") | |
251 ("\\\\'{\\\\i}" "í") | |
252 ("\\\\^{\\\\i}" "î") | |
253 ("\\\\\"{i}" "ï") | |
254 ("\\\\`{i}" "ì") | |
255 ("\\\\'{i}" "í") | |
256 ("\\\\^{i}" "î") | |
257 ("\\\\\"{o}" "ö") | |
258 ("\\\\`{o}" "ò") | |
259 ("\\\\'{o}" "ó") | |
260 ("\\\\~{o}" "õ") | |
261 ("\\\\^{o}" "ô") | |
262 ("\\\\\"{u}" "ü") | |
263 ("\\\\`{u}" "ù") | |
264 ("\\\\'{u}" "ú") | |
265 ("\\\\^{u}" "û") | |
266 ("\\\\\"{A}" "Ä") | |
267 ("\\\\`{A}" "À") | |
268 ("\\\\'{A}" "Á") | |
269 ("\\\\~{A}" "Ã") | |
270 ("\\\\^{A}" "Â") | |
271 ("\\\\\"{E}" "Ë") | |
272 ("\\\\`{E}" "È") | |
273 ("\\\\'{E}" "É") | |
274 ("\\\\^{E}" "Ê") | |
275 ("\\\\\"{I}" "Ï") | |
276 ("\\\\`{I}" "Ì") | |
277 ("\\\\'{I}" "Í") | |
278 ("\\\\^{I}" "Î") | |
279 ("\\\\\"{O}" "Ö") | |
280 ("\\\\`{O}" "Ò") | |
281 ("\\\\'{O}" "Ó") | |
282 ("\\\\~{O}" "Õ") | |
283 ("\\\\^{O}" "Ô") | |
284 ("\\\\\"{U}" "Ü") | |
285 ("\\\\`{U}" "Ù") | |
286 ("\\\\'{U}" "Ú") | |
287 ("\\\\^{U}" "Û") | |
288 ("\\\\~{n}" "ñ") | |
289 ("\\\\~{N}" "Ñ") | |
290 ("\\\\c{c}" "ç") | |
291 ("\\\\c{C}" "Ç") | |
292 ("{\\\\ss}" "ß") | |
293 ("?`" "¿") | |
294 ("!`" "¡") | |
295 ("{?`}" "¿") | |
296 ("{!`}" "¡") | |
297 ) | |
298 "Translation table for translating TeX sequences to ISO 8859-1 characters. | |
299 This table is not exhaustive (and due to TeX's power can never be). It only | |
300 contains commonly used sequences.") | |
301 | |
302 (defun iso-tex2iso () | |
303 "Translate TeX sequences to ISO 8859-1 characters." | |
304 (interactive) | |
305 (iso-translate-conventions iso-tex2iso-trans-tab)) | |
306 | |
307 (defvar iso-gtex2iso-trans-tab | |
308 '( | |
309 ("\"a" "ä") | |
310 ("\"A" "Ä") | |
311 ("\"o" "ö") | |
312 ("\"O" "Ö") | |
313 ("\"u" "ü") | |
314 ("\"U" "Ü") | |
315 ("\"s" "ß") | |
316 ("\\\\3" "ß") | |
317 ("{\\\\\"a}" "ä") | |
318 ("{\\\\`a}" "à") | |
319 ("{\\\\'a}" "á") | |
320 ("{\\\\~a}" "ã") | |
321 ("{\\\\^a}" "â") | |
322 ("{\\\\\"e}" "ë") | |
323 ("{\\\\`e}" "è") | |
324 ("{\\\\'e}" "é") | |
325 ("{\\\\^e}" "ê") | |
326 ("{\\\\\"\\\\i}" "ï") | |
327 ("{\\\\`\\\\i}" "ì") | |
328 ("{\\\\'\\\\i}" "í") | |
329 ("{\\\\^\\\\i}" "î") | |
330 ("{\\\\\"i}" "ï") | |
331 ("{\\\\`i}" "ì") | |
332 ("{\\\\'i}" "í") | |
333 ("{\\\\^i}" "î") | |
334 ("{\\\\\"o}" "ö") | |
335 ("{\\\\`o}" "ò") | |
336 ("{\\\\'o}" "ó") | |
337 ("{\\\\~o}" "õ") | |
338 ("{\\\\^o}" "ô") | |
339 ("{\\\\\"u}" "ü") | |
340 ("{\\\\`u}" "ù") | |
341 ("{\\\\'u}" "ú") | |
342 ("{\\\\^u}" "û") | |
343 ("{\\\\\"A}" "Ä") | |
344 ("{\\\\`A}" "À") | |
345 ("{\\\\'A}" "Á") | |
346 ("{\\\\~A}" "Ã") | |
347 ("{\\\\^A}" "Â") | |
348 ("{\\\\\"E}" "Ë") | |
349 ("{\\\\`E}" "È") | |
350 ("{\\\\'E}" "É") | |
351 ("{\\\\^E}" "Ê") | |
352 ("{\\\\\"I}" "Ï") | |
353 ("{\\\\`I}" "Ì") | |
354 ("{\\\\'I}" "Í") | |
355 ("{\\\\^I}" "Î") | |
356 ("{\\\\\"O}" "Ö") | |
357 ("{\\\\`O}" "Ò") | |
358 ("{\\\\'O}" "Ó") | |
359 ("{\\\\~O}" "Õ") | |
360 ("{\\\\^O}" "Ô") | |
361 ("{\\\\\"U}" "Ü") | |
362 ("{\\\\`U}" "Ù") | |
363 ("{\\\\'U}" "Ú") | |
364 ("{\\\\^U}" "Û") | |
365 ("{\\\\~n}" "ñ") | |
366 ("{\\\\~N}" "Ñ") | |
367 ("{\\\\c c}" "ç") | |
368 ("{\\\\c C}" "Ç") | |
369 ("\\\\\"{a}" "ä") | |
370 ("\\\\`{a}" "à") | |
371 ("\\\\'{a}" "á") | |
372 ("\\\\~{a}" "ã") | |
373 ("\\\\^{a}" "â") | |
374 ("\\\\\"{e}" "ë") | |
375 ("\\\\`{e}" "è") | |
376 ("\\\\'{e}" "é") | |
377 ("\\\\^{e}" "ê") | |
378 ("\\\\\"{\\\\i}" "ï") | |
379 ("\\\\`{\\\\i}" "ì") | |
380 ("\\\\'{\\\\i}" "í") | |
381 ("\\\\^{\\\\i}" "î") | |
382 ("\\\\\"{i}" "ï") | |
383 ("\\\\`{i}" "ì") | |
384 ("\\\\'{i}" "í") | |
385 ("\\\\^{i}" "î") | |
386 ("\\\\\"{o}" "ö") | |
387 ("\\\\`{o}" "ò") | |
388 ("\\\\'{o}" "ó") | |
389 ("\\\\~{o}" "õ") | |
390 ("\\\\^{o}" "ô") | |
391 ("\\\\\"{u}" "ü") | |
392 ("\\\\`{u}" "ù") | |
393 ("\\\\'{u}" "ú") | |
394 ("\\\\^{u}" "û") | |
395 ("\\\\\"{A}" "Ä") | |
396 ("\\\\`{A}" "À") | |
397 ("\\\\'{A}" "Á") | |
398 ("\\\\~{A}" "Ã") | |
399 ("\\\\^{A}" "Â") | |
400 ("\\\\\"{E}" "Ë") | |
401 ("\\\\`{E}" "È") | |
402 ("\\\\'{E}" "É") | |
403 ("\\\\^{E}" "Ê") | |
404 ("\\\\\"{I}" "Ï") | |
405 ("\\\\`{I}" "Ì") | |
406 ("\\\\'{I}" "Í") | |
407 ("\\\\^{I}" "Î") | |
408 ("\\\\\"{O}" "Ö") | |
409 ("\\\\`{O}" "Ò") | |
410 ("\\\\'{O}" "Ó") | |
411 ("\\\\~{O}" "Õ") | |
412 ("\\\\^{O}" "Ô") | |
413 ("\\\\\"{U}" "Ü") | |
414 ("\\\\`{U}" "Ù") | |
415 ("\\\\'{U}" "Ú") | |
416 ("\\\\^{U}" "Û") | |
417 ("\\\\~{n}" "ñ") | |
418 ("\\\\~{N}" "Ñ") | |
419 ("\\\\c{c}" "ç") | |
420 ("\\\\c{C}" "Ç") | |
421 ("{\\\\ss}" "ß") | |
422 ("?`" "¿") | |
423 ("!`" "¡") | |
424 ("{?`}" "¿") | |
425 ("{!`}" "¡") | |
426 ) | |
427 "Translation table for translating German TeX sequences to ISO 8859-1. | |
428 This table is not exhaustive (and due to TeX's power can never be). It only | |
429 contains commonly used sequences.") | |
430 | |
431 (defvar iso-iso2gtex-trans-tab | |
432 '( | |
433 ("ä" "\"a") | |
434 ("à" "{\\\\`a}") | |
435 ("á" "{\\\\'a}") | |
436 ("ã" "{\\\\~a}") | |
437 ("â" "{\\\\^a}") | |
438 ("ë" "{\\\\\"e}") | |
439 ("è" "{\\\\`e}") | |
440 ("é" "{\\\\'e}") | |
441 ("ê" "{\\\\^e}") | |
442 ("ï" "{\\\\\"\\\\i}") | |
443 ("ì" "{\\\\`\\\\i}") | |
444 ("í" "{\\\\'\\\\i}") | |
445 ("î" "{\\\\^\\\\i}") | |
446 ("ö" "\"o") | |
447 ("ò" "{\\\\`o}") | |
448 ("ó" "{\\\\'o}") | |
449 ("õ" "{\\\\~o}") | |
450 ("ô" "{\\\\^o}") | |
451 ("ü" "\"u") | |
452 ("ù" "{\\\\`u}") | |
453 ("ú" "{\\\\'u}") | |
454 ("û" "{\\\\^u}") | |
455 ("Ä" "\"A") | |
456 ("À" "{\\\\`A}") | |
457 ("Á" "{\\\\'A}") | |
458 ("Ã" "{\\\\~A}") | |
459 ("Â" "{\\\\^A}") | |
460 ("Ë" "{\\\\\"E}") | |
461 ("È" "{\\\\`E}") | |
462 ("É" "{\\\\'E}") | |
463 ("Ê" "{\\\\^E}") | |
464 ("Ï" "{\\\\\"I}") | |
465 ("Ì" "{\\\\`I}") | |
466 ("Í" "{\\\\'I}") | |
467 ("Î" "{\\\\^I}") | |
468 ("Ö" "\"O") | |
469 ("Ò" "{\\\\`O}") | |
470 ("Ó" "{\\\\'O}") | |
471 ("Õ" "{\\\\~O}") | |
472 ("Ô" "{\\\\^O}") | |
473 ("Ü" "\"U") | |
474 ("Ù" "{\\\\`U}") | |
475 ("Ú" "{\\\\'U}") | |
476 ("Û" "{\\\\^U}") | |
477 ("ñ" "{\\\\~n}") | |
478 ("Ñ" "{\\\\~N}") | |
479 ("ç" "{\\\\c c}") | |
480 ("Ç" "{\\\\c C}") | |
481 ("ß" "\"s") | |
482 ("¿" "{?`}") | |
483 ("¡" "{!`}") | |
484 ) | |
485 "Translation table for translating ISO 8859-1 characters to German TeX.") | |
486 | |
487 (defun iso-gtex2iso () | |
488 "Translate German TeX sequences to ISO 8859-1 characters." | |
489 (interactive) | |
490 (iso-translate-conventions iso-gtex2iso-trans-tab)) | |
491 | |
492 | |
493 (defun iso-iso2gtex () | |
494 "Translate ISO 8859-1 characters to German TeX sequences." | |
495 (interactive) | |
496 (iso-translate-conventions iso-iso2gtex-trans-tab)) | |
497 | |
498 | |
499 (defun iso-german-tex-p () | |
500 "Check if tex buffer is German LaTeX." | |
501 (save-excursion | |
502 (widen) | |
503 (goto-char (point-min)) | |
504 (re-search-forward "\\\\documentstyle\\[.*german.*\\]" nil t))) | |
505 | |
506 (defun iso-fix-iso2tex () | |
507 "Turn ISO 8859-1 (aka. ISO Latin-1) buffer into TeX sequences. | |
508 If German TeX is used, German TeX sequences are generated." | |
509 (if (or (equal major-mode 'latex-mode) | |
510 (equal major-mode 'LaTeX-mode)) ; AucTeX wants this | |
511 (if (iso-german-tex-p) | |
512 (iso-iso2gtex) | |
513 (iso-iso2tex))) | |
514 (if (or (equal major-mode 'tex-mode) | |
515 (equal major-mode 'TeX-mode)) ; AucTeX wants this | |
516 (iso-iso2tex))) | |
517 | |
518 (defun iso-fix-tex2iso () | |
519 "Turn TeX sequences into ISO 8859-1 (aka. ISO Latin-1) characters. | |
520 This function recognices German TeX buffers." | |
521 (if (or (equal major-mode 'latex-mode) | |
522 (equal major-mode 'Latex-mode)) ; AucTeX wants this | |
523 (if (iso-german-tex-p) | |
524 (iso-gtex2iso) | |
525 (iso-tex2iso))) | |
526 (if (or (equal major-mode 'tex-mode) | |
527 (equal major-mode 'TeX-mode)) ;; AucTeX wants this | |
528 (iso-tex2iso))) | |
529 | |
530 (defun iso-cvt-ffh () | |
531 "find-file-hook for iso-cvt-cvt.el." | |
532 (iso-fix-tex2iso) | |
533 (set-buffer-modified-p nil)) | |
534 | |
535 (defun iso-cvt-wfh () | |
536 "write file hook for iso-cvt-cvt.el." | |
537 (iso-fix-iso2tex)) | |
538 | |
539 (defun iso-cvt-ash () | |
540 "after save hook for iso-cvt-cvt.el." | |
541 (iso-fix-tex2iso) | |
542 (set-buffer-modified-p nil)) | |
543 | |
544 (add-hook 'find-file-hooks 'iso-cvt-ffh) | |
545 (add-hook 'write-file-hooks 'iso-cvt-wfh) | |
546 (add-hook 'after-save-hook 'iso-cvt-ash) | |
547 | |
548 ;;; iso-cvt.el ends here |