StarOffice vs. nabodeníčka, sága pokračuje

21. 9. 2000
Doba čtení: 10 minut

Sdílet

O počešťování StarOffice už toho bylo řečeno mnoho. Přesto se v naší firmě stále setkáváme se zákazníky, kteří nedokaží tento program donutit psát případně tisknout česky. Záměrem tohoto článku je důkladně, krok po kroku shrnout a vysvětlit, jak udělat, aby váš StarOffice psal a tiskl jako rodilý Čech.

Ještě než začneme, je třeba předeslat, že StarOffice je až do řijna k dispozici jen v binární podobě. Znamená to, že prostor pro lokalizaci či úpravu tohoto, bezesporu kvalitního programu, je velmi omezen. Víme o řadě věcí, které nefungují nebo fungují špatně, ale zatím s tím nelze nic moc dělat.

A teď už rychle k tomu, co dělat lze.

Počeštění sestává z několika kroků, tím prvním je instalace českých fontů do prostředí X Window System.

Instalace českých fontů do X Window System

Nejprve budeme potřebovat nějaké české škálovatelné fonty. Type1 fonty v kódování ISO-8859–2 jsou k dispozici například na http://www.su­se.cz/cz/downlo­ad, sice zatím jen ve formě RPM balíku, ale i z něj je lze vyextrahovat a použít třeba v GNU/Debian Linuxu (například pomocí programu Alien – pozn. redakce).

Předpokládejme, že fonty nainstalujeme do adresáře /usr/X11R6/lib/X11/fonts/latin2/Type1. K tomu budeme s největší pravděpodobností potřebovat rootovská práva. Pokud použijeme výše uvedené fonty, měli bychom mít po rozbalení RPM balíku v adresáři 102 souborů, od každého řezu písma tři, plus tři další soubory fonts.alias, fonts.dir a fonts.scale. Například řez URW Gothic L EE Book je definovaný v souborech ae10013l.afm.gz, ae10013l.pfbae10013l.pfm.gz.

Politikou SuSE je dodávat soubory metrik komprimované, ale v tomhle případě je to spíš na obtíž. Takže je ještě rozzipuje:

root@manikin:/usr/X11R6/lib/X11/fonts/latin2/Type1 > gunzip *.gz

2. V konfiguračním souboru XF86Config upravíme sekci Files tak, aby XFree86 věděl o našich nových fontech:

Section "Files"
.
.
.
# Přidat tuto řádku:
  FontPath      "/usr/X11R6/lib/X11/fonts/latin2/Type1"
.
.
.

3. Po restartu X Window System by fonty měly být k dispozici. V KDE můžete spustit třeba kfontmanager, ve kterém by se měly zobrazit se správnou diakritikou pod jmény bookman l ee, century schoolbook l ee, chancery l ee, gothic l ee, nimbus mono l ee, nimbus roman no9 l ee, nimbus sans l ee a palladio l ee. Pokud je vše v pořádku, přikročíme k další části. Jinak projděte předchozí kroky ještě jednou a přesvědčte se, že cesty jsou správně zadané a že práva adresářů a souborů dovolují čtení všem uživatelům.

Instalace StarOffice

Pokračujte tlačítkem Next až na obrazovku Select Installation Type, kde vyberte `Standard Workstation Installation'. Druhá volba nemá v tomto případě smysl, protože by vlastně zdvojila instalaci StarOffice na vašem počítači.

Po stisku tlačítka Next instalační program vytvoří adresář office52 v uživatelově domovském adresáři – v tomto případě v adresáři uživatele root. Instalaci lze dokončit tlačítkem Complete.

Volitelně, pokud je na počítači více prostředí pro jazyk Java, zeptá se instalátor, kterou verzi použít. Podporu Javy lze i úplně vypnout.

Instalace českých fontů do StarOffice

Po instalaci spusťte StarOffice, stále jako root, znovu příkazem:

root@manikin:/root > /opt/office52/program/soffice

Na desktopu zvolte Printer Setup a klepněte na tlačítko Add Fonts… a v dialogu Font Path tlačítko Initialize Paths. Okno se naplní cestami načtenými z  XF86Config. Smažte všechny až na /usr/X11R6/lib/X11/fonts/Type1 a stiskněte OK. Objeví se okénko se jmény fontů, která už známe z programu kfontmanager. Stiskněte OK. V novém okně pak stiskněte tlačítko Convert Metric File…, vyberte All fonts a stiskněte OK a nakonec Close a ještě jednou Close.

Tím je instalace fontů hotová. Nedoporučujeme měnit typ tiskárny. Ve StarOffice byste měli používat Default printer a případné úpravy tiskového jazyka dělat až na nižší úrovni – viz dále.

Ukončete Printer Setup a spusťte StarWriter.

Ve StarWriteru zvolte některé z písem s koncovkou EE a zkuste napsat text obsahující české znaky. Pak zadejte povel k tisku do souboru (menu File-Print-Print to file) a jako jméno souboru zadejte test.ps ve vašem domácím adresáři.

Máte-li nainstalované programy Ghostscript a Ghostview, můžete výstup zkontrolovat na obrazovce. V terminálu v domácím adresáři zadejte:

gv test.ps

Měla by se vám zobrazit stránka ze StarWriteru. Pokud jsou české znaky špatně, podívejte se, jestli skutečně bylo použito jedno z výše uvedených písem. Je-li vše v pořádku, máte další část za sebou.

Problém mnoha uživatelů tkví právě v instalaci fontů do StarOffice. Špatná instalace se projeví mimo jiné tím, že fonty jsou viditelné v StarCalcu ale ne ve StarWriteru. StarOffice totiž ve StarCalcu umožní psát libovolným fontem instalovaným na počítači, tedy i tím, který není nainstalovaný ve StarOffice, a pro tisk případně použije jiný. Ve StarWriteru se takový font nenabídne.

Postscriptové fonty

Každé Adobe Postscript L2 kompatibilní zařízení obsahuje zabudovanou sadu fontů. Vynecháme-li písma obsahující grafické symboly, jsou to Times, Bookman, Avant Garde, Charter, Courier, Helvetica, New Century Schoolbook a Palatino. V novějších postscriptových procesorech tyto fonty obsahují i české znaky. Proč je tedy nevyužít?

Stačí jen v souboru /opt/office52/sha­re/xp3/psstd.fon­ts ke každé řádce jako:

Times-Roman, -adobe-times-medium-r-normal--%d-%d-%d-%d-p-0-iso8859-1

přidat další řádku:

Times-Roman, -adobe-times-medium-r-normal--%d-%d-%d-%d-p-0-iso8859-2

Některé znaky ale mají špatné metriky a při tisku lezou přes sebe. Na tom ještě pracujeme.

Špinavé triky

V této sekci provedeme závěrečné úpravy, které sice nepatří mezi nejčistější, ale docela nám usnadní život.

První je nadefinování písem Arial, Times New Roman a Courier New, tedy základní sady písem dostupné na platformě MS Windows. Tato písma nelze instalovat tak, jako jsme to udělali v předchozím případě, protože nejsou v postscriptovém formátu Type1 a také proto, že jejich distribuce přináší jisté licenční potíže. Problém první lze vyřešit instalací truetypového fontserveru a poskytnutím truetypových písem Linuxu. My se však vydáme cestou, která nám poskytne nezávislost na truetypech.

Sada fontů, která byla uvedena na začátku, je sestavena tak, že odpovídá písmům definovaným standardem Adobe Postscript L2. Vzhledem k tomu, že třeba písmo MS Arial vzniklo za stejným účelem jako Nimbus Sans, tedy jako náhrada písma Adobe Helvetica, lze říci, že jsou si navzájem velice podobná. To samé platí o písmech Courier New a Nimbus Mono a Times New Roman a Nimbus Roman No9. Písma nejsou úplně stejná, ale jsou si velmi podobná. A protože naše hlavní potřeba je dokázat načíst a vytisknout dokument z MS Windows se správnou diakritikou, nastavíme StarOffice tak, že bude místo písma Arial používat Nimbus Sans.

A jak to tedy provedeme?

Postup si předvedeme na písmu Arial. Pro ostatní fonty je odpovídající. Jak jsme si řekli, Arialu je podobný Nimbus Sans. Arial má čtyři řezy:

Arial-Bold
Arial-BoldItalic
Arial-Italic
Arial-Medium

Tomu odpovídají řezy písma Nimbus Sans (uvádím i soubory, ve kterých jsou definované):

NimbusSanLEE-Bold (ne19004l.afm)
NimbusSanLEE-BoldItal (ne19024l.afm)
NimbusSanLEE-ReguItal (ne19023l.afm)
NimbusSanLEE-Regu (ne19003l.afm)

V adresáři /opt/office52/share/xp3/fontmetrics/afm musíme pro „pseudoarial“ ručně vytvořit metriky. Vyjdeme přitom ze stávajících souborů pro Nimbus Sans:

root@manikin:/opt/office52/share/xp3/fontmetrics/afm > cp ne19004l.afm \
ariab___.afm
root@manikin:/opt/office52/share/xp3/fontmetrics/afm > cp ne19024l.afm \
ariabi__.afm
root@manikin:/opt/office52/share/xp3/fontmetrics/afm > cp ne19023l.afm \
ariai___.afm
root@manikin:/opt/office52/share/xp3/fontmetrics/afm > cp ne19003l.afm \
ariam___.afm

Otevřeme si ariab___.afm v editoru a nahradíme v hlavičče řádky:

FontName NimbusSanLEE-Bold
FullName Nimbus Sans L EE Bold
FamilyName Nimbus Sans L EE

za:

FontName Arial-Bold
FullName Arial-Bold
FamilyName Arial

Podobně pak postupujeme pro NimbusSanLEE-BoldItal (Arial-BoldItalic), NimbusSanLEE-ReguItal (Arial-Italic) a NimbusSanLEE-Regu (Arial-Medium).

Pak v adresáři /opt/office52/share/xp3/pssoftfonts vytvoříme odkazy:

root@manikin:/opt/office52/share/xp3/pssoftfonts > ln -s \
/usr/X11R6/lib/X11/fonts/latin2/Type1/ne19004l.pfb ariab___.pfb

root@manikin:/opt/office52/share/xp3/pssoftfonts > ln -s \
/usr/X11R6/lib/X11/fonts/latin2/Type1/ne19024l.pfb ariabi__.pfb

root@manikin:/opt/office52/share/xp3/pssoftfonts > ln -s \
/usr/X11R6/lib/X11/fonts/latin2/Type1/ne19023l.pfb ariai___.pfb

root@manikin:/opt/office52/share/xp3/pssoftfonts > ln -s \
/usr/X11R6/lib/X11/fonts/latin2/Type1/ne19003l.pfb ariam___.pfb

A na závěr ještě na konec souboru /opt/office52/sha­re/xp3/psstd.fon­ts přidáme řádky:

# Aliases for some of URW++ fonts
ariab___, -ms-Arial-bold-r-normal--%d-%d-%d-%d-p-0-adobe-fontspecific
ariabi__, -ms-Arial-bold-i-normal--%d-%d-%d-%d-p-0-adobe-fontspecific
ariai___, -ms-Arial-medium-i-normal--%d-%d-%d-%d-p-0-adobe-fontspecific
ariam___, -ms-Arial-medium-r-normal--%d-%d-%d-%d-p-0-adobe-fontspecific

Spusťte StarOffice a vyzkoušejte, jestli ve StarWriteru máte v nabídce písem Arial. Jestli ano, zkuste něco napsat. Pokud o řádku níž napíšete stejný text písmem Nimbus Sans, zjistíte, že jsou úplně stejná. Tak je to správně, náš Arial je ve skutečnosti jen obraz písma Nimbus Sans. Celý tento složitý proces jsme dělali proto, aby se při otevírání dokumentu z MS Windows správně namapovala písma.

Ještě stále ale nejsme u konce. Arial se nám sice správně zobrazuje, ale při tisku bychom byli nemile překvapeni. Místo českých znaků by se na papíře objevily paznaky. To je důledek našeho mapování písem. Problém vyřešíme tak, že na konec tiskové fronty zařadíme filtr, který vše opraví. Filtr vypadá následovně:

#!/usr/bin/perl -w

  # This script translates all occurences of names of
  # basic MS Windows fonts Arial, TimesNew Roman and Courier
  # in postscript output with their workalikes provided by URW++.

  # The point of this translation is to allow users to use
  # the same font names in StarOffice under Windows and Linux.

  # Also, when document comes from MS Windows, there is high
  # probability, it'll contain some of these fonts. If yes,
  # we map those correctly.

  # This script should be used as a printer filter, like
  # default_queue=sofc | lpr
  # in ~/.Xpdefaults

  # Author: Radim Gelner <gelnerr@suse.cz>


  package main;

  use locale;
  use strict;

  # order of strings in @fontnames matters!
  # otherwise Arial-Bold may be found before Arial-BoldItalic
  # in Arial-BoldIntalic string...

  my @fontnames = (
    [ "Arial-BoldItalic",                "NimbusSanLEE-BoldItal" ],
    [ "Arial-Bold",                      "NimbusSanLEE-Bold" ],
    [ "Arial-Italic",                    "NimbusSanLEE-ReguItal" ],
    [ "Arial-Medium",                    "NimbusSanLEE-Regu" ],
    [ "CourierNew-BoldItalic",           "NimbusMonLEE-BoldObli" ],
    [ "CourierNew-Bold",                 "NimbusMonLEE-Bold" ],
    [ "CourierNew-Italic",               "NimbusMonLEE-ReguObli" ],
    [ "CourierNew-Medium",               "NimbusMonLEE-Regu" ],
    [ "TimesNewRoman-BoldItalic",        "NimbusRomNo9LEE-MediItal" ],
    [ "TimesNewRoman-Bold",              "NimbusRomNo9LEE-Medi" ],
    [ "TimesNewRoman-Italic",            "NimbusRomNo9LEE-ReguItal" ],
    [ "TimesNewRoman-Medium",            "NimbusRomNo9LEE-Regu" ]
  );

  while ( <> ) {
    for ( my $i=0; $i<=$#fontnames; $i++ ) {
      s/$fontnames[$i][0]/$fontnames[$i][1]/g;
    }
    print "$_"
  }
#---------------------------------------------------------------------

Uložíme ho například pod jménem sofc do adresáře /usr/bin a nastavíme mu příznak spuštění.

Ještě změníme soubor /opt/office52/share/xp3/Xpdefaults tak, že místo řádky:

default_queue=lpr

uvedeme:

default_queue=sofc | lpr

Teď se Arial bude i správně tisknout. Pokud byste si chtěli soubor prohlédnout přes Ghostview, jako jsme to dělali předtím, nezapomeňte, že tisk do souboru výstupní filtr nepoužívá. Proto, máte-li výstup v souboru test.ps, je ještě třeba udělat:

sofc < test.ps > test2.ps

a pak teprve:

gv test2.ps

Nastavení tiskárny

V závěrečné části bych ješte rád zmínil, jak postupovat při instalaci tiskárny do StarOffice. Výše jsem uvedl, že je nejlepší nechat StarOffice produkovat výstup v postscriptu a teprve později ho případně převést do jiného tiskového jazyka. Výhoda tohoto řešení se ukázala, když jsme narazili na problém s Arialem. Využili jsme toho, že postscript je textově orientovaný, a že ho lze snadno modifikovat.

Protože tato část vznikala původně pro uživatele SuSE Linuxu, budou v něm zmíněny nástroje, které jsou specifické pro tuto distribuci.

1. Tiskárnu je třeba nejprve instalovat v konfiguračním programu YaST. V něm lze vybrat typ tiskárny, rozměr papíru, atd.

YaST vás bude informovat, že vytvořil nové tiskové fronty. Například při konfiguraci tiskárny HP-DJ 550 obdržíte hlášení:

INFORMACE
Konfigurace apsfiltru byla úspěšná!
Následující tiskárny byly vytvořeny na vašem systému:

### cdj550 a4 mono 300 ###
ascii|lp1|cdj550-a4-ascii-mono-300|cdj550 a4 ascii mono 300
lp|lp2|cdj550-a4-auto-mono-300|cdj550 a4 auto mono 300
raw|lp3|cdj550-a4-raw|cdj550 a4 raw

2. Ve StarOffice v programu Printer Setup vyberte tiskárnu Generic Printer na Default queue.

3. Ve StarWriteru zvolte písmo obsahující české znaky, např. Arial, Times New Roman, Courier New nebo některé z písem s koncovkou EE. Pak zkuste napsat nějaký text obsahující české znaky. Pokud se vám české znaky nezobrazují na obrazovce, zkuste jiné písmo.

Pak zadejte povel k tisku do souboru (menu File-Print-Print to file) a jako jméno souboru zadejte test.ps ve vašem domácím adresáři.

4. Z terminálu v domácím adresáři zadejte:

sofc < test.ps > test2.ps

A potom:

gv test2.ps

Měl by se vám zobrazit postscriptový výstup ze StarWriteru. Pokud se neobjeví české znaky, podívejte se, jestli skutečně bylo použito jedno z výše uvedených písem.

5. Jestli je vše v pořádku, zkuste v terminálu zadat:

lpr test2.ps

ict ve školství 24

A výstup by měl vyjet z tiskárny. Pokud ne, je tiskárna chybně nastavená. Podívejte se znovu do konfiguračního programu YaST.

Závěrečná poznámka

Všechny výše uvedené postupy jsou součástí počešťujících balíčků pro StarOffice 5.1 a 5.2, které jsou k dispozici na http://www.su­se.cz/cz/downlo­ad. Uživatelům SuSE Linuxu je stačí jen doinstalovat k balíku StarOffice. Bližší informace jsou uvedeny v souboru README.