[cstex] vstupni kodovani csplainu, prosim o nazor
Petr Olsak
petr at olsak.net
Thu Oct 4 10:24:27 CEST 2012
Vážení kolegové,
když jsme před 20 lety dělali csplain, rozhodli jsme se, že interní
kódování bude stejné jako v CM fontech a další znaky české a slovenské
abecedy budou na místech podle ISO-8859-2. Vstupní kódování jsme pak
předpokládali závislé na systému. Například na UNIXech v té době bylo pro
češtinu a slovenštinu používáno ISO-8859-2, takže vstupní kódování bylo
stejné, tj. input procesor měl nastavenou konverzi jedna ku jedné
(tedy nekonverzi) a stačilo zajistit, aby znaky české a slovenské
abecedy byly nastaveny jako ,,printable`` pro použití \write a pro zápis
do logu. K tomu sloužil soubor il2-cs.tcx, který bylo nutno použít v době
generování formátu. Pro první windows se předpokládalo použití konverzní
tabulky cp1250.tcx. Na DOSech si lidé nastavili různá další obskurní
kódování, ale to pak používali jednotně v celém svém DOSoidním systému.
Podle toho zvolili správnou tcx tabulku pro vstupní konverzi v csplainu.
Možná vás zarazí, že nepředpokládáme jednotné vstupní kódování csplainu na
všech systémech. Je to analogie TeXu samotného. V dávných dobách kromě
ASCII se používalo kódování EBCDIC, které kódovalo anglickou abecedu a
další obvyklé znaky úplně jinak než ASCII. TeX na systémech s ASCII
předpokládal vstup podle ASCII a jeho input procesor pracoval jedna ku
jedné, zatímco TeX na systémech podle EBCDIC předpokládal vstup podle
EBCDIC a prováděl ve svém input procesoru vnitřní konverzi. Předpokládalo
se, že textový soubor se nebude mezi těmito systémy přemisťovat jedna ku
jedné, ale vždy dojde k jeho úpravě na správné kódování. Jednoduše: když
operátor viděl na svém terminálu při prohlížení textového souboru
rozsypaný čaj, nedivil se, že TeX mu z toho taky vyrobí rozsypaný čaj.
Na základě toho jsem deklaroval testem cstrip pravidlo: vidím-li v editoru
správně napsanou češtinu nebo slovenštinu, pak to musí csplain správně
zpracovat, jinak to není správně instalovaný csplain. Vidím-li v editoru
rozsypaný čaj, nedivím se, že vyleze rozsypaný čaj a hledám chybu na trase
při přemisťování souboru ze systému do systému.
Během dalších let se vyprofilovala dvě nejčastější 8bitová kódování
češtiny a slovenštiny: ISO-8859-2 na unixech a CP1250 na Windows.
U csplainu jsem tedy předpokládal, že bude mít input procesor nastaven na
1:1 pro unixy a podle cp1250.tcx pro widle. Použití souboru cp227.tcx pro
unixy je korektní, protože je 1:1 a je nadmnožinou původního souboru
il2-cs.tcx, který (stejně jako test cstrip) se stará jen o znaky české a
slovenské abecedy.
Použití souboru cs227.tcx pro csplain ve windows je zásadně nekorektní,
není žádný důvod to takto nastavovat a považuji to za extrémní přehmat
tvůrců distribuce. Je asi potřeba jim to nějak říci. Že to léta nikomu
nevadilo se velmi divím a přikládám to faktu, že kombinaci csplain+widle
lidé nepoužívají. Až nyní se ukázalo, že když to někdo chce použít, diví
se, že mu to nefunguje.
Život počítačový se ale během těch let samozřejmě ještě více zkomplikoval:
textové editory nepřejímají jednotné kódování použité v systému jako
celku, ale snaží se o dodatečnou inteligenci: jiné kódování pouští na
terminál a jiné při ukládání do souboru (save), jsou někdy vybaveny
autodetekcí kódování během procesu load atd. Navíc je stále běžnější
vícebytové kódování textových souborů, typicky UTF8.
Je třeba se zamyslet, jak by se měl v této situaci chovat csplain. Než
učiním nějaké rozhodnutí, rád se podívám na diskusi k tomuto tématu,
kterou tímto emailem otvírám.
Otázka je, zda implicitně přejít na všech systémech na UTF8 (csplain je k
tomu připraven např. s využitím encTeXu). Ovšem csplain používají
konzervativní lidé, kteří si spíše ohnou svůj systém na použití stejného
kódování, jaké používali desítky let, než aby museli konvertovat veškerou
archivovanou práci do nového kódování. Já například typicky pracuji v
xtermu. Už přes deset let dokážu mít na ploše vedle sebe různé xtermy,
jedny kódované podle ISO-8859-2 a druhé v UTF8. Je naprosto jedno, jaký
typ xtermu otevřu, mám je v nabídce vedle sebe. Ovšem nějak jsem se za ta
léta nepřinutil používat xtermy s UTF8. Možná, že nejsem sám.
Zdravím
Petr Olšák
More information about the csTeX
mailing list