Portál AbcLinuxu, 13. května 2024 00:19

České prostředí v okně xdosemu

17. 10. 2002 | Jan Marek
Články - České prostředí v okně xdosemu  

aneb kterak vytvořit font v kódování CP852, aby vám účetnictví Abra Gold jelo hezky česky.

Motivace

Jsem spokojeným uživatelem Linuxu, ale chybělo mi v něm účetnictví. Podařilo se mi rozběhat účetnictví Abra Gold pro DOS v dosemu, ale měl jsem velké dilema: v konzoli jsem měl korektní klávesnici i zobrazení znaků, ale nefungovaly mi některé důležité klávesové zkratky (např. Ctrl+Enter pro změnu typu řádku v zadání faktury). V xdosemu sice zkratky šly, ale nedalo se na to moc koukat. Až jednou...

Jednoho krásného dne jsem se zdravě naštval a začal jsem do tohoto problému šťourat. Říkal jsem si: když už umí X fontserver renderovat unicode fonty, proč by mi nezobrazil i kódovou stránku CP852? Přece by měla stačit jen nějaká mapa, kde bych řekl: písmeno s tímto kódem má ten a ten kód v unicode. Povzbudilo mě k tomu i to, že jsem ve svém Debianu našel v adresáři /usr/lib/X11/fonts také adresář encoding, kde byly údaje i o CP852 mapování na unicode znaky a následně i adresář nazvaný util, kde byly další mapy z různých ISO8859-* kódování do unicode tabulky. Nicméně tento výzkum nedopadl příliš uspokojivě.

Rozhodl jsem se ještě napsat do linuxové konference a předtím jsem začal prohledávat její archiv. Našel jsem tam odkaz, že tento dotaz byl vznesen, avšak bez (pro mě) uspokojivé odpovědi (něco v tom smyslu: udělat to jde, zkuste to). A tak jsem místo odeslání dotazu začal zkoumat dál sám.

Postup

Nebudu napínat: opravdu to jde. Vodítkem se pro mě stala dokumentace k debiannímu balíku xfonts-efont-unicode, kde jsem narazil na postup, jak z bdf definice unicodového fontu vygenerovat font v jiném kódování a také tento odkaz: http://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html.

A tak jsem se pustil do práce dle návodu a výsledkem je tento postup:

Prvně budete potřebovat balík ucs-fonts.tar.gz. V tomto balíku najdete bdf definice různých unicode fontů. Dále budete potřebovat mapu CP852->unicode. Tuto mapu lze sehnat na stránkách unicode.org.

Dále budeme potřebovat utilitu bdftopcf, v Debianu je v balíčku xutils. Balík ucs-fonts.tar.gz rozbalíme ve vhodném adresáři pomocí:

tar xvzf ucs-fonts.tar.gz

Pozor: rozbaluje se přímo do aktuálního adresáře! Pro jednoduchost předpokládám, že do tohoto adresáře překopírujeme i soubor CP852.TXT.

Dále si zvolíme velikost fontu. Já jsem si vybral 9x18 bodů a tedy soubor 9x18.bdf. Dále provedeme příkaz:

ucs2any.pl 9x18.bdf CP852.TXT IBM-CP852
9x18.bdf
soubor s vybraným fontem
CP852.TXT
soubor s mapováním kódování CP852 na unicode
IBM-CP852
výsledné "kódování" fontu. toto kódování musí být ve tvaru něco-něco, můžete si tedy zvolit i CP-852.

Výsledkem je soubor 9x18-IBM-CP852.bdf, který je nutno převést do podoby stravitelné X fontserverem:

bdftopcf 9x18-IBM-CP852.bdf >9x18-IBM-CP852.pcf

Fonty pro X fontserver jsou obvykle zazipované, takže ještě:

gzip 9x18-IBM-CP852.pcf

Pak je třeba nakopírovat tento soubor tak, aby byl k dispozici fontserveru. U mě na Debianu se to provede takto:

cp 9x18-IBM-CP852.pcf.gz /usr/lib/X11/fonts/misc
cd /usr/lib/X11/fonts/misc
mkfontdir

Dále je nutné tento font zpřístupnit xdosemu. xdosemu se pokouší použít font s názvem vga. Prohledáme tedy soubor fonts.dir na řetězec 852 a popisovač fontu (nevím, zda je to vhodný termín) vložíme do fonts.alias. U mě konkrétně to bylo takto: # grep 852 fonts.dir
9x18-IBM-CP852.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-ibm-cp852

Takže výsledný řádek ve fonts.alias vypadá takto:

vga -misc-fixed-medium-r-normal--18-120-100-100-c-90-ibm-cp852

Dále jsem musel restartnout X fontserver (xfs) a X a poté, co jsem spustil xdosemu, vše šlapalo, jak má.

Závěr

Stejným způsobem by bylo možné vytvořit font pro kódování bratří Kamenických (kdysi jsem pro něj používal CodePage 895). Mapu se mi na Internetu najít nepodařilo, ale asi by šla docela jednoduše vytvořit, pokud bych měl k dispozici hexa hodnoty jednotlivých znaků...

Ještě pro jistotu přikládám dosemu.conf

Happy hacking ;-)

Související články

Dosemu - II
Staré dobré hry

Odkazy a zdroje

www.dosemu.org

Další články z této rubriky

VDR a DVB-T2, část 2.
VDR a DVB-T2, část 1.
Šifrovaný Proxmox VE 6: ZFS, LUKS, systemd_boot a Dropbear
MapTiler – proměňte obrázek v zoomovatelnou mapu
Syncthing

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.