Hinweis: Siehe auch den späteren Beitrag, in dem eine weitere Lösung für das nachstehend beschriebene Problem beschrieben wird.

Zu den Features, die in Emacs 29.1, an dessen Konfiguration ich derzeit arbeite, nicht out of the box funktionieren, zählt die Rechtschreibprüfung Flyspell. Je nach Emacs-Version und Betriebssystem sind verschiedene Anleitungen und Diskussionen zu finden. Unter macOS Ventura funktionierte bei mir folgendes:

  • Aspell über Homebrew nachinstallieren.
  • Load Path und Exec Path setzen (zu Wörterbuch und zu aspell).
  • $LANG in Emacs setzen. Die Locale wurde zwar schon von macOS richtig gesetzt, Emacs bekommt davon aber nichts mit.
  • $LANG und auch die restliche Locale müssen auf de_DE zeigen, und auch das Language Environment muss German sein, sagt das Emacs Manual. Sonst funktioniert LuaTeX nicht.
  • Und nun Flyspell als Minor Mode für die Text Modes aktivieren.
(add-to-list 'load-path "/opt/homebrew/bin/")
(setq exec-path (append "/opt/homebrew/bin/" exec-path))
(add-to-list 'load-path "/opt/homebrew/Cellar/aspell/0.60.8/lib/aspell-0.60")
(setenv "LANG" "de_DE.UTF-8")
(set-locale-environment "de_DE")
(set-language-environment "German")
(add-hook 'text-mode-hook 'flyspell-mode)

M-x flyspell-mode

Welcome to Flyspell.

Es gibt widersprüchliche Ratschläge darüber, wie man Flyspell mit mehreren Sprachen zum Laufen bringt – vorstehend sehen wir nur eine Locale. Da es nicht die Locale des Systems ist, können wir sie ändern, ohne dass es weitere Auswirkungen hat. Man kann also beispielsweise das Wörterbuch für Englisch oder für Esperanto statt für Deutsch einbinden, in dem man de durch en oder eo ersetzt. Dann muss Emacs neu gestartet werden, ein erneutes Laden des Init Files reicht nicht aus. Das funktioniert aber nur für eine Sprache, nicht für mehrere. Still digging!

Da dtk.cls seit neuestem LuaLaTeX erzwingt, stieß ich auf ein Problem, das, wie eine Suche auf StackExchange ergab, zwar schon seit längerem bekannt ist, mich aber noch nicht erreicht hatte. Wahrscheinlich hatte mich der alte Aquamacs bisher davor bewahrt.

LuaTeX ist etwas zickig und möchte die Locale beim Aufruf mitnehmen. Fehlt sie oder ist sie unvollständig, bricht der Lauf mit der Fehlermeldung ab:

Unable to read locale data: please check the ‚locale‘ settings of your environment for consistency. Exiting now.

Beim Aufruf aus dem Terminal, trat der Fehler nicht auf, nur beim Aufruf aus Emacs. Die Locale im Terminal wich von der Locale bei M-x shell ab. Es reicht also nicht, $LANG in der .emacs zu setzen, es braucht auch eine Locale und, so das Manual, ein passendes Language Environment in Emacs.

See also: Original Source by Jürgen Fenn

Note: The copyright belongs to the blog author and the blog. For the license, please see the linked original source blog.