Für den Einsteiger ist der grafische CVS-Client LinCVS zu empfehlen (installieren z.B. mit synaptic).
Alternativen sind Cervisia (bisher noch kryptische Oberfläche, wohl nur zu verstehen für Benutzer von des
Konsolenbefehls »cvs«) und gcvs.

Einstellungen in LinCVS:

  • Benutzer: anonymous (bei Passwortabfrage einfach ohne Eingabe mit OK bestätigen)
  • CVS-Server: cvs.sourceforge.net
  • CVS-Behälter: /cvsroot/bibletime
  • CVS-Zugang: Passwort
  • Checkout nach: (lokales schreibbares Verzeichnis wählen)
  • CVS Modul: bibletime
  • Checkout als: bibletime

Für die Installation sind (Stand 2004-11-20) zuerst folgende Bibliotheken zu installieren:

  • Curl ab Version 7.9 (installiere die Debian-Pakete libcurl2 und libcurl2-dev; benötigt von Sword, also vor der folgenden Sword-Bibliothek installieren!)
  • Sword ab version 1.5.8 (Debian GNU/Linux 3.1 unstable enthält nur Sword Version 1.5.7-4 in den Paketen libsword-4 und libsword-dev; Stand 2004-11-20).

Vorgehen bei der Installation von BibleTime selbst:

  • ins CVS-Arbeitsverzeichnis wechseln
  • ./autogen (führt aclocal, automake, autoheader, autoconf aus, also alles was notwendig ist bevor ./configure erzeugt werden kann)
  • ./configure --prefix=$(kdeconfig --prefix)
  • make
  • Notwendig weil make install ./docs beim aktuellen CVS nicht funktioniert: cd bibletime;
  • checkinstall make install
  1. Man installiere zuerst SVN (unter Debian GNU/Linux 3.1 unstable die Pakete subversion und optional esvn für eine grafische Oberfläche).
  2. Sword-Quellen per SVN herunterladen, etwa durch den folgenden Befehl oder mit esvn:
    svn checkout https://crosswire.org/svn/sword/trunk sword
  3. In das heruntergeladene Verzeichnis wechseln: cd sword;
  4. Die in der Datei INSTALL enthaltene Dokumentation zur Installation ist veraltet. Mittlerweile wurde Sword auf automake umgestellt. Dazu muss der Befehl »automake« auf dem lokalen System automake 1.6 aufrufen. Bei Debian-Systemen kann das über die symbolischen Links /etc/alternatives/automake und /etc/alternatives/aclocal konfiguriert werden.
  5. Anschließend im Sword-SVN-Verzeichnis aufrufen: ./autogen.sh
  6. Relevant ist das Makefile Makefile.cvs relevant. »make -f Makefile.cvs« ergibt jedoch nicht das gewünschte, weil die Befehle der autotools auf dem lokalen System nicht dort installiert sind, wo sie dieses Makefile erwartet. Also führt man ein Äquivalent zu diesem Makefile manuell aus: aclocal; automake; autoheader; autoconf;
  7. Es ist nun ein Script ./configure entstanden, das von ./usrinst verwendet wird. Man ruft auf: ./usrinst.sh --enable-shared --with-curl --without-clucene.
  8. Dann wie normal weiter: make
  9. Um Debian-Pakete zu erhalten und zu installieren: checkinstall make install
  10. Um auch für die Standard-Konfiguration Debian-Pakete zu erhalten und zu installieren: checkinstall make install_config
  1. Nachprüfen: ist die Maus am PS/2-Anschluss angeschlossen?
  2. Das richtige Device für PS/2-Mäuse ist /dev/psaux. Das lässt sich leicht nachprüfen: cat /dev/psaux ausführen und die Maus bewegen, es sollten dann Zeichen auf dem Bildschirm ausgegeben werden.
  3. In /etc/X11/XF86Config-4 dieses Device unter »Section “InputDevice”« zur Maus eintragen.
  4. startx sollte jetzt funktionieren statt mit einer Fehlermeldung wie »Could not initialize Core Pointer« abzubrechen.

1. Einleitung

Das folgende Dokument ist eine Anleitung zur Verwendung von LyX und pdfLaTeX. Die Lizenz dieses Dokuments ist public domain. Ergänzungen und Korrekturen zu diesem Dokument bitte in den Kommentaren! Auch Tipps aus eigener Erfahrung mit pdflatex und LyX sind gern gesehen!

2. Installation notwendiger Pakete

Die folgende Anleitung gilt für SuSE Linux 7.2 oder höher.

Es werden bei SuSE Linux 7.2 die folgenden Pakete aus der Serie tex (YaST1) bzw.
benötigt:

  • lyx
  • te_ams
  • te_cont
  • te_latex
  • te_pdf
  • te_pscm
  • tetex
  • transfig
  • xfig

3. pdfLaTeX konfigurieren

  1. Dokumentation von pdfLaTeX. Die Dokumentation von pdflatex ist /usr/share/doc/packages/te_latex/texmf/pdftex/base/pdftexman.pdf und /usr/share/doc/packages/te_latex/texmf/pdftex/base/pdfTeX-FAQ.pdf.
  2. Font-Mapping. Alle in einem LaTeX-Dokument verwendeten Schriftarten sollen auch im Adobe Type1-Format vorliegen. Nur solche Schriftarten werden im Acrobat Reader auf dem Bildschirm in guter Qualität angezeigt. Ist eine LaTeX-Schriftart nicht in einer Adobe Type1-Version vorhanden, so wird aus ihr eine Adobe Type3-Version (Bitmap-Schriftart) erzeugt und diese für die PDF-Datei verwendet. Acrobat Reader zeigt solche Type3-Schriften jedoch in sehr unleserlicher Qualität an, druckt sie jedoch recht ordentlich.
    Die normalerweise benutzten LaTeX-Schriftarten sind die europäischen ComputerModern-Fonts (ecfonts 1.0, vgl. /usr/share/texmf/fonts/source/jknappen/ec/). Das Paket cm-super enthält die Adobe Type1-Versionen all dieser Schriftarten, d.h. man muss es installieren:

    • Download von cm-super: Einfach die Adresse
      ftp://ftp.uni-bielefeld.de/pub/tex/fonts/ps-type1/cm-super.tar.gz verwenden.
      Die Paketgröße beträgt etwa 55MB.
    • Wer einen anderen CTAN-Mirror verwenden will, gehe zuerst auf
      http://www.ctan.org, wähle den Link »Look through«. Man navigiere sich durch die Links dann zu /fonts/ps-type1/cm-super/ und wähle den Link »entire directory«. Zu gegebener Zeit kann man dann noch den gewünschten CTAN-Mirror auswählen und erhält dann das Paket.
    • Man installiert das Paket nach den beiliegenden Installationsanweisungen.
    • Zum Abschluss der Installation muss man die ls-R-Datenbank des TeX-Systems erneuern, was auch der cron-Daemon täglich tut. Dazu ruft man das Skript mktexlsr auf. So finden LaTeX-Komponenten neu installierte Dateien, von denen nur der Name ohne Verzeichnis angegeben wird, z.B. Fonts in den FontMapping-Tabellen. Vergleiche zur ls-R-Datenbank die Dokumentation in /usr/share/texmf/doc/programs/kpathsea.pdf, Abschnitt 3.4.1 ‘ls-R’. Denn etliche Dateien werden nur in der ls-R-Datenbank und nicht auf Festplatte gesucht, wie die Zeichenkette »!!« in den von pdflatex -k 255 <datei.tex> ausgegebenen Suchpfaden zeigt. Die ls-R-Datenbank ist /var/lib/texmf/db/ls-R.
    • Nach der Installation muss man noch die FontMapping-Tabelle pdftex.map anpassen oder sogar neu erzeugen; auf diese Datei wird in der Konfigurationsdatei pdftex.cfg verwiesen. Man wechselt dazu ins Verzeichnis /var/lib/texmf/dvips/config/ und kopiert alle .map-Dateien aus dem Paket cm-super hierhin. Diese Dateien fügt man dem Skript updmap im entsprechenden Abschnitt hinzu und ruft es dann in diesem Verzeichnis auf: ./updmap. Die entstandene Datei pdftex.map kopiert man nun noch nach /var/lib/texmf/pdftex/config/.
  3. Um zu testen, ob die pdftex-Installation inkl. der Einrichtung der FontMapping-Tabelle gelungen ist, wechselt man ins Verzeichnis /usr/share/doc/te_latex/texmf/pdftex/base/ und führt aus: pdftex example.tex. Es sollte eine pdf-Datei erzeugt werden, die Adobe Type1 Fonts enthält; man kann dies im Dialogfeld »File | Document Info | Fonts ...« im Acrobat Reader nachprüfen: Hier muss unter »Type« stehen »Type 1« und nicht »Type 3«.

4. hyperref mit pdfLaTeX einrichten

Mit hyperref werden alle dokumentinternen Querverweise, Quellenangaben und Internet-Links zu Hyperlinks in der PDF-Datei. Das Paket hyperref ist in TeTeX, der TeX-Distribution von SuSE, bereits enthalten und wurde bereits mit installiert. Die Dokumentation zum Paket hyperref ist /usr/share/doc/packages/te_latex/texmf/latex/hyperref/manual.pdf

Um Hyperlinks zu erhalten, muss der LaTeX-Vorspann einer TeX-Datei etwa folgendes enthalten. In LyX gibt man diesen Text im Dioalogfeld »Layout | LaTeX Vorspann« ein, er wird wie er ist beim Export in die LaTeX-Datei übernommen:

usepackage{hyperref}
hypersetup {
   pdftex=true,
   hyperindex=true,
   colorlinks=true,
   bookmarks=true,
   bookmarksnumbered=false,
   pdfpagemode=None,
   bookmarksopen=false,
   pdftitle=Vorlesungsmodul Praktische Mathematik,
   pdfauthor=Matthias Ansorg,
   pdfcreator=pdfTeX (Web2C 7.3.1) 3.14159-0.13d,
   pdfstartview=FitBH
}

5. LyX konfigurieren und verwenden

Ich empfehle dringend, das beim ersten Start angezeigte Tutorial von LyX und auch die einführenden Kapitel der Dokumentation zu lesen, um LyX bedienen zu lernen. Es gibt einige wichtige Unterschiede zwischen LyX und einer normalen Textverarbeitung!

Hat man ein Dokument in LyX erstellt, aus dem jetzt ein PDF-Dokument werden soll, so geht man folgendermaßen vor: In LyX ruft man den Menüpunkt »Datei | Exportieren | LaTeX« auf, wechselt in einem Terminal in das Verzeichnis der exportierten Datei und gibt den Befehl »pdflatex <dateiname>.tex« auf. Man sollte nicht direkt den Menüpunkt »Datei | Exportieren | PDF (pdflatex)« in LyX aufrufen, denn hier benötigt pdflatex mehrere hundert mal (!) so lange, um das Dokument zu berechnen. Das liegt irgendwie daran, dass dann alles in einem temporären Verzeichnis abläft. Dasselbe Verfahren wendet man an, wenn man ein dvi-Dokument aus einem LyX-Dokument erzeugen will.

Empfehlenswerte Layout-Einstellungen in LyX unter »Layout | Dokument ...«:

  • LaTeX-Dokumentenklasse
    • »article« für normale Anforderungen.
    • »article (AMS, sequential numbered)« für rein mathematische Dokumente.
  • Sprache german
  • Anführungszeichen »text« doppelt.
  • Seite A4 Hochformat, verwende Paket Geometry
  • »Extras | Plazierung von Floats | tbp«
  • »Extras | AMS Math benutzen« nur, wenn besondere, sonst nicht verfügbare mathematische Zeichen benötigt werden.

Mögliche Standards für die Benennung der Labels für Querverweise in LyX:

  • Formeln, Gleichungen: eq.<name>
  • Beispiele im AMS-Stil Example: exp.<name>
  • Definitionen im AMS-Stil Definition: def.<name>
  • Abbildungen: Abb_<dateiname-ohne-endung>

6. Grafiken verwenden zusammen mit LyX und pdfLaTeX

Alle Grafikdateien, die in Dokumenten eingebunden werden, die mit pdflatex
kompiliert werden sollen, müssen (!) im Format PDF sein. Weil pdflatex im
Gegensatz zu LaTeX alles nach dem ersten Punkt im Namen einer Datei als ihre
Endung betrachtet und PDF-Dateien an der Endung .pdf erkennt, dürfen die
einzunbindenden PDF-Dateien keine 2 Punkte im Dateinamen haben.

Die genaue Fehlermeldung ist, egal welchen Backend-Treiber ich für
hyperref verwende (hypertex oder pdftex):

pdfTeX error (ext4): link annotations can't be nested.
    <to be read again>
                 endgroup

In LaTeX gibt es zwei verschiedene Arten von Befehlen: fragile und
robuste. Bei ihrer Verwendung ist im Normalfall zu beachten: Kommt ein fragiler
Befehl in einem »moving argument« vor, so ist er mit einem unmittelbar
vorausgehenden protect -Befehl zu schützen. Ein
»moving argument« ist ein Text (Argument eines Befehls), der
an andere Stellen im Dokument gesetzt werden kann – hauptsächlich
die Argumente von caption{ } (tauchen wieder in der Abbildungsliste
auf), section{ }, subsection{ } und
subsubsection{ } (tauchen wieder im Inhaltsverzeichnis auf).

Für pdfLaTeX bedeutet das: Ein »moving argument« wird im
Normalfall von hyperref zu einem Hyperlink gemacht. Enthält es selbst
einen Link, so müssten Links geschachtelt werden, was nicht möglich ist.
Genau darüber beschwert sich pdfLaTeX: »link annotations can’t be
nested«. Einige Fälle, in denen dieser Fehler auftrat, waren z.B.:

  • ref{ } innerhalb von caption{ }
  • ref{ } innerhalb von subsubsection{ }
  • cite[ ]{ } innerhalb von subsubsection{ }

Die Zeile, in der pdfLaTeX den Fehler anmerkt, stimmt ganz und gar nicht mit der
Zeile überein, die den Fehler enthält. Man muss den Fehler also
selbst zurückerfolgen.

Dazu kopiert man das Dokument (als .tex-Datei!) mit allen benötigten
Abbildungen usw. in einen eigenen Testordner und entfernt dann
stückweise die ref { } und cite[ ]{ }
-Befehle aus der Datei. Das geschieht effektiv mit Hilfe des vi-Befehls
:%s/\ref{.*}//gc, den man einfach nach dem Aufruf von
vi <dateiname>.tex eingibt und dann einige Ersetzungen
mit y bestätigt. Man behält sich jeweils die Dateiversion vor dem
letzten Schritt der Ersetzungen, versucht pdflatex laufen zu lassen und
vergleicht die Datei mit dem letzten Backup, wenn der Lauf gelang: diff
<dateiname>.tex <dateiname>Backup1.tex
. Die Ausgabe zeigt
dann, wo der Fehler liegt.

Achtung: Nur jeder zweite pdflatex-Lauf misslingt, denn nur in jedem zweiten
Lauf sind ungelöste Referenzen vorhanden, die zu Hyperlinks konvertiert
werden sollen.

Um diesen Fehler nicht auftreten zu lassen, verwende man keine Hyperlinks in
»moving arguments«. Es gibt auch noch die (von mir noch nicht getestete)
Möglichkeit, alternative Zeichenketten anzugeben:

documentclass{article}
usepackage{url}
usepackage[pdftex]{hyperref}
begin{document}
tableofcontents
section{New files at texorpdfstring{%
   protecturl{http://www.franken.de}}{%
   tetxtt{http://www.franken.de}}}
end{document}

Dabei sollen symbolische Links in dem zu sichernden Verzeichnis sollen durch die Dateien ersetzt werden auf die sie zeigen.

Eine Multi-Session CD kann so gemountet werden wie jede andere auch. Es ist zu empfehlen so lange mit einer CD-RW zu üben bis man erfolgreich Multisession-CDs erstellen kann – sonst verbrennt man evtl. einige CD-Rs. Es könnte evtl. sein dass CD-RWs nur nach vollständigem Blanking für Multi-Session CDs geeignet sind. Also zuerst »cdrecord -v blank=all« ausführen (dauert etwa 8 Minuten), statt »cdrecord -v blank=fast«. Wie man Multi-Session CDs erstellt ist beschrieben in http://www.tldp.org/HOWTO/CD-Writing-HOWTO-4.html#ss4.18 ; weitere gute Tipps finden sich unter http://gd.tuwien.ac.at/utils/schilling/cdrecord/README.multi . Um bei der Erstellung des ISO-Images symbolische Links zu dereferenzieren ist es am einfachsten, das Verzeichnis von dem das Image erstellt werden soll zuerst zu kopieren unter Dereferenzierung der symbolischen Links: »cp --dereference -p -R source/ dest/« oder alternativ formuliert »cp -LpR source/ dest/«.

Bisher hat nur der TAO-Modus zu verwendbaren Multi-Session CDs geführt. Wenn man den SAO-Modus (die Option »-sao«) verwendet erscheint die Fehlermeldung »cdrecord: CUE sheet still not accepted. Please try to write in RAW (-raw96r) mode.«. Das könnte daran liegen dass der verwendete CD-Brenner keine Multi-Session CDs im SAO-Modus erlaubt; denn in der Manpage von cdrecord steht: »Not all drives allow multisession CDs in SAO mode.« Allerdings führt die Verwendung von »-raw96r« statt »-sao« dazu dass der Befehl
»cdrecord -msinfo« nicht mehr funktioniert. Fehlermeldung dann:

cdrecord: Cannot get next writable address for 'invisible' track.
cdrecord: This means that we are checking recorded media.
cdrecord: This media cannot be written in streaming mode anymore.
cdrecord: If you like to write to 'preformatted' RW media, try to blank the media first.
cdrecord: Cannot read first writable address

Das alles jetzt mal konkret:

Für das erste Backup führe man als root aus (mit dem aktuellen Datum). Der erste Befehl hilft zu erkennen ob das Laufwerk nach dem letzten Suspend-to-RAM / Resume Zyklus korrekt initalisiert wurde; wenn nicht muss man den Rechner neu starten.

mount /media/cdrom;
ls -l /media/cdrom/;
umount /media/cdrom;
CURR_DATE=2006-03-31; echo $CURR_DATE;
cp -LpR ~/somedir/ ~/somedir.tmp;
mkisofs -r -J -graft-points -o ~/Backup.$CURR_DATE.raw ~/somedir.tmp;
mount -o loop ~/Backup.$CURR_DATE.raw /media/loop/;
ls -l /media/loop/;
umount /media/loop/;
cdrecord -tao -multi -v -dummy ~/Backup.$CURR_DATE.raw;
cdrecord -tao -multi -v ~/Backup.$CURR_DATE.raw;
mount /media/cdrom;
ls -l /media/cdrom/ /media/cdrom/Backup.$CURR_DATE;
umount /media/cdrom;
eject;
rm -R ~/somedir.tmp;
rm ~/Backup.$CURR_DATE.raw;

Für alle folgenden Backups führe man als root die folgenden Befehle aus (jeweils mit dem aktuellen Datum, und mit der bisher erstellten CD im Laufwerk). Der erste Befehl hilft zu erkennen ob das Laufwerk nach dem letzten Suspend-to-RAM / Resume Zyklus korrekt initalisiert wurde; wenn nicht muss man den Rechner neu starten.

mount /media/cdrom;
ls -l /media/cdrom/;
umount /media/cdrom;
CURR_DATE=2006-04-05; echo $CURR_DATE;
cp -LpR ~/somedir ~/somedir.tmp;
NEXT_TRACK=`cdrecord -msinfo`; echo $NEXT_TRACK;
mkisofs -r -J -graft-points 
  -o ~/Backup.$CURR_DATE.raw 
  -C $NEXT_TRACK -M ATA:1,0,0 
  Backup.$CURR_DATE/=~/somedir.tmp/;
cdrecord -tao -multi -v -dummy ~/Backup.$CURR_DATE.raw;
cdrecord -tao -multi -v ~/Backup.$CURR_DATE.raw;
mount /media/cdrom;
ls -l /media/cdrom/ /media/cdrom/Backup.$CURR_DATE;
umount /media/cdrom;
eject;
rm -R ~/somedir.tmp;
rm ~/Backup.$CURR_DATE.raw;

Für das letzte Backup führe man aus (mit dem aktuellen Datum): dieselben Befehle wie für das zweite und die folgenden Backups, aber nur ohne die cdrecord-Option »-multi«.