Next Previous Contents

10. Vyvod na pechat' i PostScript

Napechatat' chto-libo - eto vsegda problema. Imeetsya nabor razlichnyh printerov ot razlichnyh proizvoditelej s razlichnymi osobennostyami. Dazhe dlya vyvoda na pechat' obychnogo ASCII teksta net nikakih obshchih reshenij (eto primenimo ne tol'ko k UNIX, no takzhe i k drugim operacionnym sistemam.

Printery imeyut razlichnye upravlyayushchie yazyki, i ochen' chasto oni imeyut sil'no razlichnye podhody k podderzhke inostrannyh yazykov. Horoshaya novost' - eto to, chto sejchas v kachestve upravlyayushchego yazyka, kak standart de facto dlya opisaniya raboty pechati ispol'zuetsya yazyk PostScript, razrabotannyj Adobe Corporation. Mnogo printerov imeyut vstroennyj PostScript interpretator, to est' vam nado prosto poslat' na printer Postscript dannye. Dlya teh, u kogo etogo net, sushchestvuet programmnye PostScript interpretatory, kotoryj berut dannye Postscript i preobrazovyvayut v specificheskij dlya dannogo printera upravlyayushchij kod. Odin iz nih my sejchas obsudim (veroyatno, samyj luchshij iz luchshih). |to GNU GhostScript (gs dlya kratkosti).

Drugaya problema - eto shirokij spektr trebovanij, pred®yavlyaemyh k pechati. Naprimer, inogda vy hotite prosto napechatat' chast' vashej "C"  programmy, soderzhashchej v kachestve kommentariya tekst na russkom, tak chto vy ne nuzhdaetes' v "navorochennoj" procedure pechati - vam nuzhen prostoj ASCII vyvod s odnim shriftom. Sovsem drugoj delo, kogda vy sozdaete otkrytku dlya vashej podrugi. V etom sluchae vy, veroyatno, budete nuzhdat'sya v pechati dokumenta s razlichnymi shriftami i t.d. I eto uzhe opredelenno trebuet bol'shih usilij po ustanovke podderzhki kirillicy.

CHtoby vypolnit' vysheupomyanutuyu zadachu po vyvodu S programmy, vy dolzhny zastavit' vash printer ponyat' tol'ko odin shrift kirillicy i (vozmozhno) ustanovit' nekotoruyu programmu-fil'tr, chtoby vyvodit' dannye v sootvetstvuyushchem formate. CHtoby sovladat' so vtoroj zadachej, vy dolzhny obuchit' vash printer razlichnym shriftam i imet' special'noe programmnoe obespechenie.

Byvayut zadachi, trebuyushchie dlya vypolneniya nechto srednee, togda vam nuzhna programmy, kotoraya znaet, kak organizovat' i shrifty, i sootvetstvuyushchij vyvod v printer, tak chto vy mozhete, skazhem, poluchit' na vyhode kachestvenno otpechatannyj tekst bez slozhnyh sistem podgotovki tekstov.

10.1 Preobrazovanie teksta v PostScript

Inogda u vas est' prostoj ASCII KOI-8 tekst, i vy hotite ego tol'ko napechatat'. Odin iz samyh prostyh sposobov eto sdelat' - eto vospol'zovat'sya uslugami programm, preobrazuyushchih tekst v PostScript.

Est' ryad programm, delayushchih takoe preobrazovanie. YA lichno predpochitayu a2ps. Pervonachal'no razrabotannaya kak prostoj text-to-PostScript preobrazovatel', eta programma sejchas stala "materym", legko nastraivaemym programmnym produktom s bol'shim kolichestvom opcij i nastroek. Ona pozvolyaet upravlyat' formatami, razmeshcheniyami stranic, vydeleniem i t.d. Drugaya utilita, delayushchaya primerno to zhe samoe (teper' dostupnaya kak chast' proekta GNU) - enscript.

A2ps konverter

Preobrazovatel' teksta v PostScript byl i ostaetsya odnim iz naibolee universal'nyh sredstv pechati. Vse, v chem vy teper' nuzhdaetes' - eto PostScript printer.

Komanda, kotoruyu ya ispol'zuyu dlya etogo:

a2ps -X koi8r --print-anyway  <fajl>

GNU enscript

Programma GNU enscript takzhe, kak i a2ps, byla razrabotana dlya preobrazovaniya teksta v PostScript, i ona takzhe podderzhivaet ne ascii kodirovki. Programma ne imeet russkih PostScript shriftov v svoem sostave, no ih ochen' prosto doustanovit'. Kak eto sdelat', opisano nizhe (spasibo Michael Van Canneyt):

  1. Ustanovite poslednij enscript. Samuyu poslednyuyu versiyu 1.5. vy mozhete najti na GNU FTP arhive.
  2. Esli vy - pol'zovatel' RedHat Linux, zagruzite i ustanovite shrift Cyrillic Textbook.
  3. Esli vy ne ispol'zuete RPMki, vytyanite fajl textbook.tar.gz iz arhiva na sunsite.unc.edu (zdes' lezhit programmnoe obespechenie dlya rusifikacii). Razarhivirujte etot fajl v katalog, gde razmeshcheny shrifty dlya enscript (obychno /usr/share/enscript). Teper' perejdite tuda i vypolnite sleduyushchuyu komandu:
        mkafmmap *.afm
    
  4. Ustanovka zavershena. Poprobujte napechatat' tekst v KOI8-R sleduyushchej komandoj:
        enscript --font=Textbook8 --encoding=koi8 some.file
    

rtxt2ps

Esli zhe vam trebuetsya dejstvitel'no bystryj i prostoj sposob, a kachestva vyvoda dlya vas ne kritichno, i vse, chto vam nuzhno - eto tol'ko russkij tekst na bumage - poprobujte paket rtxt2ps. |to ochen' prostoj, bez ukrashatel'stv konverter teksta v PostScript. Kachestvo vyvoda ne ochen' horoshee (ili, chestno govorya plohoe), no eto rabotaet.

10.2 Preobrazovanie teksta v TeX

Esli vse, v chem vy nuzhdaetes' - eto pechatat' ASCII teksta bez dopolnitel'noj obrabotki, to vy mozhete ispol'zovat' nekotorye programmki, kotorye mogut preobrazovat' vash tekst kirillicy v gotovyj TeX fajl. Odna iz samyh luchshih programm dlya takih celej - eto translit (Smotrite razdel Simvol'naya perekodirovka). V etom sluchae vy dazhe ne dolzhny bespokoit'sya otnositel'no ustanovki shriftov kirillicy dlya TeX, tak kak translit ispol'zuet paket kirillicy Washington Cyrillic, kotoryj vklyuchen v bol'shinstvo distributivov TeX (podrobnee ob etom pakete smotrite v razdele Rabota s Washington Cyrillic).

10.3 Kirillica v PostScript

|ksperty govoryat, chto PostScript - eto prosto. YA ne mogu sudit' - u menya bylo slishkom mnogo veshchej, kotorye nado izuchit', chtoby vykroit' vremya dlya izucheniya PostScript. No ya vse ravno poprobuyu ispol'zovat' moi nebol'shie znaniya ob etom voprose. YA budu ochen' blagodaren za lyubuyu informaciyu ob etom voprose ot vas, druz'ya, kotorye znayut bol'she menya (vas priblizitel'no 99 % ot Zemnoj populyacii).

CHtoby pechatat' russkij tekst s ispol'zovaniem PostScript, vy dolzhny udostoverit'sya otnositel'no sleduyushchih veshchej:

Ne imeetsya nikakogo dostatochno obshchego resheniya, chtoby rekomendovat' ego kak okonchatel'noe. YA poprobuyu osvetit' razlichnye sposoby dlya resheniya razlichnyh problem, svyazannyh s etim voprosom.

Odin sposob - eto poborot' problemy ustanovki kirillicy voobshche, i sostoit on v tom, chtoby ispol'zovat' Ghostscript. Ghostscript (ili prosto gs ot newspeak) absolyutno free (nu, ne sovsem) interpretator PostScript. U nego est' mnogo preimushchestv; sredi nih:

V nashem specificheskom sluchae yavlyaetsya vazhnym to, chto odnazhdy ustanoviv i nastroiv Ghostscript, my mozhem vse pechatat' cherez nego, takim obrazom nam ne nado dopolnitel'no nastraivat' drugie PostScript ustrojstva (naprimer HP LaserJet IV).

10.4 Inkapsulyaciya shriftov Type1 v Encapsulated PostScript (eps)

Risunki v formate PostScript chasto trebuetsya vklyuchat' v tekst, podgotovlennym takim sredstvom formatirovaniya kak TeX. Kompaniya Adobe razrabotala format fajla Inkapsulirovannyj PostScript (EPS ili EPSF), kotoryj sozdaetsya v sootvetstvii s soglasheniyami po strukturirovaniyu dokumentov v formate PostScript (PostScript Document Structuring Conventions).

Bol'shinstvo sovremennyh graficheskih prilozhenij porozhdaet fajl v obshcheprinyatom formate EPS, kotoryj bez truda mozhet byt' ispol'zovan LaTeXom. Sushchestvuet odno no: kak pravilo, pri sozdanii EPS fajla shrifty, kotorymi delayutsya nadpisi (shrifty, konechno zhe - PostScript Type1), v nego ne vklyuchayutsya i pri pechati zamenyayutsya pervymi popavshimisya.

Esli u vas est' kartinka v EPS, ispol'zuyushchaya shrift AAA, i fajl AAA.PFA s etim PostScript shriftom to dlya togo, chtoby inkapsulirovat' etot shrift v etu kartinku, nado s pomoshch'yu lyubogo tekstovogo redaktora vstavit' fajl AAA.PFA celikom neposredstvenno pered strochkoj %%EndProlog v fajl EPS.

Esli u vas est' tol'ko PFB shrifty, to ih sleduet ego preobrazovat' v PFA. Dlya etogo vospol'zujtes' utilitoj pfb2pfa (sm. CTAN) ili t1ascii (sm. t1utils).

Dlya vstavki vmesto redaktora mozhno ispol'zovat' skript includeresources iz psutils - on delaet to zhe, no avtomaticheski.

|tot zhe priem srabatyvaet i dlya obychnogo Postcript fajla.

10.5 Ghostscript

Paket Ghostscript yavlyaetsya sovershenno unikal'nym produktom - fakticheski vse, chto pechataetsya v Unix prohodit cherez Ghostscript.

Nastrojka ghostscript

Inogda neobhodimo imet' kakuyu-nibud' specificheskuyu, ne obshchesistemnuyu nastrojku ghostscript. Naprimer, vozmozhno, chto u vas net privilegij root-a ili vy ne zhelaete vospol'zovat'sya imi iz soobrazhenij bezopasnosti. V sisteme mogut sovmestno rabotat' pol'zovateli, nuzhdayushchihsya v raznyh nastroek. Krome togo, universal'noj nastrojki prosto ne sushchestvuet. Naprimer dlya togo chtoby Netscape pechatal kirillicu, nuzhno zamestit' standartnye latinskie PostScript shrifty kirillicheskimi. No s drugoj storonoj posle etoj zameny budet nevozmozhno napechatat' (i dazhe uvidet' na ekrane) nekotorye latinskie teksty.

Sozdajte novyj katalog (napr. ~/.ghostscript) i pomestite v nem vse novye kirillicheskie shrifty. Skopirujte v nego takzhe fajl Fontmap i zatem redaktirujte ego kak Vam ugodno. Ustanovite peremennuyu okruzheniya GS_LIB:

export GS_LIB=~/.ghostscript

|ta peremennaya ukazyvaet ghostscript, chto nuzhno snachala zaglyanut' v kataloge ~/.ghostscript (gde nahodyatsya vashi novye shrifty i fajl Fontmap) i lish' potom v obshchesistemnye katalogi.

Dobavlenie shriftov kirillicy k Ghostscript

|to vazhno, tak kak vy, veroyatno, ne zahotite vzvalivat' otvetstvennost' za vklyuchenie shriftov kirillicy v PostScript na drugie programmy. Vzamen vy dobavlyaete ih tol'ko k gs i zastavlyaete programmy vyvodit' russkij tekst, sovmestimyj s etimi shriftami.

CHtoby dobavlyat' novyj shrift (v formate pfa ili pfb) v gs, vy dolzhny:

  1. Pomestit' etot shrift v katalog shriftov tt/gs/. Obychno eto /usr/lib/ghostscript/fonts - mozhno utochnit' s pomoshch'yu komandy 'gs -h'.
  2. Dobavit' sootvetstvuyushchie imena i aliases dlya shrifta v fajle Fontmap v kataloge gs.

O tom gde mozhno najti shrifty Type1 opisano v razdele SHrifty Type1.

10.6 Ispol'zovanie starogo matrichnogo printera dlya pechati kirillicheskogo teksta

Esli u vas est' staryj, dobryj matrichnyj printer, i vy nuzhdaetes' v prostom vyvode teksta na KOI8, to poprobujte sleduyushchee:

  1. Najti sootvetstvuyushchij KOI8 shrift dlya vashego printera. Prover'te ftp arhivy MS DOS - v Internete (naprimer posmotrite na arhiv SimTel).
  2. Prochitajte rukovodstvo i najdite v nem opisanie zagruzki takogo shrift v vash printer. Napishite prosten'kuyu programmu, delayushchuyu eto.
  3. Zapuskajte etu programmku iz sootvetstvuyushchego rc fajla pri zagruzke.

Takim obrazom, nalichie simvolov Cyrillic v verhnej chasti nabora simvolov printera pozvolit vam pechatat' teksty po-russki bez dopolnitel'nyh uhishchrenij.

Al'ternativno k KOI8-R shriftam vy mozhete poprobovat' ispol'zovat' Alt shrifty. Dlya etogo imeyutsya dve prichiny:

Sleduet otmetit', chto v Bolgarii vmesto "al'ternativnoj kodirovki" ispol'zuetsya kodirovka MIK.

Odnako, v etom sluchae, vy dolzhny budete preobrazovat' vashi teksty iz KOI8-R v Alt pered posylkoj ih na printer. |to ne problema, tak kak imeetsya mnozhestvo programm, delayushchih eto (dlya primera smotrite razdel Simvol'naya perekodirovka), tak chto dlya etogo vam nuzhno tol'ko vyzvat' takuyu programmku iz fajla /etc/printcap v "if pole". Naprimer, s programmoj translit mozhno sdelat' sleduyushchee:


if=/usr/bin/translit -t koi8-alt.rus

Dlya podrobnostej smotrite printcap(5).

10.7 Format A4

|to imeet ves'ma otdalennoe otnoshenie k kirillizacii, no inogda ochen' polezno znat' chto nado sdelat', chtoby vash tekst byl otformatirovan pod stranicu formata A4 (zaimstvovano iz Serbian-HOWTO).


Next Previous Contents