CSTEX – historie, soucˇasny ´ stav a budoucnost Petr Olsˇa ´k ˇVUT, Praha Elektrotechnicka ´ fakulta C Email:
[email protected] Abstrakt: CSTEX je podpora ˇcesˇtiny a slovensˇtiny v TEXu a sesta ´va ´ ze trˇ´ı za ´kladnı´ch pilı´rˇu ˚ : CS fonty, CS plain a CS LATEX. V prˇedna ´ˇsce bych se pozastavil podrobneˇji u kazˇde´ho z nich, zavzpomı´nal na to, co se kolem vy´voje jednotlivy´ch balı´ku ˚ odehra ´lo, upozornil na soucˇasne´ novinky a pokusil se odhadnout budoucı´ vy´voj.
Pocˇa ´tky CSTEXu Za ´znam o pocˇa ´tcı´ch pocˇesˇteˇnı´ TEXu lze najı´t v ˇcla ´nku Ladislava Lhotky [6]. Autor zde pı´sˇe, ˇze se na podzim roku 1988 sesˇel s Petrem Nova ´kem a dohodli se, ˇze udeˇlajı´ ˇceske´ osmibitove´ fonty (v METAFONTu) a vzory deˇlenı´ slov. Nejprve to vypadalo tak, ˇze La ´d’a Lhotka udeˇla ´ fonty a Petr Nova ´k vzory deˇlenı´, ale pak to dopadlo prˇesneˇ naopak. Doslechl jsem se take´, ˇze v dobeˇ, kdy jesˇteˇ neexistoval TEX ve verzi 3 (do roku 1989), Petr Nova ´k vymyslel neˇjake´ finty, prˇi nı´zˇ bylo mozˇno dosa ´hnout ˇcesky´ch akcentovany´ch znaku ˚ pomocı´ ligatur v TEXovy´ch metrika ´ch. Po vzniku CSTUGu (konec roku 1990) se iniciativy nad rozsˇirˇova ´nı´m a zvelebova ´nı´m ˇceske´ a slovenske´ podpory pro TEX ujal Olin Ulrych. V te´ dobeˇ se tento projekt zacˇal nazy´vat CS TEX, pozdeˇji CSTEX. Olin zapracoval Lhotkovy vzory deˇlenı´ a Nova ´kovy fonty, prˇidal neˇjaka ´ udeˇla ´tka na u ´ rovni preprocesoru a programy manipulujı´cı´ s dvi. Prvnı´ distribuce byly postaveny na PCTEXu, pak SBTEXu. V roce 1992 prˇesˇel CSTEX kopletneˇ na emTEXovou distribuci pro DOS. Ja ´ jsem tehdy udeˇlal program pro konfiguraci nabı´dek, ktery´ spolupracoval s DOSovy´mi ˇlenu da ´vkami [7]. C ˚ m sdruzˇenı´ jsme v letech 1993 a 1994 zacˇali rozesı´lat disketove´ balı´ky s emTEXem a s ˇceskou a slovenskou podporou – CSTEX. V te´ dobeˇ veˇtsˇina ˇclenu ˚ pouzˇ´vala ı DOS, takzˇe emTEX pro DOS byl pro neˇ vyhovujı´cı´. V dnesˇnı´ dobeˇ uzˇivatele´ pracujı´ s nejru ˚ zneˇjsˇ´mi ı operacˇnı´mi syste´my a s ru ˚ zny´mi distribucemi TEXu pro tyto syste´my. Z toho du ˚ vodu se v tomto textu prˇidrzˇ´me ı jen uzˇˇs´ho ı vy´znamu slova CSTEX, definovane´ho takto: CSTEX je sada TEXovy´ch maker, fontu ˚, vzoru ˚ deˇlenı´ slov a dopln ˇujı´cı´ho software pro podporu ˇceske´ a slovenske´ sazby v TEXu. Je vytvorˇen tak, aby mohl by´t pouzˇit na libovolne´ TEXove´ distribuci na libovolne´m operacˇnı´m syste´mu. V roce 1996 jsem napsal Pa ´r pozna ´mek k nove´mu CSTEXu [2]. Tento dokument ma ´ z dnesˇnı´ho pohledu poneˇkud zastaraly´ na ´zev, protozˇe software z roku 1996 dnes sotva mu ˚ˇzeme povazˇovat za novy´. Nicme´neˇ zde ˇctena ´ˇr mu ˚ˇze najı´t podrobnou historickou pozna ´mku mapujı´cı´ le´ta 1992–1996. Uzˇ v tomto textu z roku
Jan Kasprzak, Petr Sojka (editorˇi): SLT 2002 – sbornı´k semina ´ˇre o Linuxu a TEXu, str. 95–103, 2002. c Konvoj, CSTUG, CZLUG 2002
96
Petr Olsˇa ´k
1996 se snazˇ´m ı vymezit pojem CSTEX poneˇkud ˇs´r ıˇeji, nezˇ jen emTEXova ´ distribuce obohacena ´ o podporu ˇcesˇtiny a slovensˇtiny. Vymezil jsem ho ovsˇem azˇ moc ˇsiroko: porˇa ´d jsem za CSTEX povazˇoval kompletnı´ fungujı´cı´ distribuci TEXu s ˇceskou a slovenskou podporou, i kdyzˇ pro blı´zˇe nespecifikovany´ operacˇnı´ syste´m. Na za ´kladeˇ vymezenı´ pojmu CSTEX z roku 1996 zacˇaly vznikat ve ftp adresa ´ˇri CSTEXu [1] podadresa ´ˇre oznacˇene´ podle operacˇnı´ho syste´mu ˇci distribuce TEXu (naprˇ. emtex, web2c), ktere´ meˇly ambici nabı´dnout kompletnı´ TEXovou distribuci vcˇetneˇ ˇceske´ a slovenske´ podpory. Bohuzˇel, udrzˇovat vsˇechny nabı´zene´ distribuce v akua ´lnı´m stavu se nedalo prˇi jednom muzˇi zvla ´dnout, a proto obsahy teˇchto adresa ´ˇru ˚ velmi rychle zastara ´valy. V roce 2002 jsem se prˇi psanı´ nove´ho Manua ´lu k CSTEXu [3] znovu zamyslel nad obsahem pojmu CSTEX a pokusil jsem se jej vymezit poneˇkud opatrneˇji – stejneˇ, jak je uvedeno zde. Znacˇna ´ ˇca ´st textu v tomto prˇ´spe ı ˇvku pro konferenci SLT 2002 je prˇevzata pra ´veˇ z [3]. Noveˇ vymezeny´ pojem CSTEX se zhruba shoduje s tzv. ja ´drem CSTEXu, cozˇ je slovnı´ spojenı´ pouzˇite´ uzˇ v roce 1996 v [2]. Ja ´dro CSTEXu (noveˇ tedy CSTEX) nabı´zı´m spra ´vcu ˚ m jednotlivy´ch TEXovy´ch distribucı´ k zarˇazenı´. Pro tyto u ´ˇcely jsem vytvorˇil noveˇ na ftp adresa ´ˇri CSTEXu adresa ´ˇr base, ktery´ obsahuje tary CSTEXu k zarˇazenı´ do ru ˚ zny´ch TEXovy´ch distribucı´. Vzda ´va ´m se tedy pu ˚ vodnı´ mysˇlenky udrzˇovat kopie TEXovy´ch distribucı´ na ftp adresa ´ˇri CSTEXu v akua ´lnı´m stavu. CSTEX i v tomto uzˇˇs´m ı smyslu deˇlı´m na ˇca ´st povinnou (required) a nepovinnou (recomended). Povinna ´ ˇca ´st musı´ by´t kompletneˇ instalovana ´ v TEXove´ distribuci, aby se o nı´ mohlo ˇr´ci, ı ˇze „obsahuje CSTEX“. Prˇi vza ´jemne´ vy´meˇneˇ dokumentu ˚ „psany´ch v CSTEXu“ je totizˇ ota ´zka, zda distribuce obsahuje CSTEX, du ˚ lezˇita ´. Povinna ´ ˇca ´st obsahuje TEXova ´ makra, vzory deˇlenı´ a fonty, ktere´ nejsou za ´visle´ na operacˇnı´m syste´mu ani na distribuci TEXu. Dajı´ se tedy relativneˇ snadno implementovat do jake´koli TEXove´ distribuce. Nepovinna ´ ˇca ´st obsahuje dalsˇ´ı doprovodny´ software, jako naprˇ´klad ı csindex (varianta programu makeindex) nebo program vlna na dopln ˇ ova ´nı´ vlnek za prˇedlozˇkami. Povinna ´ ˇca ´st CSTEXu sesta ´va ´ ze trˇ´ı za ´kladnı´ch pilı´rˇu ˚ : CS fonty, CS plain a CS LATEX. CS fonty jsou konzervativnı´m rozsˇ´r ıˇenı´m Knuthovy´ch Computer Modern fontu ˚ , CS plain je konzervativnı´m rozsˇ´r ıˇenı´m Knuthova forma ´tu plain a konecˇneˇ CS LATEX je jistou modifikacı´ beˇˇzneˇ pouzˇ´vane ı ´ho forma ´tu LATEX. Do povinne´ ˇca ´sti CSTEXu je jesˇteˇ zahrnuta podpora pouzˇitı´ za ´kladnı´ch 35 PostScriptovy´ch fontu ˚ v ˇcesˇtineˇ a slovensˇtineˇ prostrˇednictvı´m virtua ´lnı´ch fontu ˚. O historii, soucˇasne´m stavu a budoucnosti jednotlivy´ch pilı´rˇu ˚ si povı´me podrobneˇji v na ´sledujı´cı´ch kapitola ´ch.
2
CS fonty
Tvary akcentu ˚ CS fontu ˚ byly vytvorˇeny a implementova ´ny v jazyce METAFONTu Petrem Nova ´kem ve spolupra ´ci s ˇcesky´mi vy´tvarnı´ky neˇkdy na zacˇa ´tku 90. let. Autor prˇenechal CS fonty CSTUGu, ktery´ s nimi mu ˚ˇze libovolneˇ nakla ´dat.
CSTEX – historie, soucˇasny´ stav a budoucnost
97
METAFONTovy´ ko ´d byl pak v letech 1992–1993 da ´le upraven Karlem Hora ´kem. Karel se inspiroval z METAFONTovy´ch zdroju ˚ pro fonty vytvorˇene´ v Polsku. Zapracoval tam mozˇnost nastavenı´ ko ´dova ´nı´ fontu a vytvorˇil makra umozˇn ˇ ujı´cı´ mı´t vsˇechny hlavnı´ mf soubory se stejny´m dvourˇa ´dkovy´m obsahem. Na schu ˚ zce tvu ˚ rcu ˚ CSTEXu na FEL v roce 1993 bylo rozhodnuto, ˇze CS fonty budou mı´t ko ´dova ´nı´ podle ISO 8859-2. Pozdeˇji, prˇi implementaci CSTEXu do UNIXovy´ch distribucı´ nepodporujı´cı´ch zmeˇny xord/xchr vektoru ˚ se uka ´zalo, ˇze to bylo velmi prozı´rave´ rozhodnutı´. V roce 1993 jsem prˇevzal u ´ drzˇbu CS fontu ˚ do svy´ch rukou. Udeˇlal jsem jen velmi drobne´ zmeˇny. Poslednı´ 28. 9. 1996. Pak jsem vy´voj CS fontu ˚ zmrazil podobny´m zpu ˚ sobem, jako Knuth prˇestal meˇnit CM fonty. Prioritnı´m pozˇadavkem je, aby dokument opı´rajı´cı´ se o CS fonty byl od roku 1996 forma ´tova ´n naprosto stejneˇ dnes i kdykoli v budoucnu. Aby byl tento pozˇadavek splneˇn, nenı´ tedy mozˇne´ zasa ´hnout do rozmeˇru ˚ znaku ˚ , kernu ˚ a ligaturnı´ch tabulek. V roce 1996 jsem do CS fontu ˚ prˇidal virtua ´lnı´ fonty podporujı´cı´ na ´hradu Computer Modern fonty a naopak. V roce 1998 se podarˇilo dohodnout s autorem teTEXu Thomassem Esserem, aby zarˇadil do sve´ distribuce CS fonty a cely´ CSTEX. Od te´to chvı´le obsahujı´ distribuce odvozene´ z teTEXu implicitneˇ kompletnı´ CSTEX. V roce 1998 jsem take´ pro potrˇeby vy´stupu do forma ´tu PDF vytvorˇil variantu CS fontu ˚ , tentokra ´t ve forma ´tu PostScript Type1. Vysˇel jsem z BaKoMa Type1 implementace CM fontu ˚ a vytvorˇil jsem si program t1accent [4], ktery´ k pı´smenku ˚ m prˇida ´val akcenty podle vzorovy´ch PostScriptovy´ch tahu ˚ generovany´ch z pu ˚ vodnı´ch CS fontu ˚ METAPOSTem. Na mnoha mı´stech jsem byl nucen prˇistoupit k mikrotypograficky´m kompromisu ˚ m – v drobnostech se kresby neˇktery´ch znaku ˚ CS fontu ˚ z Type1 lisˇ´ı od svy´ch origina ´lnı´ch METAFONTovy´ch proteˇjsˇku ˚. Proto jsem distribuci Type1 CS fontu ˚ oznacˇil jako „alpha“ a do komenta ´ˇre jsem dal du ˚ razne´ varova ´nı´, ˇze tyto fonty je mozˇne´ pouzˇ´vat ı na vlastnı´ riziko. Z toho du ˚ vodu jsem take´ ponechal implicitnı´ konfiguraci programu dvips tak, aby program pouzˇ´val ı le´ty osveˇdcˇeny´ vy´stup z METAFONTu, tedy bitmapy forma ´tu pk. Type1 CS fonty byly pu ˚ vodneˇ konfigurova ´ny vy´hradneˇ pro pdfTEX. Rozhodnutı´ ponechat dvips pracovat implicitneˇ s bitmapami nara ´ˇzelo na proble´my. Neusta ´le dokola se uzˇivate´ ptali, jak je mozˇne´, ˇze vy´stup z pdfTEXu je dobry´, ale prˇi cesteˇ dvips – ps2pdf dosta ´vajı´ roztrˇesena ´ pı´smenka. Byl jsem uonda ´n velmi ˇcasty´m odpovı´da ´nı´m na tuto ota ´zku a vysveˇtlova ´nı´m, jak pouˇz´t ı dvips s jinou nezˇ vy´chozı´ konfiguracı´. Ani jsem se tedy nakonec nezlobil, kdyzˇ v roce 2001 autor teTEXu rozhodl, ˇze bude CS fonty pro dvips implicitneˇ konfigurovat ve verzi Type1. Asi ty mikrotypograficke´ kompromisy ani tak moc nevadı´, zatı´mco roztrˇesena ´ pı´smenka v PDF a neznalost pouzˇitı´ jine´ nezˇ vy´chozı´ konfigurace dvips zpu ˚ sobovala ohen ˇ na strˇesˇe. V soucˇasne´ dobeˇ existujı´ volneˇ dostupne´ na ´stroje, jako naprˇ´klad ı textrace opı´rajı´cı´ se o autotrace. Tyto na ´stroje umozˇnı´ prˇeve´st METAFONTovy´ font do Type1 „obtahova ´nı´m bitmap“ skoro automaticky. Vyzkousˇel jsem to na CS fontech a s vy´sledkem jsem nebyl vu ˚ bec spokojen: vy´sledne´ pfb soubory byly asi peˇtkra ´t
98
Petr Olsˇa ´k
veˇtsˇ´ı nezˇ ty moje „rucˇneˇ“ vyrobene´ a z BaKoma fontu ˚ odvozene´. Proto jsem zatı´m alpha verzi Type1 forma ´tu CS fontu ˚ z roku 1988 neopustil. Do budoucna bych velmi ra ´d do CS fontu ˚ prˇidal znak euro a paragraf. Takova ´ zmeˇna by byla zpeˇtneˇ kompatibilnı´, takzˇe bych se jı´ nebra ´nil. METAFONTove´ zdroje pro paragraf oveˇˇrene´ na vsˇech CS fontech uzˇ neˇkolik let ma ´m, ale nezverˇejnil jsem je. METAFONTove´ zdroje znaku euro by se snadno daly prˇevzı´t z jine´ho METAFONTove´ho fontu. Nejveˇtsˇ´ı potı´zˇ je ovsˇem v tom, ˇze s uvedenı´m nove´ verze CS fontu ˚ dnes nestacˇ´ı zverˇejnit jen METAFONTove´ zdroje a metriky, ale je trˇeba mı´t okamzˇiteˇ s tı´m konzistentnı´ Type1 varianty fontu ˚ . Do manua ´lnı´ pra ´ce na nove´ verzi Type1 varianty CS fontu ˚ se mi ale moc nechce. Je to nevdeˇˇcna ´ a rozsa ´hla ´ pra ´ce: pfb souboru ˚ je v balı´cˇku 57 a kazˇdy´ je trˇeba disassemblovat, v editoru prˇidat nove´ znaky a znovu prˇeve´st na pfb. Prˇitom s automaticky´mi na ´stroji, jak jsem uvedl prˇed chvı´lı´, nejsem spokojen.
3
Podpora za ´kladnı´ch 35 PostScriptovy ´ch fontu ˚
Tato podpora je zahrnuta do balı´cˇku cspsfonts.tar.gz a ma ´ me´neˇ bohatou historii nezˇ CS fonty. Balı´cˇek zacˇal vznikat v za ´ˇr´ı roku 1994. Tehdy jsem zjistil, ˇze popisy kompozitu ˚ v AFM metrice pomocı´ ˇra ´dku ˚ CC jsou spra ´vneˇ prˇeva ´deˇny programem afm2tfm na odpovı´dajı´cı´ kompozity ve vytva ´ˇrene´m virtua ´lnı´m fontu. Proble´m byl jen v tom, ˇze origina ´lnı´ AFM metriky od Adobe neobsahovaly popisy vsˇech kompozitu ˚ potrˇeny´ch pro ˇcesky´ a slovensky´ jazyk. Z toho du ˚ vodu jsem si vytvorˇil program a2ac [5], ktery´ na za ´kladeˇ prˇehledne´ tabulky kompozity do AFM metrik doplnil a soucˇasneˇ doplnil kerningove´ informace pro noveˇ vytva ´ˇrene´ znaky. Za pouzˇitı´ tohoto programu pak vznikla sada metrik a virtua ´lnı´ch fontu ˚ s pı´smenem c na zacˇa ´tku (naprˇ. cptmr). V roce 1996 pak uverˇejnil pan Wagner nove´ metriky generovane´ stejny´m zpu ˚ sobem, ovsˇem opravil neˇkolik esteticky´ch nedostatku ˚ a navı´c metriky nazval podle doporucˇenı´ Karla Berryho (8z a 8t na konci). Od te´ doby jsou v balı´cˇku ˇeska cspsfonts.tar.gz obsazˇeny metriky pana Wagnera. C ´ a slovenska ´ abeceda je v teˇchto metrika ´ch ko ´dova ´na stejneˇ, jako v CS fontech, tj. podle ISO-8859-2. Pra ´veˇ tomuto ko ´dova ´nı´ odpovı´da ´ koncovka 8z. Konecˇneˇ v roce 1999 jsem musel po konzultaci s Karlem Berrym metriky pro rodinu Courier prˇejmenovat z pu ˚ vodnı´ho *8t na nyneˇjsˇ´ı *8u, protozˇe na ´zvy s 8t na konci na ´m kolidovaly s na ´zvy stejny´ch fontu ˚ v ko ´dova ´nı´ podle Corku. To je zatı´m poslednı´ zmeˇna v tomto balı´cˇku. Do budoucna zvazˇuji rozsˇ´r ıˇit balı´cˇek cspsfonts.tar o dalsˇ´ı metriky a virtua ´lnı´ fonty *.8z k volneˇ ˇs´r ıˇeny´m Type1 PostScriptovy´m fontu ˚ m. Prvnı´ na ˇradeˇ mu ˚ˇze by´t font Charter, ktery´m je vytvorˇen tento sbornı´k. Neuveˇdomil jsem si, ˇze se tento font stal volneˇ ˇs´r ıˇeny´m – ma ´m ho totizˇ uzˇ le´ta kopueny´. Takzˇe metriky ko ´dova ´nı´ *8z uzˇ ma ´m da ´vno hotove´, jen zatı´m nebyly nikde zverˇejneˇny.
CSTEX – historie, soucˇasny´ stav a budoucnost
4
99
CS plain
CS plain vznikl v roce 1992 jako jednoduche´ a minima ´lnı´ rozsˇ´r ıˇenı´ Knuthova plainu pouzˇ´vajı ı ´cı´ CS fonty a akceptujı´cı´ 8bitovy´ vstup. Jeho vytvorˇenı´ bylo motivova ´no zarˇazenı´m do emTEXove´ distribuce, ktera ´ se prˇipravovala k rozesı´la ´nı´ ˇclenu ˚ m CSTUGu. CS plain se opı´ral a sta ´le opı´ra ´ o starsˇ´makra ı hyphen.lan a plaina4.tex, ktera ´ uzˇ meˇl Olin Ulrych vytvorˇena drˇ´ve. ı CS plain v dobeˇ sve´ho vzniku nacˇ´tal ı ˇceske´ vzory deˇlenı´, ktera ´ vytvorˇil La ´d’a Lhotka heuristicky bez pouzˇitı´ slovnı´ku ˚ a programu patgen. Ja ´ jsem pro CS plain vytvorˇil csplain.ini a makro csfonts.tex umozˇn ˇ ujı´cı´ prˇi generova ´nı´ forma ´tu ˇc´st ı prˇ´mo ı Knuthovo makro plain.tex, a prˇitom nata ´hnout mı´sto CMfontu ˚ CS fonty. V roce 1995 byly vzory deˇlenı´ slov La ´di Lhotky vymeˇneˇny za nove´ ˇceske´ vzory ˇevecˇka, ktery´ na to pouzˇil slovnı´k a patgen. V ra deˇlenı´ od Pavla S ´mci sve´ firmy tyto vzory deˇlenı´ proda ´va ´ komercˇnı´m firma ´m pro potrˇeby DTP programu ˚ , jako byly Ventura, Pagemaker nebo Quark. Dnes jsou tyto vzory deˇlenı´ take´ naprˇ´klad ı ˇevecˇek odlisˇil volneˇ ˇs´r ve Wordu. Aby Pavel S ıˇene´ vzory deˇlenı´ pro CSTUG od komercˇneˇ ˇs´r ıˇeny´ch, volneˇ ˇs´r ıˇene´ vzory deˇlenı´ mı´rneˇ modifikoval. Tvrdı´ se, ˇze beˇˇzny´ uzˇivatel nepozna ´ rozdı´l v kvaliteˇ vzoru ˚ deˇlenı´komercˇnı´ch a volneˇ ˇs´r ıˇeny´ch. ˇevecˇkovy vzory deˇlenı´ slov jsou vy´razneˇ kvalitneˇjsˇ´ı nezˇ pu S ˚ vodnı´ Lhotkovy, a proto jsme u teˇchto vzoru ˚ deˇlenı´ zu ˚ stali. Opusˇteˇnı´m Lhotkovy´ch vzoru ˚ deˇlenı´ dosˇlo k poslednı´ zmeˇneˇ v CS plainu, ktera ´ mu ˚ˇze zpu ˚ sobit zpeˇtnou nekompatibilitu v ˇceske´m dokumentu: tj. dokumenty vytvorˇene´ v CS plainu prˇed rokem 1995 mohly dopadnout jinak nezˇ dnes, protozˇe neˇktera ´ slova mohla by´t rozdeˇlena jinak. Od te´to doby je CS plain fixova ´n a stabilnı´ podobneˇ jako Knuthu ˚ v plain. Protozˇe jsem autorem na ´zvu CS plain, souboru ˚ csplain.ini, csfonts.tex a mnozˇstvı´ dokumentace k CS plainu a protozˇe jej od jeho vzniku udrzˇuji, rozhodl jsem se prˇ´sne ı ˇ dba ´t na zpeˇtnou kompatibilitu. Zmeˇny do CS plainu deˇla ´m jen takove´, ktere´ jsou opravdu nezbytne´. To se sta ´va ´ jednou za neˇkolik let (viz historicke´ pozna ´mky v csplain.ini). Zmeˇny deˇla ´m tak, ˇze pouze prˇida ´m dalsˇ´ı nejnutneˇjsˇ´ı makra, ale sta ´vajı´cı´ makra a jejich vy´znam necha ´va ´m nezmeˇneˇna. Uzˇivatelu ˚ m CS plainu rucˇ´m, ı ˇze jejich dokumenty napsane´ v CS plainu a opı´rajı´cı´ se o nemeˇnne´ fonty (naprˇ. CS fonty nebo base 35 PostScriptove´ fonty, metriky z CSTEXu), budou i v budoucnu CS plainem forma ´tova ´ny naprosto stejneˇ, jako dnes. Abych mohl takovou za ´ruku uzˇivatelu ˚ m poskytnout, nenı´ CS plain zverˇejneˇn pod GNU GPL, ale jedna ´ se o licenci velmi podobnou Knuthoveˇ. Prˇesne´ zneˇnı´ licence je uvedeno na konci souboru csplain.ini. Zhruba ˇrecˇeno, jedna ´ se o „patent na na ´zev“. CS plain mu ˚ˇzete svobodneˇ distribuovat, pouzˇ´vat ı a meˇnit, ale pokud jej zmeˇnı´te, nesmı´te jej da ´le distribuovat pod na ´zvem CS plain. Zmeˇny v CS plainu mu ˚ˇze deˇlat jen tzv. „soucˇasny´ administra ´tor CSTEXu“, cozˇ jsem zatı´m sta ´le ja ´. Pokud bych v budoucnu toto brˇ´me ı ˇ neˇkomu prˇedal, pak urcˇiteˇ jen takove´mu ˇcloveˇku, ktery´ ma ´ na budoucnost CS plainu stejny´ na ´zor, jako ja ´. CS plain i nada ´le povazˇuji za minima ´lnı´ rozsˇ´r ıˇenı´ Knuthova plainu a nikdy do neˇj neprˇida ´m ˇza ´dne´ slozˇiteˇjsˇ´ı makro vylepsˇujı´cı´ uzˇivatelsky´ komfort (jako
100
Petr Olsˇa ´k
naprˇ´klad ı eplain nebo OFS). Zasta ´va ´m na ´zor, ˇze uzˇivatel plainu a CS plainu chce mı´t vsˇechna makra pod svou vlastnı´ kontrolou a radeˇji si je udeˇla ´ sa ´m, nezˇ aby spole´hal na hotova ´, ale me´neˇ stabilnı´, ˇresˇenı´. Uzˇivatel plainu/CS plainu si vytva ´ˇr´ı vlastnı´ sta ´le znovu pouzˇ´vana ı ´ makra, ktera ´ mu musı´ fungovat ve vsˇech i budoucı´ch verzı´ch CS plainu. Proto se snazˇ´m ı CS plain pokud mozˇno nemeˇnit. La ´kava ´ je naprˇ´klad ı zmeˇna definice uvozovek v CS plainu jednodusˇe na \long\def\uv#1{\clqq#1\crqq} aby fungoval automaticky´ kerning s obeˇma stranami uvozovek. Tuto zmeˇnu ale nikdy v CS plainu neudeˇla ´m, protozˇe nenı´ zpeˇtneˇ kompatibilnı´ se sta ´vajı´cı´m ˇresˇenı´m a v neˇktery´ch dokumentech by uvnitrˇ \uv prˇestaly fungovat verbatim konstrukce. Radeˇji budu psa ´t do omrzenı´do dokumentace, ˇze takova ´ jednoducha ´ definice je asi lepsˇ´, ı nezˇ ta z CS plainu, a ˇze si ji kazˇdy´ mu ˚ˇze zarˇadit do svy´ch maker. Zmeˇnu v CS plainu z
povazˇuji za asi nejveˇtsˇ´, ı kterou jsem byl ochoten udeˇlat. Tehdy jsem zarˇadil do CS plainu alternativnı´ko ´dova ´nı´Cork, ktere´ samozrˇejmeˇ nenı´ a nikdy nebude v CS plainu implicitnı´. Implicitnı´ nada ´le zu ˚ sta ´va ´ ko ´dova ´nı´ podle ISO-8859-2, tedy podle CS fontu ˚ . K prˇida ´nı´ podpory Corku meˇ motivovala skutecˇnost, ˇze se kolem meˇ pohybovalo mnoho uzˇivatelu ˚ plainu, kterˇ´ı ra ´di pouzˇ´vajı ı ´ fonty v tomto alternativnı´m ko ´dova ´nı´. Svy´m krokem jsem jim umozˇnil pouzˇ´vat ı CS plain, takzˇe si nemusejı´ vytva ´ˇret sve´ vlastnı´ forma ´ty. Jsem si veˇdom proble´mu s touto zmeˇnou spojene´m: do emTEXu (bina ´rky tex.exe i tex386.exe) se ani po zmeˇneˇ pameˇt’ovy´ch parametru ˚ pomocı´ prˇepı´nacˇu ˚ nevejde peˇt vzoru ˚ deˇlenı´ slov (anglicˇtina, ˇcesˇtina v ISO-8859-2 a v Corku a slovensˇtina v ISO-8859-2 a v Cokru). V te´to distribuci je mozˇno forma ´t vygenerovat jen bina ´rkou htex386.exe. Proto zu ˚ sta ´va ´ podpora ko ´dova ´nı´ podle Corku v CS plainu jako nepovinna ´, tj. nelze ocˇeka ´vat, ˇze ji vsˇichni uzˇivatele´ CSTEXu budou mı´t. Take´ se da ´ tato podpora vypnout pomocı´ \let\Cork=\relax prˇed zavedenı´m souboru csplain.ini. Mozˇna ´ uzˇ tusˇ´te, ı procˇ jsem ˇcekal azˇ do roku 2000 s prˇida ´nı´m takove´ho rozˇs´r ıˇenı´. Usoudil jsem, ˇze na prahu nove´ho tisı´ciletı´ uzˇ snad emTEXovou distribuci moc lidı´ nepouzˇ´va ı ´. Pokud jde o budoucnost CS plainu, pak neprˇedpokla ´da ´m ˇza ´dne´ vy´razne´ zmeˇny a vzˇdy budu nekompromisneˇ dodrzˇovat zpeˇtnou kompatibilitu. Jedina ´ veˇc, ktera ´ by mohla kompatibilitu ohrozit, je zavedenı´ kvalitneˇjsˇ´ch ı slovensky´ch vzoru ˚ deˇlenı´ slov. Veˇˇr´m, ı ˇze slovensˇtı´ kolegove´ radeˇji prˇejdou na kvalitneˇjsˇ´ı vzory deˇlenı´ slov, nezˇ aby lpeˇli na absolutnı´ zpeˇtne´ kompatibiliteˇ s ne prˇ´lis ı ˇ kvalitnı´mi vzory deˇlenı´. Ota ´zka pouze zu ˚ sta ´va ´, kdo nove´ slovenske´ vzory deˇlenı´ udeˇla ´. . .
5
CSLATEX
CS LATEX vytvorˇil zhruba v roce 1992 Jirˇ´ı Zlatusˇka. Od neˇj pocha ´zı´ mysˇlenka nacˇtenı´ vzoru ˚ deˇlenı´ stejne´ho jazyka v ru ˚ zny´ch ko ´dova ´nı´ch a prˇedefinova ´nı´ LATEXove´ho makra \DeclareFontEncoding. Na sve´ soukrome´ implementaci TEXu tehdy provozoval mimo jine´ fonty ko ´dovane´ v KOI-8, takzˇe prˇepı´na ´nı´ vnitrˇnı´ho
CSTEX – historie, soucˇasny´ stav a budoucnost
101
ko ´dova ´nı´ LATEXu si vlastneˇ udeˇlal pro svoje potrˇeby. Jirˇ´ı Zlatusˇka je pravdeˇpodobneˇ take´ autorem maker \splithyphens a \standardhyphens, ktera ´ zapı´najı´ a vypı´najı´ inteligenci znaku -. Vesˇkera ´ makra napsal dobrˇe dokumentovana ´ pro pouzˇitı´v syste´mu docstrip. Svou pra ´ci zverˇejnil pod licencı´GPL mimo jine´ podle jeho slov proto, ˇze pokud to bude neˇkoho zajı´mat, tak to mu ˚ˇze da ´le udrzˇovat a zvelebovat podle svy´ch vlastnı´ch prˇedstav. On sa ´m se kvu ˚ li sve´ zanepra ´zneˇnosti v jine´ oblasti tı´mto proble´mem pozdeˇji zrˇejmeˇ nezaby´val. Po schu ˚ zce tvu ˚ rcu ˚ CSTEXu v roce 1993 prˇevzal starost o CS LATEX podle dohody Zdeneˇk Wagner, ktery´ vytvorˇil definice ko ´dova ´nı´ IL2. Vytvorˇil take´ pro CS LATEX definicˇnı´ soubory fd jednak pro CS fonty a jednak pro PostScriptove´ fonty (balı´ˇcek cspsfonts.tar.gz). V te´ dobeˇ byl jesˇteˇ CS LATEXu implementova ´n pro verzi LATEXu 2.09. V emTEXove´ distribuci CSTEXu je sta ´le tato implementace obsazˇena (cslt209.zip v adresa ´ˇri emtex). Soucˇa ´stı´ dnesˇnı´ho CSTEXu (cslatex.tar.gz v adresa ´ˇri base) uzˇ podpora te´to stare´ verze LATEXu nenı´. Acˇkoli mozˇnost nacˇ´st ı vzory deˇlenı´ jednoho jazyka ve vı´ce ko ´dova ´nı´ch dal CS LATEXu uzˇ Jirˇ´ı Zlatusˇka, byla tato mozˇnost azˇ do roku 1999 implicitneˇ v souboru hyphen.cfg vypnuta a CS LATEX bez editace tohoto souboru pracoval jen v ko ´dova ´nı´ CS fontu ˚ . Du ˚ vod uzˇ jsem zmı´nil v kapitole o CS plainu: v emTEXove´ distribuci se peˇt vzoru ˚ deˇlenı´ do pameˇti bina ´rek tex.exe a tex386.exe prosteˇ nevesˇlo. Soubor czech.sty ma ´ asi podstatneˇ delsˇ´ı historii nezˇ CS LATEX. Pocha ´zı´ z dı´lny Olina Ulricha. ktery´ se zrˇejmeˇ inspiroval podobny´m stylovy´m souborem pro neˇmecky´ jazyk. Olin rovneˇˇz vytvorˇil makra \csprimeson a \csprimesoff. Zdeneˇk Wagner pak prˇevzal Olinu ˚ v stylovy´ soubor a upravil jej pro provoz v CS LATEXu. Slovenskou ˇca ´st vcˇetneˇ vzoru ˚ deˇlenı´ slov vytvorˇila Janka Chlebı´kova ´. Soubor slovak.sty je prˇesnou kopiı´ souboru czech.sty s vyjı´mkou slovensky ˇspecificky´ch ˇca ´stı´. V duchu licence GPL prˇevzal zhruba v roce 1997 u ´ drzˇbu CS LATEXu Jaroˇnajdr. Udeˇlal neˇkolik u slav S ´ prav stylovy´ch souboru ˚ czech.sty a slovak.sty vcˇetneˇ prˇechodu na novou definici uvozovek, uvnitrˇ jejichzˇ argumentu nefungujı´ verbatim konstrukce. Tı´m kurio ´zneˇ zpu ˚ sobil, ˇze CS LATEXem od te´to doby nejde bez chyb forma ´tovat ˇcesky´ prˇeklad u ´ vodu do LATEXu, ktery´ je pod na ´zvem balı´cˇku csuvodlat.tar.gz soucˇa ´stı´ dokumentace CSTEXu. Je to na ´zorna ´ uka ´zka toho, co mu ˚ˇze zpu ˚ sobit zmeˇna ko ´du, ktera ´ nerespektuje zpeˇtnou kompaˇnajdr rovneˇˇz napsal html dokumentaci k CS LATEXu, ktera tibilitu. Pan S ´ popisuje instalaci CS LATEXu ze zdrojovy´ch souboru ˚ pouzˇitı´m docstripu. Pouzˇijete-li ale balı´cˇek cslatex.tar.gz, pak nemusı´te docstrip aplikovat, protozˇe vedle zdrojovy´ch souboru ˚ jsou tam uzˇ prˇ´tomny ı i vsˇechny soubory, ktere´ vznikajı´ po aplikaci docstripu. Ja ´ osobneˇ jsem o LATEX a tı´m pa ´dem CS LATEX jevil od zacˇa ´tku maly´ za ´jem, protozˇe osobneˇ pouzˇ´va ı ´m CS plain. V roce 1999 jsem nicme´neˇ prˇidal pa ´r ˇra ´dek maker do souboru czhyphen.tex tak, aby byl pouzˇitelny´ v babelizovane´m LATEXu. Do te´ doby totizˇ tato veˇtev LATEXu pouzˇ´vala ı Lhotkovy vzory deˇlenı´, zatı´mco ˇevecˇkovy vzory deˇlenı´. v CS LATEXu jsme uzˇ ˇctyrˇi roky meˇli daleko kvalitneˇjsˇ´ı S Tyto noveˇjsˇ´ı vzory deˇlenı´ jsou napsa ´ny za pouzˇitı´ TEXovy´ch sekvencı´, cozˇ je sice
102
Petr Olsˇa ´k
neza ´visle´ na ko ´dova ´nı´ ˇcesˇtiny, ale balı´cˇek Babel to implicitneˇ nedoka ´ˇze stra ´vit a ocˇeka ´va ´ vzory deˇlenı´ v ko ´dova ´nı´ T1. Upraveny´ soubor jsem nazval Babelovsky: czhyph.tex, zatı´mco v CSTEXu zu ˚ sta ´va ´ pu ˚ vodnı´ soubor czhyphen.tex. Na vy´borove´ schu ˚ zi v roce 1999 jsem dostal za u ´ kol proveˇˇrit mozˇnost spojenı´ babelizovane´ho LATEXu s CS LATEXem. Neusta ´le´ dotazy zacˇ´najı ı ´cı´ch uzˇivatelu ˚ , kterˇ´ı si pletou tyto dva LATEXy, na ´s utvrzujı´ v tom, ˇze by se pro sloucˇenı´ meˇlo neˇco udeˇlat. Analyzoval jsem proto makra Babelu a udeˇlal na ´vrh na mozˇne´ zapracova ´nı´ funkcionality CS LATEXu do Babelu. Domnı´va ´m se, ˇze CS LATEX klidneˇ mu ˚ˇze prˇestat existovat, ale babelizovany´ LATEX musı´ bezpodmı´necˇneˇ prˇevzı´t vsˇechny vlastnosti CS LATEXu tak, aby dokumenty drˇ´ve ı zpracova ´vane´ CS LATEXem byly naprosto stejneˇ a bez jedine´ u ´ pravy zpracovane´ novy´m babelizovany´m LATEXem. Kvu ˚ li tomuto pozˇadavku musı´ babelizovany´ LATEX umeˇt nacˇ´tat ı vzory deˇlenı´ stejne´ho jazyka ve vı´ce ko ´dova ´nı´ch, jako to nynı´ deˇla ´ CS LATEX. Dospeˇl jsem k za ´veˇru, ˇze ˇcisty´m ˇresˇenı´m tohoto proble´mu je jedineˇ za ´sah do ja ´dra LATEXu samotne´ho, aby doka ´zal prˇi zmeˇneˇ ko ´dova ´nı´ fontu ˚ prˇepnout automaticky i vzory deˇlenı´. Zlatusˇka kvu ˚ li tomu prˇedefinoval makro ja ´dra LATEXu \DeclareFontEncoding. Tato za ´plata, ˇci jinak ˇrecˇeno odmı´tnutı´pu ˚ vodnı´ho ko ´du tohoto makra, je na u ´ rovni Babelu podle me´ho na ´zoru velmi necˇiste´ ˇresˇenı´. Skutecˇnost, ˇze prˇepı´na ´nı´ vzoru ˚ deˇlenı´ prˇi prˇepnutı´ ko ´dova ´nı´ fontu ˚ LATEXove´ ja ´dro nerˇesˇ´, ı povazˇuji za chybu LATEXu. V roce 1999 jsem tedy pozˇa ´dal LATEX-team, aby zapracoval zmeˇnu v duchu Zlatusˇkova na ´vrhu do LATEXove´ho ja ´dra. Mu ˚ j na ´vrh nebyl LATEX-teamem akceptova ´n. Za teˇchto okolnostı´ nejsem schopen zapracovat funkcionalitu CS LATEXu do Babelu, protozˇe to prosteˇ nejde. Uzˇivatele´ LATEXu se budou muset nada ´le poty´kat s tı´m, ˇze jejich oblı´beny´ forma ´t trpı´ urcˇitou schizofremiı´. Spolecˇneˇ se sloucˇenı´m CS LATEXu s Babelem jsem prˇipravoval za ´sadnı´ revizi stylu ˚ czech.sty a slovak.sty – v podstateˇ jsem meˇl v u ´ myslu jejich tota ´lnı´ prˇepsa ´nı´. Tyto stylove´ soubory obsahujı´ mnozˇstvı´ reliktu ˚ z dob minuly´ch, plno zcela nepouzˇ´vany ı ´ch veˇtvı´ ve slozˇite´m veˇtvenı´ pomocı´ \if a sta ´vajı´ se tota ´lneˇ neprˇehledny´mi. Protozˇe ale ke sloucˇenı´ CS LATEXu s Babelem nakonec nedosˇlo, upustil jsem zatı´m od pla ´nu pracovat na teˇch stylovy´ch souborech. Nenı´ ale vyloucˇeno, ˇze k tomu dojde v budoucnosti. V takove´m prˇ´pade ı ˇ pocˇ´ta ı ´m s tı´m, ˇze makra \splithyphens a \standardhyphens prˇesunu z forma ´tu do stylove´ho souboru, kam prˇirozeneˇ patrˇ´. ı Dokumenty, ktere´ tato makra pouzˇ´vajı ı ´, a prˇitom nemajı´ v za ´hlavı´ \usepackage{czech} ani \usepackage{slovak}, pak nebudou fungovat. Prˇedpokla ´da ´m, ˇze takovy´ch dokumentu ˚ nenı´ mnoho, protozˇe CS LATEX a stylove´ soubory jsou veˇtsˇinou pouzˇ´va ı ´ny soucˇasneˇ. ˇnajdr se prˇestal CS LATEXem zaby´vat, byl jsem nucen v roce Protozˇe pan S 2002 zane´st do stylovy´ch souboru ˚ jednu opravu podle pozˇadavku pana Kubena osobneˇ. Neznamena ´ to ale, ˇze bych se ujal iniciativy nad CS LATEXem. Jak jsem uzˇ vysveˇtlil, jsem ochoten prˇevzı´t iniciativu jen tehdy, kdyzˇ bude LATEXove´ ja ´dro umeˇt prˇepı´nat mezi ru ˚ zneˇ ko ´dovany´mi vzory deˇlenı´ stejne´ho jazyka. Prˇitom ˇclenove´ LATEX-teamu jsou toho na ´zoru, ˇze to mozˇna ´ bude zapracova ´no azˇ do LATEXu 3.
CSTEX – historie, soucˇasny´ stav a budoucnost
103
6 Ba ´jecˇnı´ muzˇi na pocˇ´ıtacı´ch strojı´ch Vzpomı´na ´m-li na prˇelom 80. a 90. let minule´ho stoletı´, pak z hlediska rychlosti rozvoje informacˇnı´ch technologiı´ mluvı´m vlastneˇ o pocˇ´tac ı ˇove´m praveˇku. Pra ´veˇ v te´ dobeˇ zacˇal vznikat CSTEX. Tak jako „ba ´jecˇnı´ muzˇi na le´tajı´cı´ch strojı´ch“ polozˇili za ´klady dnesˇnı´ letecke´ dopravy, stejneˇ bychom o lidech, kterˇ´ı se v te´ dobeˇ motali kolem pocˇ´tac ı ˇu ˚ mohli ˇr´kat ı „ba ´jecˇnı´ muzˇi na pocˇ´tacı ı ´ch strojı´ch“. Zvla ´ˇsteˇ jsme pak vdeˇˇcni teˇm, po ktery´ch kromeˇ nadsˇenı´ a okouzlenı´ nad novou progresı´vnı´ technikou zu ˚ stalo taky neˇco uzˇitecˇne´ho. Podı´va ´me-li se na historii CSTEXu, mu ˚ˇzeme smeˇle prohla ´sit, ˇze tam najdeme takovy´ch ba ´jecˇny´ch muzˇu ˚ celou ˇradu (ve sve´m ˇcla ´nku jsem zmı´nil i jednu ˇzenu). Je mozˇne´, ˇze jsem na neˇkoho zapomneˇl, protozˇe sa ´m jsem se dostal k TEXu azˇ relativneˇ pozdeˇ: v roce 1992.
Reference 1. Vy´chozı´ adresa ´ˇr CSTEXu je na ftp://math.feld.cvut.cz/pub/cstex a kopie se nale´za ´ na ftp://ftp.cstug.cz/pub/local/cstex. V dalsˇ´ch ı odkazech bude toto mı´sto oznacˇova ´no jako cstex:/. 2. Petr Olsˇa ´k. Pa ´r pozna ´mek k nove´mu CSTEXu. Volneˇ ˇs´r ıˇena ´ dokumentace k CSTEXu, viz cstex:/parpozn.tex nebo cstex:/parpozn.pdf. 1996. 3. Petr Olsˇa ´k. Manua ´l k CSTEXu. Dokumentace k CSTEXu,cstex:/cstexman.tex nebo cstex:/cstexman.pdf. 2002. 4. ftp://math.feld.cvut.cz/pub/olsak/t1accent/. 5. ftp://math.feld.cvut.cz/pub/olsak/a2ac/. ˇeskoslovenske´ho sdruzˇenı´ uzˇivatelu 6. Ladislav Lhotka. Cˇeske´ deˇlenı´ pro TEX. Zpravodaj C ˚ TEXu, 4/1991, pp 8–9. 7. Petr Olsˇa ´k. Program MNU: Konfigurovatelne´ menu pro spousˇteˇnı´ aplikacı´ pod DOSem. ˇeskoslovenske´ho sdruzˇenı´ uzˇivatelu Zpravodaj C ˚ TEXu, 3/1992, pp 141–148.