GNU Emacs 21 GNU Emacs 21 - čeština a slovenština

Tato stránka je návodem pro práci s GNU Emacsem 21 v českém a slovenském prostředí v kódování ISO-8859-2.

Informace pro starší verze GNU Emacsu naleznete na stránkách starších verzí emacs-cs-utils.

Jedná se o návod typu co kam napsat, který se jen mírně snaží zodpovědět otázky typu proč a který se nezabývá pokročilými technikami. K těmto účelům slouží příslušné manuály.

Obsah

Emacs - Intro

Základní předpoklady

V tomto textu dále předpokládáme, že:

Rychlý start

Pokud se o počeštění nechcete dozvědět příliš mnoho až příliš nedůležitých detailů, nainstalujte si RPM balíky emacs, emacs-leim, intlfonts a emacs-cs-utils a přidejte na konec svého souboru ~/.emacs následující řádky:

        (load "emacs-cs-utils-init")
        (load "intlfonts-init")

a vše by mělo fungovat.

Pokud si chcete chování upravit podle svých představ, můžete v menu Tools / Emacs-cs-utils nastavit chování tohoto balíku podle svých potřeb. Měli byste si však přečíst i další části tohoto dokumentu.

Malá ukázka možností GNU Emacsu 21

Věřím, že i následující obrázek váženému čtenáři pomůže v rozhodování, který editor používat:

HELLO

A pokud se ptáte, jak dopadne tento soubor při tisku, vězte, že dobře.

České a slovenské prostředí

Následující postup poskytuje návod, kterým lze GNU Emacs v rámci jeho možností více či méně počeštit.

GNU Emacs 21 obsahuje podporu kódování ISO 8859-2, kódování CP 1250, kódování CP 852, pět českých klávesnic (czech, czech-qwerty, czech-prog-1, czech-prog-2, czech-prog-3), čtyři slovenské klávesnice (slovak, slovak-prog-1, slovak-prog-2, slovak-prog-3), český a slovenský tutoriál (viz soubory etc/TUTORIAL.cs a etc/TUTORIAL.sk), podporu kontroly pravopisu a podporu národního tisku. Novinkou je též přítomnost českého i slovenského překladu referenční karty, referenční karty Diredu a tzv. Survival Card.

Emacs-cs-utils

Balíček emacs-cs-utils slouží k rozšíření možností GNU Emacsu a zjednodušení práce českým a slovenským uživatelům. Obsahuje také tento dokument a českou dokumentaci, která již je součástí GNU Emacsu. Novinkou této verze je i možnost nastavení jednotlivých částí pomocí standardního rozhraní Customize:

Customizace emacs-cs-utils

Na obrázku vidíte, že lze velmi jednoduše upravit chování emacs-cs-utils např. pomocí myši.

Instalace emacs-cs-utils

Kompletní instalace emacs-cs-utils je velmi jednoduchá a je popsána v souboru README ve zdrojových textech.

Nastavení prostředí

GNU Emacs verze 21 již nastavuje jazykové prostředí podle nastavených proměnných prostředí. Pokud tedy máte správně nastavenu proměnnou prostředí LANG např. na cs_CZ (resp. sk_SK), bude v GNU Emacsu 21 správně nastaveno jazykové prostředí na češtinu (resp. slovenštinu). Pokud tuto proměnnou nemáte nastavenu, konzultujte manuálové stránky vašeho příkazového interpretu, jak to napravit.

Pokud nemáte standardně nastavenou proměnnou prostředí LANG na doporučenou hodnotu cs_CZ, doporučujeme GNU Emacs startovat pomocí:

        LANG=cs_CZ emacs

Standardní klávesnice, kterou budete moci použít po přepnutí vstupní metody pomocí kombinace kláves C-\, je czech (standardní česká klávesnice systému Microsoft Windows NT). Pokud budete chtít standardně používat jinou klávesnici, můžete si customizovat proměnnou default-input-method. Nastavení proveďte v menu Tools / Emacs-cs-utils / Customize Default Input Method. Objeví se standardní buffer umožňující změnit hodnotu zvolené proměnné.

Customizace proměnné default-input-method

Zde můžete nastavit libovolnou vstupní metodu ("klávesnici"), kterou chcete používat standardně. Pokud např. budete chtít používat českou klávesnici s přehozenými písmeny y a z, vyplňte ve formuláři hodnotu czech-qwerty. Autor stránek používá klávesnici czech-prog-2.

Obvyklá vylepšení

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 X Window, můžete do svého souboru ~/.emacs přidat následující nastavení, které zajistí, že text, který bude do GNU Emacsu 21 vložen pomocí tzv. "selection" z jiných X klientů, bude ve správném kódování.

        (if (display-selections-p)
            (set-selection-coding-system 'iso-8859-2))

Pokud budete do dokumentu chtít vložit např. ruský text, musíte před použitím prostředního tlačítka myši, které vloží do GNU Emacsu ruský text, předem nastavit, v jakém kódování bude vkládaný text. Např. pro ruštinu můžete použít C-x RET X koi8 RET.

Někteří X klienti (jako například Mozilla) nepoužívají pro selection kódování ISO 8859-2, ale tzv. compound-text, tedy kódování stejné jako používá GNU Emacs standardně. Před použitím selection z těchto klientů musíte použít C-x RET X compound-text RET.

Budete-li používat kontrolu pravopisu, doporučujeme do souboru ~/.emacs přidat i nastavení české (či slovenské) kontroly pravopisu:

        (if (equal current-language-environment "Czech")
            (ispell-change-dictionary "czech" t))

        (if (equal current-language-environment "Slovak")
            (ispell-change-dictionary "slovak" t))

Chcete-li se přepínat mezi klávesnicemi jinak než pomocí standardní kombinace C-\ (např. pomocí klávesy Pause) přidejte do svého souboru ~/.emacs:

        (global-set-key [pause] 'toggle-input-method)
        (define-key isearch-mode-map [pause] 'isearch-toggle-input-method)

Toto nastavení zajistí, že klávesa Pause bude mít stejný význam jako funkce toggle-input-method a bude tedy sloužit k přepínání vstupních metod ("přepínání klávesnic").

Potřebujete-li v GNU Emacsu pracovat i se soubory, které jsou v kódování CP 1250, které je používáno v jiných operačních systémech, přidejte do svého souboru ~/.emacs:

        (codepage-setup '1250)

Potřebujete-li pracovat i se soubory v kódování CP 852, doplňte si do svého souboru ~/.emacs:

        (codepage-setup '852)

Poté budete mít k dispozici i toto kódování. Pokud tedy nyní budete chtít jednoduše editovat soubor, který je uložen v kódování CP 1250 na disku, můžete využít vlastnosti GNU Emacsu, která umožňuje definovat tzv. coding-system pro následující příkaz. Jak tedy řekneme GNU Emacsu, že další soubor je v kódování CP 1250? C-x RET c cp1250 RET C-x C-f soubor-1250.txt. Nyní můžeme psát standardním způsobem české znaky, které budou v GNU Emacsu korektně zobrazeny, ale soubor bude uložen na disk v kódování CP 1250.

Stejného mechanismu můžeme využít i ke konverzi z jednoho kódování do kódování druhého. Následující sekvence příkazů ukazuje, jak soubor pokus.il2 v kódování ISO 8859-2 zkonvertujeme do souboru pokus.1250 v kódování 1250: C-x C-f pokus.il2 RET C-x RET c cp1250 RET C-x C-w pokus.1250 RET. Není to nádhera?

Opačný převod snad již jen telegraficky: C-x RET c cp1250 RET C-x C-f pokus.1250 RET C-x RET c iso-8859-2 RET C-x C-w pokus.il2 RET. Pokud Vás tento zápis děsí, tak se nebojte. Stejného efektu je možné dosáhnout jenom klikáním v menu, ale popis tohoto klikání by byl ještě nezajímavější...

Chcete-li při editaci souborů, které obsahují DOSové konce řádků, vidět na konci každého řádku znak ^M místo řetězce "(DOS)" v mode-line, customizujte si proměnnou inhibit-eol-conversion na hodnotu t.

Nové emacs-cs-utils také umožňují upravit chování tzv. fill- funkcí. Standardní chování je v našem prostředí poněkud nevhodné, protože se může stát, že např. po volání funkce fill-paragraph zůstanou jednopísmenná slova na koncích řádků, což není zrovna v souladu s českými typografickými normami. Nicméně je zde velmi jednoduché řešení. Přidejte do svého souboru ~/.emacs:

	;; This code is from Stefan Monnier
	(defun fill-french-nobreak-p ()
	  (or (looking-at "[ \t]*[])}?!;:-]")
	      (save-excursion
		(skip-chars-backward " \t")
		(unless (bolp)
		  (backward-char 1))
		(or (looking-at "[([{]")
		    ;; Don't cut right after a single-letter word.
		    (and (memq (preceding-char) '(?\t ?\ ))
			 (eq (char-syntax (following-char)) ?w))))))

A GNU Emacs bude zarovnávat odstavce podle našich typografických pravidel:

anglické fill- funkce české fill- funkce

Na levém obrázku je možné vidět, jak by volání funkce fill-paragraph zarovnalo tzv. *scratch* buffer. Všimněte si písmen v, která stojí samostatně na koncích řádků. Na pravém obrázku je možné vidět výsledek stejné funkce v GNU Emacsu s emacs-cs-utils.

Kalendář

Nastavení českých nebo slovenských kalendářových zvyklostí dosáhnete umístěním souborů lisp/czech-calendar.el a lisp/slovak-calendar.elněkam do elispovských cest GNU 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)

nebo

        (require 'slovak-calendar)

do ~/.emacs.

Chcete-li mít v kalendáři české (či slovenské) jmenné svátky, přidejte před výše uvedené volání ještě

        (setq emacs-cs-utils-calendar-names t)

Potom může váš kalendář vypadat například nějak takto:

Český kalendář

Z kalendáře v GNU Emacsu je samozřejmě možné i tisknout. Tisk je řešen pomocí TeXu a tudíž se předpokládá, že máte nainstalovánu některou z distribucí TeXu, např. teTeX. Balík emacs-cs-utils poněkud upravuje standardní chování tisku z kalendáře, protože jeho původnímu autorovi pravděpodobně čeština ani slovenština nic neříká a mnoho také napoví skutečnost, že kalendáře jsou stále ještě generovány v LaTeXu 2.09. Podpora českého a slovenského tisku proto vypadá tak, jak vypadá... Ale funguje to. Kalendář je samozřejmě možné si uložit a potom případně ještě dále upravit.

Práce s vícejazyčnými dokumenty

GNU Emacs 21 podporuje práci s vícejazyčnými dokumenty. Jeden z příkladů jsme si již ukázali v dokumentu HELLO. GNU Emacs zde používá fonty X serveru, na kterém běží, a proto tento X server musí tyto fonty nabízet. GNU Emacs využívá fonty z balíku intlfonts. Po korektní instalaci tohoto balíku by mělo stačit X serveru říci, kde má tyto fonty hledat. To lze udělat dvěma způsoby - buď X serveru přidat cestu k těmto fontům do proměnné FontPath:

        FontPath "/usr/share/emacs/fonts/"

Poté je však nutno X server restartovat. Druhou možností je příkazem xset říci již běžícímu X serveru totéž:

        xset +fp /usr/share/emacs/fonts/

Po těchto úpravách by se Vám měl dokument HELLO zobrazit tak, jako autorovi těchto stránek.

Český (popř. i vícejazyčný) tisk

GNU Emacs 21 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í (viz např. dokument HELLO).

Nyní si ukážeme, jak používat český tisk pomocí BDF fontů. Předpokládáme, že máte korektně nainstalován balík intlfonts v adresáři /usr (tedy nikoli /usr/local jako ve standardní instalaci ze zdrojových textů). Nyní musíme GNU Emacsu říci, kde jsou BDF fonty uloženy, protože standardní umístění je v adresáři /usr/local. GNU Emacsu také musíme sdělit, že si přejeme používat pro tisk BDF fonty:

        (setq bdf-directory-list '("/usr/share/emacs/fonts/bdf/"))
        (setq ps-multibyte-buffer 'bdf-font)

Nyní bude fungovat tisk dokumentu pomocí příkazu M-x ps-print-buffer. Pokud budete chtít dokument pouze uložit v PostScriptu, použijte prefix: C-u M-x ps-print-buffer. Chcete-li hlouběji proniknout do problematiky vícejazyčného tisku a tisku pomocí ps-print obecně, proveďte příkaz M-x ps-print-customize.

Kontrola pravopisu

Co by to byl GNU Emacs za editor, pokud by neposkytoval nástroje pro jazykové korektury. Uživatelé počítačů až příliš často příliš rychle píší, a proto se jim může korektor pravopisu hodit. GNU Emacs standardně podporuje možnost kontroly pravopisu ve více jazycích, a proto se Vám někdy bude zdát až příliš obtížné přepínání mezi jednotlivými jazyky. Autoři GNU Emacsu si toho jsou vědomi, a proto v menu Tools / Spell-Checking je několik položek umožňujících zvolit si správný slovník (stejného efektu je možné dosáhnout voláním funkce ispell-change-dictionary). Ve stejném menu jsou i položky pro kontrolu pravopisu v celém bufferu, v regionu nebo pro kontrolu jednoho slova či komentářů.

Tohle všechno již ale bylo k dispozici i v GNU Emacsu 20.7. Co je tedy ve verzi 21 nového? Především je to tzv. flyspell, tedy "plovoucí" korektor pravopisu, který umožňuje kontrolu pravopisu v průběhu vlastního psaní. Jak to pak vypadá? Podívejte se na následující obrázek, který vzniká právě teď při psaní této věty:

Kontrola pravopisu

Na obrázku vidíte, že flyspell autora tohoto textu upozornil na to, že se pravděpodobně překlepl, protože použil slovo "Tohlr", které je tedy červeně (jde samozřejmě změnit jako téměř vše v GNU Emacsu) podtrženo. Jinou barvou jsou podtržena "divná" slova, která se třeba v textu vyskytují podobně zapsaná několikrát. Podrobné informace o kontrole pravopisu v GNU Emacsu se můžete dozvědět v info dokumentaci (C-h i m Emacs RET m Spelling RET). V GNU Emacsu 21 je k dispozici i podpora pro slovenský jazyk. Pokud máte nainstalován slovenský slovník pro ispell, budete mít v menu položku i pro slovenskou kontrolu pravopisu.

Gnus

GNU Emacs 21 obsahuje Gnus ve verzi 5.9. Tato verze již plně podporuje práci v českém i slovenském jazyce i MIME, a proto se zde o Gnus nebudeme (zatím) podrobněji zmiňovat. Přečtěte si info stránku Gnus. Další podrobnou dokumentaci Gnus a odkazy na poštovní konference uživatelů i vývojářů Gnus naleznete přímo na webových stránkách Gnus (http://www.gnus.org).

Práce s Gnus 5.9 potom může například vypadat i takto:

Gnus

Na tomto obrázku si můžete všimnout několika zajímavostí. První z nich je zajímavý titulek okna. Milovníci GNU Emacsu již jistě tuší, že se jedná o jeden z oblíbených akronymů. Další zvláštností je, že v citaci je posloupnost znaků [+]. Jak již jistě tušíte, nové Gnus podporují i možnost zakrývat delší citace než si uživatel přeje. České znaky (ruština také) jsou snad již standardem a téměř vše v Gnus funguje plně podle očekávání. Zvýrazněné URL, které po odkliknutí vyvolá uživatelem definovanou akci je již také samozřejmostí. Hlava tučňáka je tzv. X-Face, o které se snad zmíníme někdy v budoucnu. Nové Gnus dokonce podporují i tzv. smilies (česky snad smajlíky): :-), :-(, ;-). Možná si na těchto obrázcích všimnete, že nejsou až příliš hezké, a proto jsem se rozhodl pro GNU Emacs 21 přizpůsobit smajlíky používané s XEmacsem. Bohužel kvůli autorským právům není možné tyto smajlíky zatím integrovat do GNU Emacsu. Nyní tedy vypadá zkušební mail se smajlíky takto (ani mi nebudete věřit, kolik času mi zabralo jeho vytvoření):

Smajlíky

Ale o Gnus snad někdy příště.

Lokalizovaná dokumentace

Úvodní hlášení

GNU Emacs 21 (s nainstalovaným balíkem emacs-cs-utils) na Vás již při svém startu promluví česky díky Davidu Šauerovi, který přeložil úvodní informaci uloženou v  proměnné initial-scratch-message. K dispozici je samozřejmě i slovenský překlad.

Úvodní přivítání v češtině
Úvodní přivítání ve slovenštině

Referenční karta

Pan Jan Buchal společně s Milanem Zamazalem přeložili referenční kartu k GNU Emacsu. Tato karta je v GNU Emacsu 21 k dispozici ve zdrojové podobě i v PostScriptu. Pan Miroslav Vaško přeložil referenční kartu k GNU Emacsu do slovenštiny. Tato karta je k dispozici ve zdrojové podobě i v PostScriptu.

Tutoriál

Milan Zamazal přeložil úvodní tutoriál k GNU Emacsu. Nyní je již standardní součástí GNU Emacsu. Vyvoláte jej klávesovou kombinací C-h t nebo z menu Help / Emacs Tutorial. Pokud máte zájem, můžete si přečíst tutoriál i v japonštině... Tutoriál je pro zájemce k dispozici i přímo v tomto balíku. Slovenský tutoriál přeložil Miroslav Vaško a je také součástí tohoto balíčku.

GNU Emacs Survival Card

Pavel Janík přeložil dokument GNU Emacs Survival Card (Karta pro přežití s GNU Emacsem). Dokument je pro zájemce k dispozici i přímo v tomto balíku a to i ve zdrojové podobě. Slovenský překlad GNU Emacs Survival Card vytvořil Miroslav Vaško. Dokument je pro zájemce k dispozici i přímo v tomto balíku a to i ve zdrojové podobě.

Referenční karta pro Dired

Pavel Janík přeložil referenční kartu pro Dired. Tato karta je k dispozici ve zdrojové podobě i v PostScriptu. Miroslav Vaško přeložil referenční kartu pro Dired do slovenského jazyka. Tato karta je k dispozici ve zdrojové podobě i v PostScriptu.

GNU Emacs a Microsoft Windows

GNU Emacs 21 je možné používat i pod operačními systémy společnosti Microsoft. Nicméně toto pracovní prostředí je poněkud omezené. Balíček emacs-cs-utils je možné použít i zde, ale je nutné mít nainstalovaný ispell s českým či slovenským slovníkem. Protože systémy společnosti Microsoft nepoužívám, nemohu Vám poradit v případě problémů. Vzhledem k tomu, že jsem dokázal pořídit i následující obrázek, tak si myslím, že GNU Emacs dokážete zprovoznit i vy.

GNU Emacs 21 a Microsoft Windows

Problémy mohou nastat, pokud potřebujete zvolit vhodný font. K jeho přehledné volbě můžete použít funkci

        (w32-select-font)

Napište tedy tento řádek do bufferu *scratch*, přemístěte kurzor za pravou závorku a stiskněte C-j. Objeví se systémové menu, kde si vhodný font můžete vybrat:

Výběr fontu v Microsoft Windows

Pokud stisknete na tlačítko OK, bude vybraný font vypsán v uvozovkách v bufferu, ze kterého jste funkci w32-select-font vyvolali. Např.:

        "outline-Verdana-normal-r-normal-normal-13-97-96-96-p-*-iso8859-2"

To je řetězec, který musíte předat funkci set-default-font, aby font změnila. Pokud vám bude tedy tento font vyhovovat, jednoduše si do svého souboru ~/.emacs umístěte následující řádku:

        (set-default-font "outline-Verdana-normal-r-normal-normal-13-97-96-96-p-*-iso8859-2")

Při práci s GNU Emacsem v operačním systému Microsoft Windows mějte na paměti, že tento systém používá kódování 1250, ale Emacs nemůže sám poznat, v jakém kódování je daný soubor uložen. Musíte mu to oznámit před vlastním otevřením souboru (viz odstavec Obvyklá vylepšení).

Další důležité informace o provozování GNU Emacsu pod operačními systémy Microsoft Windows získáte na http://www.gnu.org/software/emacs/windows/.

Doplňující poznámky

Ještě zbývá udělat

Oznámené a zatím ještě neopravené chyby případně vylepšení

Poděkování

Na češtině a slovenštině pro GNU Emacs 21 a předchozí se přímo či nepřímo podíleli zejména následující:



Pavel Janík <Pavel@Janík.cz>
Poslední modifikace: 23. 9. 2001 v čase 12:31:05.