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