dantefaq:emacs

%META:TOPICINFO{author=“HerbertVoss” date=“1237309764” format=“1.1” reprev=“1.1” version=“1.1”}% %META:TOPICPARENT{name=“Editoren”}%

Emacs

In vielen, wenn auch nicht allen Fällen erkennt AucTeX, eine empfehlenswerte Erweiterung des Emacs-TeX-Mode, durch die Verwendung des Pakets ,german`<a name=“28” id=“28”></a> in der Dokumentpräambel, daß dieses Verhalten ausgeschaltet werden soll. Falls nicht, kann man zwei Doublequotes eingeben, um einen einzelnen Doublequote zu erhalten.

Einfacher ist es, wenn man dieses Verhalten abschaltet oder ändert. Beispielsweise in dem man in die Startup-Datei ,,.emacs`` die Zeilen

<verbatim>(add-hook 'TeX-mode-hook
  (function (lambda ()
    ;;
    ;; 1. besondere Behandlung fuer dt. Texte (u.a. fuer ")
    (TeX-run-style-hooks "german")  ;; nur AucTeX
    ;;
    ;; 2. gesonderte Behandlung von " ganz abschalten
    ; (local-set-key "\"" 'self-insert-command)
    ;;
    ;; 3. je ein " statt ``...'' einfuegen:
    ; (setq TeX-open-quote "\"")
    ; (setq TeX-close-quote "\"")
    ;;
    ;; 4. "`..."' statt ``...'' einfuegen:
    ; (setq TeX-open-quote "\"`")
    ; (setq TeX-close-quote "\"'")
    )))</verbatim> 

einfügt und je nach Wunsch eine der vier Varianten auskommentiert läßt. Ab AucTeX v9.x kann man auch in der Datei ,,.emacs`` einfach <verbatim>(setq TeX-quote-after-quote t) </verbatim> schreiben, um dieses Verhalten abzuschalten.

Achtung: Für den TeX-Mode der Standard-Emacs-Verteilung muß der Teil ,TeX-` in den Symbolen als ,tex-` kleingeschrieben werden. Einige Erweiterungen funktionieren nur mit AucTeX.

Die Emacs-Library-Datei ,iso-cvt` wandelt automatisch beim Laden und Speichern eines Textes die Umlaute von bzw. in die entsprechenden TeX- bzw. German-Style-Makro-Notation. Folgendes Code-Schnipsel funktioniert nur mit AucTeX und einer neueren Version der Library-Datei ,iso-cvt`.

<verbatim>(require 'iso-cvt)
(add-hook 'LaTeX-mode-hook
  (function (lambda ()
    ;; Setze Anfuehrungszeichen etc. fuer Style german
    (TeX-run-style-hooks "german")
    ;;
    ;; Lade Buffer und wandle nach ISO Latin-1:
    (format-encode-buffer 'plain)
    ;; Speichere Buffer in "gtex" = german.sty-Notation ("a etc.):
    (format-decode-buffer 'gtex))))</verbatim> 

Will man das entgegengesetzte Verhalten, soll also Emacs bei Eingabe eines Umlauts statt des einzelnen Umlautzeichens direkt die aus mehreren Zeichen bestehende TeX-Makro-Notation erzeugen, so kann man dies durch Änderung der entsprechenden ,Key-Map` erreichen. Beispielsweise durch folgenden unvollständig gezeigten Code:

<verbatim>(add-hook 'TeX-mode-hook
  (function (lambda ()
    (local-set-key [228]
      (function (lambda () (interactive)
        (insert "\"a")
        ;; oder
        ; (insert "\\\"a")
        )))
    ;; weitere Zuweisungen mit analogem Aufbau
    ;; fuer die anderen Umlaute und das scharfe s
    )))</verbatim> 

Wenn man dies verwendet, wäre es noch ratsam, mit etwas zusätzlichem Emacs-Lisp-Code beim Löschen eines so erzeugten ,Umlautes` nicht nur ein Zeichen, sondern alle Zeichen des kompletten Makros zu entfernen.

Achtung: Für den TeX-Mode der Standard-Emacs-Verteilung muß statt des Symbols ,TeX-mode-hook` das kleingeschriebene Symbol ,tex-mode-hook` verwendet werden. Einige Erweiterungen funktionieren nur mit AucTeX.

Das Paket x-symbol zeigt unter XEmacs oder Emacs 21 sehr viele Symbole in einer Semi-WYSIWYG-Darstellung. Zusätzlich erweitert es die Menüs, so dass man in diesen nach Symbolen suchen kann. | x-symbol: | http:%%//%%x-symbol.sourceforge.net |

– Main.HerbertVoss - 17 Mar 2009

  • dantefaq/emacs.txt
  • Last modified: 2023/02/28 10:39
  • by 127.0.0.1