Tato stránka je návodem pro nastavení českého a slovenského prostředí pro Emacs 20.4 v ISO-8859-2 prostředí. Počeštění Emacsu 20.3 řeší balík emacs-cs-utils verze 4.2. Toto počeštění se netýká XEmacsu 20, neboť již nemám čas se tomuto produktu věnovat. Pokud někdo něco k XEmacsu 20 napíše, přidám to sem. Podle dostupných zpráv emacs-cs-utils 4.2 s XEmacsem 20 fungují.
Jedná se o návod typu co kam napsat, který se nesnaží zodpovědět žádné otázky typu proč a který se nezabývá pokročilými technikami. K těmto účelům slouží příslušné manuály.
Počešťování Emacsu 20 je realizováno v rámci projektu Linux pro české uživatele organizovaného Českou nadací pro podporu free softwaru. Koordinátorem počešťování Emacsu je Milan Zamazal, na kterého se můžete obracet se svými dotazy ohledně tohoto projektu. Cílem tentokrát není vytvořit kompaktní a snadno instalovatelný balík, jako tomu bylo v případě emacs-czech pro Emacs 19. Snahou je dosáhnout počeštění především v upstream verzi Emacsu a níže zmíněné utility by tedy měly být chápány jako dočasná (s předem neomezenou délkou trvání této dočasnosti, jak už v našich krajích bývá zvykem) nouzová pomůcka.
Předpokládá se, že:
Následující postup poskytuje návod, kterým lze Emacs v rámci jeho možností více či méně počeštit.
Emacs 20.4 obsahuje podporu ISO-8859-2 kódování, kódování CP 1250, pět českých klávesnic, český tutoriál, podporu českého ispellu a podporu národního tisku.
Do svého .emacs vložte řádek
(set-language-environment "czech")
Po příštím startu Emacsu byste měli mít prostředí inicializováno pro češtinu a měli byste mít k dispozici standardní českou klávesnici prostřednictvím přepínadla C-\.
Pokud používáte ISO-8859-2 fonty na linuxové konzole nebo nějakém jiném terminálu schopném zobrazení ISO-8859-2 znaků a/nebo máte nastaveno ISO-8859-2 prostředí v Xech, můžete přidat toto nastavení:
(if window-system (set-selection-coding-system 'latin-2) (set-terminal-coding-system 'latin-2))
Co se Xů týče, Emacs má pro X selection implicitně nastaveno kódování
compound-text
. Počínaje XFree 3.3.3 toto kódování
(patrně s chybami) podporuje i xterm, proto s výše uvedeným nastavením
nemusí přenášení textu do xtermu fungovat. Přesto je lépe výše uvedené
nastavení používat, neboť i když bude s compound-text
pracovat xterm, ještě dlouho bude trvat, než s tímto kódováním začnou
pracovat ostatní Xové aplikace.
Obvykle bývá záhodno uvést také řádek
(setq process-coding-system-alist '((".*" . iso-8859-2)))
Ten říká, že všechny procesy mají dostávat a budou vracet znaky v ISO-8859-2 kódování.
Standardní klávesnici qwerty získáte přidáním
(setq default-input-method "czech-qwerty")
Preferujete-li programátorskou klávesnici před klávesnicí standardní, přidejte místo toho
(setq default-input-method "czech-prog-N")
kde N
značí některou z číslic 1
,
2
, 3
pro jednu ze tří programátorských
klávesnic. Jejich popis naleznete v souboru
leim/czech.el z distribuce Emacsu (balík
leim-20.4.tar.gz).
Chcete-li se přepínat mezi klávesnicemi jinak než pomocí standardní kombinace C-\, řekněme že pomocí klávesy Pause, přidejte
(global-set-key [pause] 'toggle-input-method) (define-key isearch-mode-map [pause] 'isearch-toggle-input-method)
Přicházíte-li do styku s kódováním CP 1250 (např. při brouzdání ve W3), přidejte si ještě řádky
(codepage-setup '1250) (prefer-coding-system 'cp1250) (prefer-coding-system 'iso-8859-2) (define-coding-system-alias 'windows-1250 'cp1250)
Milovníci obzvlášť obskurních kódování si mohou analogicky zavést i podporu CP 852.
Nastavení českých kalendářových zvyklostí dosáhnete umístěním souboru util/czech-calendar.el někam do elispovských cest Emacsu (můžete je zjistit například tak, že se přepnete se do bufferu *scratch*, napíšete load-path a stisknete C-j) a přidáním
(require 'czech-calendar)
do .emacs.
Chcete-li mít v kalendáři české jmenné svátky, přidejte před výše uvedené volání ještě
(setq czech-calendar-names t)
Emacs 20.4 umožňuje postscriptový tisk na bázi bitmapových BDF fontů. Není to tisk příliš elegantní, ale umožňuje tisknout vícejazyčné texty bez speciálních opatření. Popis fungování a nastavení českého tisku by byl na delší povídání, proto zde pouze odkazuji na soubor ps-mule.el z distribuce Emacsu, kde je v úvodních komentářích a v dokumentaci konfiguračních proměnných vše popsáno. Jinou dobrou možností, jak se uvést do problematiky vícejazyčného tisku, je aplikovat příkaz M-x customize-group RET ps-print-font RET.
Aktuální vývojová verze Gnus již obsahuje poměrně rozumnou a stabilní podporou MIME. Pokud tedy používáte Gnus a potřebujete podporu MIME, můžete si (na vlastní riziko) nainstalovat tuto vývojovou verzi. Naleznete ji na http://www.gnus.org pod kódovým jménem pgnus. Je možné, že v době, kdy studujete tento dokument, již byla vypuštěna odpovídající stabilní verze -- 5.8.
Používáte-li Rmail bez instalované podpory MIME, nainstalujte si podporu MIME. Pokud tak nemůžete učinit, přidejte si do svého ~/.emacs následující řádky:
(setq rmail-file-coding-system 'iso-8859-2) (setq process-coding-system '(("movemail" . 'iso-8859-2))) (add-hook 'mail-setup-hook 'my-insert-headers) (defun my-insert-headers () (goto-char (point-min)) (if (re-search-forward "--text follows this line--" nil t) (beginning-of-line) (goto-char (point-max))) (insert "MIME-Version: 1.0\nContent-Type: text/plain; charset=ISO-8859-2\nContent-Transfer-Encoding: 8bit\n") (goto-char (point-max)))
O aktuálním stavu podpory MIME pro Rmail nemám přehled. Můžete-li příslušné informace doplnit, napište mi prosím.
Nainstalujte poslední beta verzi w3 a čeština vám bude fungovat.
Problém je se zasíláním češtiny z formulářů WWW stránek. Jedná se o chybu W3, kterou dosud nikdo neopravil. Kdysi ji bylo možno obejít níže uvedeným hackem, ale ani ten neřešil vše. Znáte-li lepší řešení, dejte vědět.
(defun my-w3-load-hack () (require 'font) (require 'mule-sysdp) (setq mule-retrieval-coding-system 'iso-8859-2)) (add-hook 'w3-load-hook 'my-w3-load-hack)
Soubor zenirc-czech.el obsahuje něco, co lze velmi vzdáleně nazvat českým překladem hlášení Zenirc. Pokud se obsahu zhrozíte, můžete mi poslat vylepšení.
Chcete-li, aby na vás Emacs brzy po startu promluvil česky, můžete si nastavit českou informaci pro scratch buffer v překladu Davida Šauera:
(setq initial-scratch-message "Tento buffer je určen pro poznámky, které nechcete uložit, a pro vyhodnocování výrazů v Lispu. Pokud chcete vytvořit soubor, otevřete ho pomocí C-x C-f,\na potom můžete vytvořit nový text v novém buferu.\n\n")
Můžete si dopřát referenční kartu Emacsu v českém překladu.
Pro slovenštinu platí většinou totéž co pro češtinu, pouze je potřeba na odpovídajících místech nahradit czech za slovak. Neexistuje však slovenský tutoriál a neexistuje podpora slovenštiny v ispellu.
Program tildify.el doplňuje zapomenuté vlnky v TeXových souborech či tvrdé mezery v SGML (potažmo HTML) dokumentech. Můžete si dodefinovat i vlastní vzory pro další módy.
Program string-recode.el umožňuje provádět speciální konverze víceznakových řetězců jako například obousměrné převody mezi normálním textem a
Můžete si dodefinovat další konverze.
Tento program lze považovat za zastaralý hack, téhož výsledku lze pravděpodobně dosáhnout pomocí CCL mechanismu (viz soubor ccl.el v distribuci Emacsu). Bylo by užitečné, kdyby někdo tuto možnost prozkoumal a pokusil se výše uvedená kódování tímto mechanismem definovat.
Další konkrétní cíle zatím stanoveny nejsou. Lze říci, že první etapa přizpůsobení Emacsu češtině je završena. Další postup bude záviset na celkové podpoře internacionalizace Emacsu. V tuto chvíli nezbývá než čekat nebo iniciovat další internacionalizační kroky Emacsu.
Na linuxovské konzole Emacs nemůže sám nastavit ISO 8859-2 fonty. Musíte je nastavit ručně prostředky systému.
Pokud se vám v Xech místo českých znaků objevují čtverečky, je to tím, že Emacs nemůže nalézt odpovídající Latin 2 font. Napravit to lze zadáním českého fontu v .Xdefaults nebo na příkazové řádce při spuštění Emacsu volbou -fn.
Doplňující .el soubory instalované z emacs-cs-utils je dobré zkompilovat (viz M-x byte-compile-file), některé funkce pak mohou běžet výrazně rychleji.
Na češtině a slovenštině pro Emacs 20 se přímo či nepřímo podíleli zejména tito lidé:
Milan Zamazal
<pdm@freesoft.cz>
Poslední modifikace: 31. 8. 1999 v čase 23:44:16.