Next Previous Contents

9. Tekstovye processory

9.1 Podderzhka kirillicy v TeX/LaTeX

V etom razdele ya opishu neskol'ko sposobov nabora kirillicheskih tekstov v TeX i LaTeX. Est' neskol'ko putej dlya dostizheniya etoj celi, kotorye otlichayutsya v slozhnosti ustanovki i udobstve ispol'zovaniya. Naprimer, odna iz vozmozhnostej eto nachat' rabotu bez vsyakoj predvaritel'noj nastrojki, ispol'zuya Washington AMSTeX Cyrillic fonts. S drugoj storony, vy mozhete ustanovit' paket LaTeX, kotoryj legko nastraivaetsya na pol'zovanie kirillicej.

Vid nabrannogo dokumenta v znachitel'noj stepeni opredelyaetsya shriftom, kotoryj vy ispol'zuete. Osnovnye kirillicheskie shrifty kotorye mozhno ispol'zovat' pri nabore opisany v razdele SHrifty dlya TeX/LaTeX

Obratite vnimanie, chto dostupny dve versii LaTeX, odna iz nih - 2.09 - staraya versiya , v to vremya kak 2e - novaya (vypusk pre-3.0). Esli vy ispol'zuete LaTeX 2.09, to kak mozhno bystree perehodite na 2e. Poslednij sohranyaet sovmestimost' so staroj versiej, no imeet namnogo bol'she vozmozhnostej.

Poslednie versii distributivov LaTeX (naprimer teTeX versii starshe chem 1.0) vklyuchayut v sebya rusifikaciyu out of box. Priznakom rusificirovannosti LaTeX'a out-of-box yavlyaetsya nalichie direktorii /$TEXMF/tex/latex/t2, $TEXMF obychno ravno /usr/lib/texmf ili /usr/share/texmf. Rusifikaciya, kak netrudno dogadat'sya T2 (Sm. razdel T2).

Paket T2

Paket T2 byl iznachal'no byl sozdan Werner Lembergom i Vladimirom Volovichem. |tot paket razvivaetsya po sej den' i, nadeyus', budet razvivat'sya i dal'she. V nem prisutstvuyut nekotorye nedostatki, no v 99% sluchaev dlya otobrazheniya kirillicy cherez LaTeX ego vozmozhnostej hvataet. Sovremennaya rusifikaciya LaTeX osnovana imenno na etom pakete. Primer rusifikacii cherez T2 priveden v razdele Rusifikaciya teTeX.

Paket `T2' mozhno najti na lyubom sajte CTAN v direktorii macros/latex/contrib/supported/t2, poslednyaya versiya lezhit po adresu ftp.vsu.ru

Oficial'no s 1-go dekabrya 1998 goda distributiv LaTeX2e podderzhivaet shrifty so standartnymi kirillicheskimi kodirovkami (T2A, T2B, T2C, X2) i vsevozmozhnye vhodnye kodovye tablicy (naprimer koi8-r, cp1251, cp866, iso8859-5)

BABEL nachal podderzhivat' kodirovku T2 s versii 3.6k (poslednyuyu versiyu mozhno vzyat' na lyubom sajte CTAN v direktorii CTAN:macros/latex/required/babel).

V fajle `cyrguide.tex', kotoryj yavlyaetsya chast'yu distributiva LaTeX2e, opisyvaetsya nastrojka i ispol'zovanie kirillicy pri rabote s LaTeX. Dlya polnoj podderzhki kirillicy trebuetsya imet' lh shrifty i sootvetstvuyushchuyu tablicu perenosov.

SHrifty lh nachinaya s versii 3.20 (oni navernyaka est' v vashem distributive) podderzhivayut vse nuzhnye kodirovki - smotrite razdel lh.

Russkie tablicy perenosov, podderzhivayushchie kodirovku T2 mozhno oformleny kak paket 'ruhyphen' (on navernyaka est' v vashem distributive) mozhno najti na lyubom CTAN arhive v direktorii language/hyphenation/ruhyphen ili po adresu ftp.vsu.ru

V pakete T2 krome neposredstvenno podderzhki T2 kodirovok dopolnitel'no prisutstvuyut sleduyushchie poleznye sostavlyayushchie

  1. Paket `mathtext' - kotoryj pozvolyaet ispol'zovat' kirillicu v formulah bez dopolnitel'nyh uhishchrenij. Paket mozhet byt' vklyuchen s opciej warn - v etom sluchae on soobshchaet obo vseh sluchayah ispol'zovaniya kirillicheskih bukv v formulah. Paket sleduet zagruzhat' do zagruzki paketa babel i/ili fontenc.
  2. Paket `citehack.sty' pereopredelyaet komandy LaTeX takim obrazom, chtoby mozhno bylo ispol'zovat' kirillicheskie simvoly v kachestve argumentov komand \cite i \bibitem - eto vremennyj "hak" i v sleduyushchej versii LaTeX nuzhda v nem otpadet.
  3. Skript `rubibtex' budet polezen, esli vy ispol'zuete bibtex.
  4. Skript `rumkidx' budet polezen, esli vy ispol'zuete makeindex - k sozhaleniyu ne vozmozhno (bez napil'nika) sdelat' neskol'ko indeksov odnovremenno
  5. Direktoriya `examples' soderzhit neskol'ko primerov.
  6. Paket `cyrplain' - na sluchaj, esli vy zahotite ispol'zovat' Plain TeX.
  7. Direktorii `cyrfinst' soderzhit podderzhku kirillicy dlya paketa fontinst.
  8. Direktoriya `enc-maps' soderzhit razlichnye vhodnye kodirovki, kotorye mozhno ispol'zovat' pri nabore fajla LaTeX.

Odnoj iz razdrazhayushchej osobennost'yu T2-kirillizacii yavlyaetsya to, chto "progonke" tex-fajla cherez latex vyvod preduprezhdenij i oshibok vedetsya na vnutrennej kodirovki - to est' T2:

Artem CHuprin napisal programmu-fil'tr - ona perekodiruet soobshcheniya ob oshibkah ot "\T2A/" do konca stroki, ostal'noe ne trogaet. Dlya prakticheskih nuzhd poka hvataet. Programmu mozhno najti po adresu http://www.inp.nsk.su/~baldin/misc/Latex.c

Rusifikaciya teTeX

Opisanie rusifikacii teTeX vzyato iz FAQ, podderzhivaemogo dlya eho-konferencii RU.TEX Alekseem Mahotkinym.

Esli u vas staryj distributiv teTeXa (versiya nizhe 1.0), to nastoyatel'no rekomenduyu skachat' poslednyuyu versiyu etogo programmnogo produkta.

Dlya sovremennyh versij TeX'a (teTeX, fpTeX, MikTeX, Web2c TeX) rusifikaciya uzhe vhodit v distributiv.

Pervoe, chto nuzhno sdelat', eto podklyuchit' russkie perenosy. Dlya etogo nuzhno otredaktirovat' fajl language.dat nahodyashchijsya v direktorii $TEXMF/tex/generic/config/language.dat ($TEXMF obychno ravno /usr/lib/texmf ili /usr/share/texmf) dobaviv tuda stroki:

ruseng ruenhyph
       =russian
       =english

Ostal'nye stroki nuzhno zakommentirovat', libo udalit'. Posle chego neobhodimo peregenerirovat' formatnye fajly:

texconfig init

Opisannoe vyshe mozhno prodelat' cherez standartnuyu konfiguracionnuyu programmu texconfig - vybrat' menyu /hyphenation, dalee latex i raskommentirovat' russian.

Teper' mozhno rabotat' s russkim yazykom.

Dobav'te v preambulu dokumenta (posle slov \documentclass{})


\usepackage{mathtext}         % esli nuzhny russkie bukvy v formulah (ne obyazatel'no)
\usepackage[T2A]{fontenc}     % vnutrennyaya T2A kodirovka TeX
\usepackage[koi8-r]{inputenc} % kodirovka - mozhno ispol'zovat' [cp866] [cp1251]
\usepackage[russian]{babel}   % vklyuchenie perenosov

Posle etogo v dokumente mozhno ispol'zovat' russkie bukvy.

Podrobnee o pakete T2 smotrite razdel Paket T2.

P.S. |to tol'ko odin iz variantov, samyj prostoj i universal'nyj resheniya problemy rusifikacii. Est' i drugie varianty i metody kotorye na praktike mogut okazat'sya bolee udachnymi.

CHtoby dobavit' formaty iz cyrplain nabora v texconfig sleduet vybrat' menyu FORMATS i dobavit'

cyrtxinf      tex             language.dat    cyrtxinf.ini

dlya russkogo texinfo. Analogichno dlya cyrblue i cyramstx.

CHtoby dobavit' format cyrtex (russkij TeX) proshche v kataloge web2c vypolnit':

initex '\input cyrtex.ini \dump'

i brosit' simvolicheskuyu ssylku s imenem cyrtex na tex (naprimer v /usr/bin)

CHtoby pereklyuchitsya na russkij v etih plain formatah nado ispol'zovat' komandu

\language N
gde N - nomer, pod kotorym chislitsya russkij yazyk v poluchivshejsya raskladke.

Rabota s Washington Cyrillic

|tot paket byl sozdan dlya Amerikanskogo Matematicheskogo Obshchestva, chtoby dat' vozmozhnost' sozdavat' dokumenty so ssylkami na pervoistochniki na russkom. Sledovatel'no, avtory ne ochen' "napryagalis'"  pri sozdanii etogo paketa i shrifty v rezul'tate etogo vyglyadyat dovol'no neuklyuzhe. Obychno etot paket upominaetsya kak "po nastoyashchemu plohoj paket kirillicy dlya TeX".

Odnako, my obsudim ego, tak kak on ochen' prost v ispol'zovanii i ne trebuet ustanovki - etot nabor soderzhitsya v bol'shinstve distributivov TeX.

Konechno, u vas ne budete takoj roskoshi, kak avtomaticheskaya rasstanovka defisov, no vse ravno...

CHrezvychajno slozhno preobrazovyvat' vashi russkie teksty v takuyu kodirovku, no vy mozhete avtomatizirovat' etot process. Programma translit (razdel Simvol'naya perekodirovka) podderzhivaet opciyu vyvoda TeX.

9.2 StarOffice

Naibolee polnuyu i podrobnuyu informaciyu po rusifikacii StarOffice mozhno najti na stranichke Leona Kantera po adresu - http://www.blackcatlinux.com/StarOffice/

Poslednyaya novost': Sun, kotoryj na kornyu skupil Star Division Corp., vypustil besplatnuyu versiyu rusificirovannuyu StarOffice 5.2, pravda shrifty dlya nego nuzhny v ISO 8859-5 kodirovke

Off-topic: Sleduyushchaya versiya StarOffice (6.0?) vyjdet pod licenziej GNU - tak bylo obeshchano (Sun slov na veter ne brosaet)

StarOffice 5.2

|ta instrukciya predstavlyaet soboj dopolnenie k Instrukcii po installyacii StarOffice 5.2, otrazhayushchee osobennosti ustanovki i nastrojki russkoj versii etogo paketa. Vy uznaete, kak naibolee polno realizovat' vozmozhnosti, zalozhennye v etom pakete, i obojti vozmozhnye problemy.

Naibolee polnuyu i podrobnuyu informaciyu po rusifikacii StarOffice 5.2 dlya Black Cat Linux 6.2 mozhno najti na stranichke Leona Kantera po adresu - http://www.blackcatlinux.com/StarOffice/

SHrifty i kodovye stranicy

StarOffice 5.2 - ne tol'ko pervaya rusificirovannaya versiya etogo paketa, no i pervaya versiya, kotoraya mozhet rabotat' s razlichnymi kodirovkami kirillicy, to est' otobrazhat' ustanovlennye v sisteme shrifty v sootvetstvii s tekushchej kodirovkoj, v kotoroj zapushchen StarOffice. Takih kodirovok podderzhivaetsya tri - KOI8-R, ISO8859-5 i CP1251. Tekushchaya kodirovka opredelyaetsya paketom po znacheniyu peremennoj okruzheniya LANG - ono mozhet imet' znacheniya ru_RU.KOI8-R, ru_RU.ISO8859-5 ili ru_RU.CP1251 (Dlya vyyasneniya podrobnostej smotrite razdel Nastrojka lokali).

Vnimanie!: uk_UA.KOI8-U, uk_UA.CP1251, ru_UA.KOI8-U, ru_UA.CP1251 ne podderzhivayutsya! Pri zapuske StarOffice s odnim iz etih znachenij LANG vse nadpisi budut otobrazhat'sya voprositel'nymi znakami! Dlya raboty s dokumentami na ukrainskom yazyke neobhodimo ispol'zovat' ru_RU.CP1251.

StarOffice sposoben otobrazhat' ustanovlennye v sisteme shrifty v sootvetstvii s tekushchej kodirovkoj, v kotoroj zapushchen paket. To est', esli v sisteme ustanovleny shrifty KOI8-R, a tekushchaya kodovaya stranica StarOffice - CP1251, on popytaetsya "sobrat'" CP1251 iz KOI8-R, no pri etom budut bol'shie poteri, tak kak v KOI8-R otsutstvuyut ne tol'ko ukrainskie, belorusskie i yuzhnoslavyanskie bukvy, no i mnogie tipografskie znaki, takie kak kavychki-"elochki", dlinnoe tire i drugie. Pri importe dokumentov iz Microsoft Office eti nedostayushchie simvoly budut zamenyat'sya voprositel'nymi znakami, chto zatrudnit rabotu s importiruemymi dokumentami. Poetomu my rekomenduem dlya raboty so StarOffice ispol'zovat' shrifty v kodirovke CP1251, kotoraya soderzhit samyj polnyj nabor simvolov, iz kotoryh legko "sobiraetsya" kak KOI8-R, tak i ISO8859-5. StarOffice ispol'zuet dva vida shriftov - rastrovye (pcf) - dlya elementov interfejsa (menyu, podskazki, formy i dr.), i Type1 - dlya pechati i otobrazheniya dokumentov na ekrane. CHtoby povysit' kachestvo otobrazheniya dokumentov na ekrane, mozhno ispol'zovat' shrifty TrueType iz Windows. Dalee podrobno rasskazyvaetsya, gde vzyat' i kak pravil'no ustanovit' vse neobhodimye shrifty.

Ustanovka shriftov

Informaciyu o tom gde mozhno najti rastrovye shrifty dlya X Window i o tom kak ih ustanovit' sleduet poiskat' v razdele SHrifty H window i/ili SHrifty dlya X Window. Vam nuzhno dostat' i ustanovit' shrifty v kodirovke CP1251.

Informaciyu ob ustanovke TrueType shriftov mozhno najti v razdele SHrifty TrueType

Informaciyu ob ustanovke Type1 shriftov mozhno najti v razdele SHrifty Type1

Ustanovka StarOffice

Pered ustanovkoj ubedites', chto v vashem domashnem kataloge dostupno ne menee 260Mb. Process ustanovki podrobno opisan v Instrukcii po installyacii StarOffice 5.2.

Podklyuchenie shriftov Type1 dlya pechati

Dlya togo, chtoby rabotat' s kirillicej v StarOffice, neobhodimo snachala dobavit' novye shrifty k drajveru pechati StarOffice - biblioteke XPrinter. Dlya etogo v paket vhodit special'naya utilita - SPAdmin. Vypolnite ee komandoj ~/office52/program/spadmin (~ oznachaet domashnij katalog). Posle etogo nazhat' knopki "Add Fonts" -> "Browse" i ukazat' katalog gde lezhat Type-1 shrifty - naprimer /usr/share/fonts/MICROSOFT-CP1251/Type1.

Dalee podtverdite ustanovku vseh perechislennyh shriftov. Podsistema pechati StarOffice gotova k rabote.

Vybor kodirovki dlya raboty so StarOffice

Kak uzhe upominalos' vyshe, StarOffice 5.2 mozhet rabotat' v odnoj iz treh kodirovok: KOI8-R, ISO8859-5, CP1251. Kazhdaya iz etih kodirovok imeet svoi dostoinstva i nedostatki. Poprobuem razobrat'sya.

  1. KOI8-R Edinstvennoe dostoinstvo - pozvolyaet otpravlyat' pis'ma i soobshcheniya v gruppy novostej v etoj zhe kodirovke, i v nej zhe sohranyat' dokumenty .html. Vse ostal'noe - sploshnye nedostatki: slishkom mnogo voprositel'nyh znakov pri importe iz Microsoft Word.
  2. ISO8859-5 Edinstvennaya kodirovka, kotoraya pozvolyaet rabotat' so vstroennymi v etu versiyu slovaryami dlya proverki russkoj orfografii i perenosov. Imeet takzhe bol'shinstvo ukrainskih (krome "g s chubom") i belorusskie bukvy. Nedostatki: pis'ma, otpravlennye v etoj kodirovke, ne chitayutsya bol'shinstvom dostupnyh klientov, v tom chisle netscape messenger'om. Krome togo, pri nazhatii knopki "otobrazhat' nepechatnye simvoly" vmesto privychnyh znachkov nablyudayutsya russkie bukvy "Z" i "ZH".
  3. CP1251 Naibolee udachnaya, na nash vzglyad, kodirovka dlya teh, u kogo net problem s russkoj orfografiej: 100% import iz Micro$oft Office, polnyj nabor special'nyh simvolov, vklyuchaya Evro, vozmozhnost' rabotat' na lyubom iz slavyanskih yazykov. Nedostatki - russkij slovar' nedostupen, pis'ma otpravlyayutsya v ISO8859-5.

Vyvod: esli nuzhna pochta i novosti - rabotaem v KOI8-R, nuzhen slovar' - ISO8859-5, vo vseh ostal'nyh sluchayah - CP1251.

Dlya zapuska StarOffice v kodirovke, otlichnoj ot sistemnoj, mozhno ukazat' polnoe imya locale neposredstvenno v komandnoj stroke, naprimer:

LANG=ru_RU.CP1251 ~/office52/program/soffice

Libo zhe mozhno podredaktirovat' sam fajl ~/office52/program/soffice, ili fajly kdlnk, ili napisat' svoi scenarii dlya zapuska StarOffice v razlichnyh kodirovkah.

Dlya vvoda ukrainskih bukv dostatochno smenit' raskladku klaviatury - naprimer pri pomoshchi pereklyuchatelya kkb.

Pechat' iz StarOffice

Dlya vyvoda na printer StarOffice generiruet format PostScript. Dopolnitel'naya rusifikaciya interpretatora Ghostscript ne trebuetsya, tak kak vse neobhodimye shrifty vstraivayutsya v dokument.

Kak eto proishodit?

Poprobuem razobrat'sya, dlya chego proizvodilis' vse perechislennye vyshe dejstviya. Kak uzhe upominalos', v kachestve drajvera pechati StarOffice ispol'zuet biblioteku Bristol Xprinter. |ta biblioteka mozhet ispol'zovat' shrifty tol'ko v formate Type1, esli shrift soderzhit bolee 256 simvolov - ispol'zuyutsya tol'ko pervye 256, v poryadke, opisannom v vektore kodirovki shrifta. V komplekte so shriftom obyazatel'no obyazatel'no dolzhen byt' fajl metriki v formate .afm.

Pri ustanovke shriftov programmoj SPAdmin informaciya o shrifte dobavlyaetsya v fajl xp3/psstd.fonts v formate, shodnom s formatom fajlov fonts.dir/fonts.scale. V kataloge xp3/pssoftfonts i xp3/fontmetrics/afm sozdayutsya simvolicheskie ssylki sootvetstvenno na fajly shrifta i metriki. Posle etogo Xprinter "uznaet" o tom, chto u nego poyavilsya novyj shrift.

Pri zapuske StarWriter'a on zaprashivaet u Xprinter spisok ustanovlennyh shriftov. Tol'ko shrifty, perechislennye v psstd.fonts, poyavyatsya v spiske dostupnyh shriftov StarWriter'a. A dlya otobrazheniya na ekrane iz X-servera zaprashivaetsya pervyj popavshijsya shrift, u kotorogo v nazvanii vtoroe pole (Family) sovpadaet s tem, chto napisano v psstd.fonts, pri etom polya Foundry i Encoding ignoriruyutsya. To est', esli v Xprinter ustanovlen shrift v odnoj kodirovke, a v X - v drugoj, ispol'zovat' ih v StarOffice prakticheski nevozmozhno. |to proishodit so standartnymi shriftami Times, Helvetica, Courier.

Problemy pri rabote so StarOffice

Osnovnaya problema zaklyuchaetsya v tom, chto v etoj versii beznadezhno isporcheny vse fil'try dlya raboty s formatami, kotorye ne predusmatrivayut ukazaniya kodirovki - text, rtf, Word6.0/95. Pri sohranenii v lyubom iz etih formatov russkie bukvy zamenyayutsya na "?". To est' obmen dokumentami s pol'zovatelyami Windows vozmozhen tol'ko cherez format Word/Excel 97/2000. Vyshe upominalos', chto nekotorye pochtovye klienty ploho perenosyat pis'ma v kodirovke ISO8859-5, nesmotrya na yavnoe ukazanie etoj kodirovki. Krome togo, my ne rekomenduem ispol'zovat' funkciyu zameny standartnyh shriftov dokumenta (Servis - Parametry - Tekstovyj dokument - Standartnye shrifty), tak kak eto mozhet vyzvat' problemy.


Next Previous Contents