Návody
-
České prostředí v okně xdosemu
Č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 konzole 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 debianí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 fontserveru:
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-ka 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 
Diskuse k tomuto článku
Omlouvám se, ale asi nejsem v dosemu dosti zběhlý pro instalaci ABRY GOLD for DOS. Vyhazujeme mi to stále
v úvodním okně, že mám upravit v config.sys FILES na 90. Což jsem učinil. Bohužel i po úpravě se to hlášení stále opakuje. Tak opravdu nevím.
Díky.
Tomáš Tatoušek
Jaky pouzivate DOS pod dosemu?
Ja pouzivam freedos a v config.sys mam toto:
--- start of config.sys
DOS=UMB,HIGH
lastdrive=H
files=120
buffers=100
devicehigh=c:\dosemu\ems.sys
rem devicehigh=c:\dosemu\cdrom.sys
shell=c:\command.com /e:1024 /p
--- end of config.sys
Zkus...
Honza Marek
Pouzito:
dosemu-freedos-bin.tgz
dosemu-1.0.2-bin.tgz
Tento config u mne nastartuje instalaci
FILES=100
BUFFERS=40
lastdrive=H
devicehigh=c:\dosemu\ems.sys
rem devicehigh=c:\dosemu\cdrom.sys
shell=c:\command.com /e:1024 /p
Bohuzel hned se vypise ze "Soubor PKUNZIP"
neexistuje a instalace skoci.
Zdravim
aaa.. nechtel byste nam este trochu ulehcit praci a hodit sem primo ten font, pripadne ho umistit nekde na web?
Preci jen proc stahovat a konvertovat, kdyz uz to nekdo udelal.
A root pristup na masinu bys mi nechtel dat, ze bych to tam primo vsechno nastavil a tak? 
Radeji bych to nechal tak: myslim si, ze kazdy si bude chtit vybrat svoji vhodnou velikost fontu (ja uz jsem skoro slepy ) )
Proto je tu kompletni navod, lehci uz by to asi nebylo ono 
Zdravi
Honza Marek
xdosemu sice hledá vga font, ale to nemůže být důvodem, proč si dělat v instalaci bordel. jako lepší volba se jeví vytvořit alias, který bude respektovat kódování fontu. v debianu obsahuje vga font balík xfont-dosemu, který vytváří alias vga.
co třeba malá úpravička dosemu.conf?
$_X_font = "muj_fontik"
to se nechá vrazit taky do dosemurc a mate to per user 
btw, mám tady krásný cp852 font Libora Rejce a jeden svůj kamenický. vypadají jako ty z romky vga karet a spolu s fonty jiných velikostí se brzo objeví na webu.
ladis
udelal jsem nejake fonty pro xdosemu v kodu kamenickych
je to na:
http://vodka.utia.cas.cz/czdosemu
Je tam pribalena u tabulka pro prevod kodu kamenickych na unicode
a jsou tam i fonty v CP 852, ale myslim, ze ty nejsou
potreba protoze staci pouzit libovolne fonty v iso-8859-2
(treba czil2) a v konfiguracnim souboru nastavit:
$_X_font = "czil2"
$_charset = "latin2"
To pak provadi samo prevod mezi CP852 a iso-8859-2
(aspon podle dokumentace k dosemu)
Naproti tomu, pokud czkam jsou prave ty fonty v kodu kamenickych
a da se:
$_X_font = "czkam"
$_charset = "ibm"
Tak to neprovadi zadny prevod, takze v xdosemu muzeme vesele spoustet
aplikace, ktere funguji jen s kodem kamenickych (vyzkouseno). Obdobne
by se to udelalo s temi fonty CP852, ale jak rikam, myslim, ze to neni
potreba.
|