|
StarOffice für Linux und True-Type-Fonts
Endlich habe ich es geschafft auch mal StarOffice 5.1 unter Linux zu installieren.
Ich würde ja schon gerne komplett auf Linux umsteigen, dafür müßte
aber StarOffice auch 100%ig laufen. Ich werde demnächst mal die entsprechenden
Newsgroups lesen.
Ich benötige besonders häufig StarImpress um Präsentationen
auf einem mitgeführten Laptop ablaufen zu lassen. Nach der Installation
des StarOffice unter SuSE-Linux habe ich also mal die mitgelieferte Präsentation
zur "Recar-Hauptversammlung" gestartet und war entsetzt:
Lauter Klötzchen anstatt anständiger Schriftbilder. Als Problem
stellte sich die Verwendung der TrueType-Fonts Arial, Times New
Roman und Courier New in dieser Präsentation heraus. Ändert
man die entsprechenden Stellen derart ab, daß Type-I Schriften Verwendung
finden, gibt es keine Probleme mehr. Schaut Euch die Präsentation jetzt
ruhig mal an, damit Ihr nachher den Unterschied seht.
Wer nun aber Präsentationen unter Windows und Linux verwenden will,
möchte vielleicht doch lieber die True-Type-Fonts benutzen. Also mußte
ttf-Unterstützung für Linux her. Ich habe lange Zeit im Internet
gesucht und viele Zeitschriften durchgewälzt, bis es endlich funktioniert
hat. (Ich muß allerdings einräumen, daß ich nicht der versierteste
Linux-User bin)
Ich habe mich daher entschlossen hier noch einmal einen Weg zu beschreiben,
wie man die ttf-Unterstützung in Linux einbindet.
Es gibt verschiedene Ansätze ttf-Unterstützung in Linux zu realisieren,
ich habe mich für die Installation des "X Font Server for TrueType
fonts" (xfstt) entschieden. Die folgende Beschreibung bezieht sich auf
ein System mit SuSE-Linux 6.0 und KDE als Window-Manager.
- Zunächst benötigt Ihr das Source-Paket des xfstt
(aktuelle Version 0.9.10), das Ihr hier
von meiner Site runterladen könnt. (Vielleicht gibt es für
Eure Distribution ja auch ein rpm-Paket oder xfstt ist bei Eurer Distribution
direkt dabei)
- Entpackt das Source-Paket mit Hilfe von
tar -xvzf xfstt-0.9.10.tgz
(ein neues Verzeichnis xfstt0910 wird automatisch erstellt). Wer
ein rpm-Paket hat installiert es mit "rpm -i [Dateiname]"
und kann direkt mit Schritt 4 weitermachen.
Achtung: Achtet bei der Installation von
rpm-Paketen unbedingt auf die verwendeten Pfade. Es kann sein, daß
für die Fonts nicht der Standardpfad /usr/ttfonts verwendet
wird. Dies müßt Ihr dann beim Abarbeiten dieser Anleitung
beachten!
- Die Sourcen müssen nun compiliert werden, zunächst solltet
Ihr aber das Makefile mit einem Editor eurer Wahl anpassen. Wechselt
dazu in das neue Verzeichnis xfstt0910.
Im Makefile solltet Ihr unter install: die folgen Zeilen finden
mkdir /usr/ttfonts ;
ln -s /DOS/windows/fonts /usr/ttfonts/winfonts ;
cp xfstt /usr/X11R6/bin/ ;
cp xfstt.1x /usr/X11R6/man/man1/ ;
xfstt --sync ;
D.h. beim Aufruf von make wird zunächst das Verzeichnis
/usr/ttfonts angelegt. Hierin werden später die .ttf-Dateien
abgelegt. Danach wird ein symbolischer Link auf Euer Windows/Fonts-Verzeichnis
angelegt. Dies funktioniert natürlich nur, wenn Ihr eine Festplatte
oder Partition mit einer Windows-Installation unter Linux gemountet
habt. Hier wird vom Mount-Point /DOS ausgegangen. Ihr müßt
diese Zeile entsprechend anpassen oder gar entfernen, falls Ihr keine
Windows-Installation gemountet habt.
Im folgenden werden die xfstt-Dateien an die richtigen Stellen im
System kopiert und die erste Suche nach True-Type-Fonts durchgeführt
(dazu später mehr).
Wenn Ihr die Datei angepaßt habt, könnt Ihr nun
make
und anschließend
make install
aufrufen. Das wars dann schon mit der Installation.
Solltet Ihr Fehlermeldungen während
des make erhalten, so liegt das meist daran, das bestimmte
Pakete der Distribution nicht installiert wurden. Seht mal unter Yast
in der Serie d (development) nach, ob aller möglicher
Kram im Zusammenhang mit C++ installiert ist. Meist hilft das schon.
(Sobald ich weiß was genau gebraucht wird schreibe ich hier
konkreteres, kann aber dauern)
- Jetzt ist es an der Zeit .ttf-Dateien rüberzuschaufeln. Wenn
Ihr nicht bereits eine gemountete Windows-Installation über den
symbolischen Link eingebunden habt, könnt Ihr das jetzt noch
nachholen. Ihr könnt so Eure .ttf-Dateien beliebig im System
verteilen, solange Ihr nur einen symbolischen Link im Verzeichnis
/usr/ttfonts anlegt. Die Syntax lautet:
ln -s [Pfad zu Eurem Verzeichnis mit .ttf-Dateien] /usr/ttfonts/[Verzeichnisname
nach Wahl]
z.B.
ln -s /home/kurt/fonts/ttf /usr/ttfonts/kurtfonts
Habt Ihr noch keine .ttf-Dateien auf Eurem Linux-System und auch keine
gemountete Windows-Installation, so solltet Ihr Euch jetzt aus einer
Windows-Installation heraus ein paar Dateien aus dem windows/fonts-Verzeichnis
auf Diskette kopieren und anschließend auf dem Linux-System
in das Verzeichnis /usr/ttfonts/. (Ihr könnt unter
/usr/ttfonts ruhig weitere Verzeichnisebenen anlegen um Eure Fonts
zu sortieren, diese werden beim synchronisieren automatisch mit durchsucht.)
Ich empfehle Euch zum Testen erstmal die arial*.ttf, courier*.ttf
und tim*.ttf, damit Ihr Euch die Recar-Hauptversammlung nachher
nochmal anschauen könnt. Nach dem Kopieren der .ttf-Dateien in
Euer Linux-System (bzw. nach erstellen der symbolischen Links) müssen
die neuen Schriftarten dem Font-Server auch noch bekannt gemacht werden.
Dies geschieht durch den Aufruf von
xfstt --sync
- Ok, die Installation ist durchgeführt und die .ttf-Dateien
sind drüben. Zeit um einen ersten Test durchzuführen. Startet
den Font-Server durch die Eingabe von
xfstt &
und gebt anschließend die Kommandos
xset fp+ unix/:7100
und
fslsfonts -server localhost:7100
ein. Ihr solltet nun in Form einer (recht kryptischen) Liste auf dem
Schirm sehen, welche True-Type-Fonts euer Font-Server dem System anbieten
kann.
- Jetzt müssen wir dem KDE noch mitteilen, daß seine Applikationen
von den neuen Schriftarten Gebrauch machen dürfen/sollen. Startet
den KDE und anscließend über das Menü den Fontmanager
(System>Fontmanager). Auf der linken Seite des Fensters
tauchen auch Eure Schriften auf. Selektiert sie nacheinander und wählt
Hinzufügen. Nun erscheint der Schriftname im rechten Fenster
und nachdem Ihr Ok bestätigt habt können Applikationen
auf die neuen Schriftarten zugreifen. Startet nun mal StarOffice und
laßt die Präsentation von der "Recar-Hauptversammlung"
ablaufen >>> Na, sieht das nicht viel besser aus? Wenn nicht,
dann habt Ihr was falsch gemacht, oder ich hier etwas nicht richtig
beschrieben ;-)
- Bis jetzt müßt Ihr den Font-Server noch vor jedem Start
des X-Servers manuell starten, das ist aber recht umständlich.
Ihr könnt das Ganze einfacher haben, in dem Ihr ein init-Skript
im Verzeichnis /sbin/init.d erstellt. Das folgende Skript funktioniert
bei mir ganz gut. Es basiert auf dem skript-Gerüst, das Ihr im
Verzeichnis /sbin/init.d unter dem Namen skeleton findet.
Ihr könnt es Euch hier herunterladen.
#! /bin/sh
# Copyright (c) 1995-1998 SuSE GmbH Nuernberg,
Germany.
#
# Author: Bodo Meseke
#
# /sbin/init.d/xfstt
#
# and symbolic its link
#
# /sbin/init.d/rc1.d/S89xfstt
# /sbin/init.d/rc1.d/K89xfstt
# /sbin/init.d/rc2.d/S89xfstt
# /sbin/init.d/rc2.d/K89xfstt
#
. /etc/rc.config
# Determine the base and follow a runlevel link name.
base=${0##*/} link=${base#*[SK][0-9][0-9]}
# Force execution if not called by a runlevel directory.
test $link = $base && START_XFSTT=yes
test "$START_XFSTT" = yes || exit 0
# The echo return value for success (defined in /etc/rc.config).
return=$rc_done
case "$1" in
start)
echo "Searching for True-Type-Fonts"
/usr/X11R6/bin/xfstt --sync || return=$rc_failed
echo -e "$return"
echo -n "Starting service xfstt"
## Start daemon with startproc(8). If this fails
## the echo return value is set appropriate.
startproc /usr/X11R6/bin/xfstt || return=$rc_failed
echo -e "$return"
;;
stop)
echo -n "Shutting down service xfstt"
## Stop daemon with killproc(8) and if this fails
## set echo the echo return value.
killproc -TERM /usr/X11R6/bin/xfstt || return=$rc_failed
echo -e "$return"
;;
restart)
## If first returns OK call the second, if first or
## second command fails, set echo return value.
$0 stop && $0 start || return=$rc_failed
;;
status)
echo -n "Checking for service xfstt: "
## Check status with checkproc(8), if process is running
## checkproc will return with exit status 0.
checkproc /usr/X11R6/bin/xfstt && echo OK || echo No process
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
# Inform the caller not only verbosely and set an exit status.
test "$return" = "$rc_done" || exit 1
exit 0
Genaueres über Init-Skripte erfahrt Ihr im Abschnitt
Das SuSE Linux-Bootkonzept im Handbuch zur SuSE-Distribution.
Nur soviel in aller Kürze: es müssen symbolische Links auf
das obige Skript in den mit den gewünschten Runleveln korrespondierenden
Verzeichnissen erstellt werden.
cd /sbin/init.d/rc1.d
ln -s ../xfstt S89xfstt
ln -s ../xfstt K89xfstt
cd /sbin/init.d/rc2.d
ln -s ../xfstt S89xfstt
ln -s ../xfstt K89xfstt
Zu guter Letzt muß noch ein Eintrag in der Datei /etc/rc.config
erfolgen, der entscheidet, ob das Skript beim Systemstart den Font-Server
startet.
#
# Den Font-Server starten ?
#
START_XFSTT="yes"
- Jetzt startet zwar der Font-Server automatisch, aber Ihr müßtet
immer noch durch das xset-Kommando die Fonts dem X-Server zur
Verfügung stellen. Auch das läßt sich einfacher erledigen.
Es muß lediglich im Abschnitt Section "Files"
der Datei /etc/XF86Config die Zeile
FontPath "unix/:7100"
hinzugefügt werden. Das war es auch schon, jetzt solltet Ihr
unter Linux gescheit mit TrueType-Schriften arbeiten können.
Bei Problemen schickt mir ruhig eine Mail,
ich versuche dann Euch weiterzuhelfen.
- Links zum Thema:
-
StarOffice TT Fonts
-
XFree86 Font Deuglification Mini HOW-TO
- Hinweis:
Wenn Ihr unter StarWriter nicht alle Schriften angezeigt bekommt,
so hat das seine Richtigkeit. StarOffice kann unter Linux nur Type1-Schriften
drucken und zeigt deshalb im StarWriter (wo ein gewünschter Ausdruck
wahrscheinlich ist) nur diese Schrifttypen an. Für Bildschirmpräsentationen
(StarImpress) stehen jedoch auch die TrueType-Fonts zur Verfügung.
Ich werde weiter rumbasteln und neue Möglichkeiten direkt hier
veröffentlichen.
|