Wie lasse ich über einen Text eine Rechtschreibprüfung laufen?

Dafür ist kann man z.B. das Paket ispell ( International Ispell ) nehmen. Etwas moderner ist aspell ( GNU Aspell ). Beide sollten eigentlich in jeder besseren Distribution vorhanden sein.

Eine andere Möglichkeit ist, eine Textverarbeitung wie die von OpenOffice dafür zu nehmen.

... und wie bringe ich ispell TeX-Quelltext, HTML-Quelltext, Umlaute etc. bei?

man ispell. :-)) Manchmal reicht auch ein einfaches ispell --help. Umlaute gehen, indem Du ispell den Zeichensatz sagst, damit es weiß, wie es die 8-Bit-Zeichen interpretieren soll:

Beispiele

ispell und der Emacs-Editor

Credits: Roland Rosenfeld roland@spinnaker.de

Was muß ich im emacs einstellen, dass ispell Wörter wie Jubiläum auch als solche erkennt und nicht beim Umlaut teilt und getrennt behandelt?

Ich schreibe einfach mal, was ich hier eingestellt habe:

 (setq ispell-dictionary ''deutsch8'')
 (setq ispell-local-dictionary ''deutsch8'')
 (setq flyspell-default-dictionary ''deutsch8'')

Das sollte eigentlich schon ausreichen. Dazu habe ich dann noch flyspell.el installiert, damit die Rechtschreibprüfung on-the-fly funktioniert. Diesen Modus möchte ich nicht mehr missen (wer trotzdem noch Fipptehler in meinen Mails findet, sollte sich mal meine Mails aus der pre-flyspell-Zeit ansehen). Dafür habe ich folgendes eingestellt:

 (add-hook 'text-mode-hook 'flyspell-mode)
 (autoload 'flyspell-mode ''flyspell'' ''On-the-fly ispell.'' t)
 (setq flyspell-issue-welcome-flag nil)
 (setq flyspell-default-dictionary ''deutsch8'')

 (defun ispell-set-deutsch ()
  ''switch ispell language to deutsch''
   (interactive)
   (ispell-change-dictionary ''deutsch8''))

 (defun ispell-set-english ()
  ''switch ispell language to english''
  (interactive)
  (ispell-change-dictionary ''american''))

 (defvar toggle-ispell-english-deutsch nil
  ''state of english/deutsch8 toggle. t means english, nil means deutsch8'')
 (make-variable-buffer-local 'toggle-ispell-english-deutsch)

 (defun toggle-ispell-language ()
  ''Toggle ispell-language between english and deutsch8''
  (interactive)
  (cond (toggle-ispell-english-deutsch
         (setq toggle-ispell-english-deutsch nil)
         (ispell-set-deutsch))
        (t
         (setq toggle-ispell-english-deutsch t)
         (ispell-set-english))))

 (add-hook 'post-mode-hook
          '(lambda ()
             (flyspell-mode t)
             (setq flyspell-generic-check-word-p 'mail-mode-flyspell-verify)))

ispell und vi

Für Vim gibt es das vimspell-Script.

Hinweis Neue Rechtschreibung

Die Wörterbücher nach neuen Regeln (Übergangsfrist 1998-2005) heißen oft "german" statt "deutsch". ispell.el wird das voraussichtlich erst ab Version 3.7 kennen. Bis dahin gibt es hier einen patch http://www.techfak.uni-bielefeld.de/ags/ni/lectures/internstuff/howto/tricks/howto-spell.html und flyspell shortcuts in spellcheck-sub-menu. JW.

Hinweis ispell-dictionary SuSE 9.0 Benutzer

Credits : Jörg Maier joerg.maier@rz.uni-mannheim.de

Die Wörterbücher heißen unter SuSE german-latin1 bzw deutsch-latin1. Mit latin1 kann emacs-ispell auch Umlaute (im Gegensatz zu babel); zu german bzw deutsch s.o. Ich liste hier einfach mal die zwei wichtigen Zeilen aus ~/.gnu-emacs-custom:

(setq ispell-dictionary "german-latin1")
(setq ispell-local-dictionary "german-latin1")

Die Anführungszeichen mussten bei mir auch so geschrieben werden, sonst gab emacs einen Fehler.

Hinweis flyspell SuSE 9.0 Benutzer

Credits : Andreas Schäfer gentry-A-T-web-D-O-T-de

Bei mir waren noch folgende Zeilen in der ~/.gnu-emacs-custom nötig, damit flyspell Umlaute an Wortanfängen nicht als Worttrenner versteht:

(set-language-environment "German")
;;und:
(standard-display-european 1)
(set-input-mode (car   (current-input-mode))
                (nth 1 (current-input-mode))
                  0
                (nth 3 (current-input-mode)))

Auf diese Zeilen kann ich dabei verzichten:

(setq ispell-local-dictionary "german-latin1")
(setq flyspell-default-dictionary "german-latin1")

RechtschreibPrüfung (zuletzt geändert am 2007-12-23 22:46:08 durch localhost)