DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008...

60
Die T E Xnische Komödie DANTE Deutschsprachige Anwendervereinigung T E X e.V. 20. Jahrgang Heft 3/2008 August 2008 3 / 2008

Transcript of DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008...

Page 1: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Die

T EX

nisc

heK

omöd

ie

DANTEDeutschsprachige

Anwendervereinigung TEX e.V.20. Jahrgang Heft 3/2008 August 2008

3/2008

Page 2: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Impressum

»Die TEXnische Komödie« ist die Mitgliedszeitschrift von DANTE e.V. Der Bezugs-preis ist im Mitgliedsbeitrag enthalten. Namentlich gekennzeichnete Beiträge gebendie Meinung der Schreibenden wieder. Reproduktion oder Nutzung der erschienenenBeiträge durch konventionelle, elektronische oder beliebige andere Verfahren ist nurim nicht-kommerziellen Rahmen gestattet. Verwendungen in größerem Umfang bittezur Information bei DANTE e.V. melden.

Beiträge sollten in Standard-LATEX-Quellcode unter Verwendung der Dokumenten-klasse dtk erstellt und per E-Mail oder Datenträger (CD) an untenstehende Adresseder Redaktion geschickt werden. Sind spezielle Makros, LATEX-Pakete oder Schriftendafür nötig, so müssen auch diese komplett mitgeliefert werden. Außerdem müssensie auf Anfrage Interessierten zugänglich gemacht werden.

Diese Ausgabe wurde mit pdfTeX 3.1415926-1.40.8-2.2 (Web2C 7.5.7) erstellt. AlsStandard-Schriften kamen die Type-1-Fonts Latin-Modern und LuxiMono zumEinsatz.

Erscheinungsweise: vierteljährlichErscheinungsort: HeidelbergAuflage: 2700Herausgeber: DANTE, Deutschsprachige Anwendervereinigung TEX e.V.

Postfach 10 18 4069008 HeidelbergE-Mail: [email protected]

[email protected] (Redaktion)Druck: Konrad Triltsch Print und digitale Medien GmbH

Johannes-Gutenberg-Str. 1–3, 97199 Ochsenfurt-Hohe StadtRedaktion: Herbert Voß (verantwortlicher Redakteur)Mitarbeit : Gert Ingold Rolf Niepraschk Bernd Raichle

Christine Römer Martin Schröder

Redaktionsschluss für Heft 4/2008: 15. Oktober 2008 ISSN 1434-5897

Die TEXnische Komödie 3/2008

Page 3: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Editorial

Liebe Leserinnen und Leser,

im letzten Heft gab es den Tagungsbericht zu DANTE2008, während Sie indieser Ausgabe den sogenannten »Call for Papers« für die Herbsttagung inTübingen finden. Dieses Editorial entsteht, während gerade die TUG-Tagungin Cork stattfindet. Die Aktivitäten der TEX-Gemeinde sind immer noch sehrvielfältig und lassen auch nicht in ihrem Eifer nach. Auch dieses Mal enthältunsere Rubrik »Neue Pakete« wieder eine sehr lange Liste. Weiterhin findenSie einige Fotos vom Linuxtag 2008 in Berlin.

Ulrike Fischer gibt eine Einführung in die relativ neue TEX-EntwicklungX ETEX, welche anfänglich nur für Mac OS zugänglich war. Jonathan Kew, derAutor von X ETEX, hat nun eine funktionsfähige Version für Linux und Chris-tian Schenk eine für Windows erstellt. Der Umgang mit dieser TEX-Versionerfordert einige grundlegende Kenntnisse, die Ihnen der Artikel zugänglichmacht. Uwe Ziegenhagen erläutert in seinem Beitrag die Arbeit mit Subversion,einem Revisions-Kontrollsystem.

Fehler gehören zum Alltag, was man wieder einmal an der letzten Ausgabe fest-stellen konnte. Eine einzige Zeile für die Definition der lstlisting-Umgebungdes Artikels zu biblatex gelangte nicht in die Hauptdatei, sodass bedauer-licher Weise einige Listings des Artikels fehlerhaft waren. Es dürfte wohlnicht zu größeren Problemen beim Lesen gekommen sein, da dieser Fehlernicht unbedingt das Verständnis des Artikels behindert hat. Der zweite Teilzu biblatex wird dann hoffentlich fehlerfrei in einer der nächsten Ausgabenerscheinen.

Ich wünsche Ihnen viel Spaß bei der Lektüre und verbleibemit TEXnischen Grüßen,

Ihr Herbert Voß

Die TEXnische Komödie 3/2008

Page 4: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Hinter der BühneVereinsinternes

Grußwort

Liebe Mitglieder,

viele Grüße von der TUG2008 in Cork. Irland präsentiert sich uns sehrfreundlich und an einigen Stellen anders als manchen Vorurteilen folgend:Es ist sonnig und trocken, das Mittagessen in der Kantine ist schmackhaft,und das reichhaltige irische Frühstück besteht im Studentenwohnheim auszwei Scheiben pappigem Brot, einem Stück Butter, einem kleinen TöpfchenMarmelade und Instant-Kaffee.

Diese Ausgabe von »Die TEXnische Komödie« enthält die Einladung zurHerbsttagung in Tübingen. Einer der Tagesordnungspunkte sieht das Einstel-len neuer Mittel in den Projektfonds von DANTE e.V. vor. Der Abfluss derMittel an Projekte zur Weiterentwicklung von TEX und Co. entwickelte sichseit dem letzten Mittelzufluss aus Vereinsmitteln vor zwei Jahren weitgehendnach Plan. Zwischenzeitlich gab es eine Spende der Firma QuinScape ausDortmund an den Projektfonds, für die wir uns an dieser Stelle noch einmalbedanken möchten. Ein weiterer Tagesordnungspunkt sieht einen optionalenVersand von Beitragsrechnung und Zuwendungsbescheinigung per E-Mail vor.Da die Deutsche Post AG uns mitgeteilt hat, dass sie den bisher durchgeführ-ten Versand dieser Schreiben als Beilage zu »Die TEXnische Komödie« nachden Bedingungen der Presse-Distribution als unzulässig ansieht, müssen wirdiese zukünftig separat als Brief verschicken. Um Porto zu sparen, planen wirdaher, die Rechnung und Zuwendungsbescheinigung denjenigen Mitgliedern,die sich damit einverstanden erklären, per E-Mail als PDF-Datei zuzusenden.Wir freuen uns auf alle Mitglieder, die wir in Tübingen begrüßen können.

Mit freundlichem Gruß,

Klaus Höppner Volker RW SchaaVorsitzender Stellvertretender Vorsitzender

Die TEXnische Komödie 3/2008

Page 5: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Einladung und »Call for Papers« zur Herbsttagung von DANTE e.V. 5

Einladung und »Call for Papers« zur Herbsttagung vonDANTE e.V.

Klaus Höppner, Wolfgang Engelmann

Liebe Mitglieder von DANTE,

die nächste TEX-Tagung von DANTE e.V. findet am Samstag, den 13. Sep-tember 2008 an der Universität Tübingen statt.

Programmpunkte sind kostenlose Tutorien und die 39. Mitgliederversammlung.

Die Tagesordnung der Mitgliederversammlung um 9.00 Uhr an der

Eberhard-Karls-Universität TübingenWilhelm-Schickard-Institut für InformatikRaum A301Sand 1372076 Tübingen

lautet:

1. Begrüßung und Tagesordnung

2. Bericht des Vorstands

3. Bereitstellung neuer Mittel für den Projektfonds

4. Option zum Versand der Beitragsrechung und Zuwendungsbescheinigungper E-Mail

5. Verschiedenes

Ihre Stimmunterlagen erhalten Sie direkt vor Ort, um vorherige Anmeldungwird gebeten. Eine Übertragung des Stimmrechts ist im Rahmen des § 13 (4)der Vereinssatzung möglich. Wie üblich sind auch Nichtmitglieder als Gästewillkommen.

Falls Sie ein Tutorium oder einen Vortrag anbieten wollen, werden Sie gebeten,dies mit dem Anmeldeformular unter http://www.dante.de/dante/events/mv39/ oder per E-Mail an [email protected] bei den Organisatoren bis 30. August2008 anzumelden.

Die TEXnische Komödie 3/2008

Page 6: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

6 Einladung und »Call for Papers« zur Herbsttagung von DANTE e.V.

Zu einem Vortrag oder Tutorium ist ein Abstract als Text- oder LATEX-Dateieinzureichen. Dieser soll maximal eine Seite umfassen.

Firmen und Institutionen, die ihre Produkte präsentieren bzw. die Tagungfinanziell unterstützen wollen, werden gebeten, sich frühzeitig an dieselbenAdressen zu wenden.

Die Homepage der Tagung findet sich unter http://www.dante.de/dante/events/mv39/.

Mit Fragen, Wünschen und Anregungen wenden Sie sich bitte an

DANTE e.V.Stichwort: Mitgliederversammlung von DANTE e.V.Postfach 10 18 4069008 HeidelbergE-Mail: [email protected]

Mit freundlichen Grüßen,

Klaus Höppner (DANTE e.V.)Wolfgang Engelmann (Tübingen)

Die TEXnische Komödie 3/2008

Page 7: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Bretter, die die Welt bedeuten

Erste Schritte mit X ELATEX

Ulrike Fischer

Der folgende Artikel gibt eine kleine – wenigstens fing sie klein an . . . – Ein-führung in die Verwendung von X ETEX mit dem LATEX-Format («X ELATEX»).

X ETEX bietet

◦ echte Unicode-Unterstützung bei der Ein- und Ausgabe,

◦ die einfache Benutzung von Schriften, die im System installiert sind. Einegesonderte Installation der Schriften für TEX ist nicht mehr nötig.

◦ Unterstützung von OpenType-Schriften.

X ETEX wurde vor ca. vier Jahren ursprünglich für den Mac entwickelt. DerAutor heißt Jonathan Kew. Seine Homepage ist http://scripts.sil.org/XeTeX. Dort gibt es auch ein Repository [14] (im Folgenden X ETEX-SVNgenannt) mit den neuesten Versionen der Quelldateien und diverser X ETEX-spezifischen Pakete. Bugreports kann man auf der Sourceforge-Seite https://sourceforge.net/projects/xetex/ machen. In MiKTEX gibt es X ETEX seitder Version 2.7, also offiziell seit Dezember 2007.

X ETEX ist immer noch im Betastadium – die aktuelle Versionsnummer ist0.999.0 –, man sollte also immer noch mit Bugs und mit inkompatiblenÄnderungen rechnen. Beispielsweise wurde in Version 0.996, die es für Windowsnie gegeben hat, als Default-pdf-Treiber noch xdv2pdf benutzt, seit Version0.997 ist es das deutlich leistungsfähigere xdvipdfmx. MiKTEX ist sehr schnellim Aktualisieren von X ETEX, gelegentlich lagen zwischen einer Diskussionüber einen Bug in der Mailingliste und dem MiKTEX-Update nur wenige Tage.In anderen Systemen sind die X ETEX-Versionen häufig deutlich älter.

Die TEXnische Komödie 3/2008

Page 8: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

8 Erste Schritte mit X ELATEX

Die Dokumentation zu X ETEX ist (noch) etwas dünn. In MiKTEX erhält manmit mthelp xetex die Seite zu X ETEX aus dem MiKTEX-Manual und mitmthelp xetexref eine relativ kurze Referenz. Einiges zusätzliches Materialzum LATEX Graphics Companion wurde ins Netz gestellt [7]. Dort gibt esauch eine gute Dokumentation zu X ETEX von Michel Goossens [3]. Es gibteine Mailingliste für X ETEX [13]. Es ist möglich, über den Newsserver news.gmane.org und die Newsgruppe gmane.comp.tex.xetex die Liste zu lesen undNachrichten an sie zu schicken.

Ich beschränke mich im Folgenden auf X ELATEX – von ConTEXt versteheich nichts. Ich werde auch nichts über fremde Schriften wie Chinesisch oderArabisch sagen – davon verstehe ich auch nichts. Meine Arbeitsumgebung istMiKTEX 2.7 und WinEdt 5.5 auf WinXP – bei anderen Betriebssystemenkönnen Aufrufoptionen, Suchpfade, Versionen und Konfigurationen anderssein. Die grundsätzlichen Aussagen treffen aber auch auf die Verwendung vonX ELATEX unter anderen Betriebssystemen zu.

Ein BeispieldokumentDieses Dokument kann als Startpunkt für Experimente mit X ETEX dienen:

\documentclass{scrartcl}

\usepackage[ngerman]{babel}

% Alternative zu babel: polyglossia.

% Darauf verzichte ich nie:

\usepackage[babel]{csquotes}

\MakeAutoQuote{«}{»}

% Entweder

\usepackage{xltxtra}

% oder zumindest:

%\usepackage{ifxetex}

%\usepackage{fontspec}

%\usepackage{xunicode}

\begin{document}

«Hallo Welt»

\end{document}

Die TEXnische Komödie 3/2008

Page 9: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Erste Schritte mit X ELATEX 9

X ELATEX startenFür die ersten Tests kann man X ELATEX von der Eingabeaufforderung ausstarten.

xelatex --no-pdf foo

erzeugt aus der LATEX-Datei foo.tex die Datei foo.xdv. Eine xdv-Datei isteine Art erweiterte (extended) dvi-Datei.

xdvipdfmx foo

erzeugt dann aus der xdv-Datei die pdf-Datei foo.pdf.

Mit

xelatex foo

kann man beide Schritte zusammenfassen. Die xdv-Datei wird dabei anschlie-ßend gelöscht.

Das Endprodukt von Xe(La)TEX sind also pdf-Dateien. Wie jeder Windows-Benutzer wahrscheinlich schon leidvoll erfahren hat, sperrt der Adobe Readeralle geöffneten pdf-Dateien. Die diversen TEX-Programme und pdf-Treiberkönnen dann diese Dateien nicht neu schreiben. Leider ist die Fehlermeldungvon X ELATEX (genauer: von xdvipdfmx) in solchen Fällen ziemlich nichtssagend.Bei der folgenden Meldung sollte man als Erstes prüfen, ob die pdf-Dateigeöffnet ist:

Error 1 (driver return code) generating output;file foo.pdf may not be valid.

xelatex kennt neben --no-pdf noch weitere Optionen. Die meisten entspre-chen den Optionen der anderen TEX-Compiler. Interessant ist aber noch dieOption --output-driver. Mit ihr kann man den Treiber einstellen, der für denxdv->pdf-Schritt benutzt wird. Zwar gibt es in Windows keine Alternative zuxdvipdfmx – bei Mac-OS gibt es noch xdv2pdf –, aber die Option kann auch da-zu dienen, Optionen an xdvipdfmx weiterzureichen. Bei Problemen kann manz. B. mit xelatex --output-driver="xdvipdfmx -vv" foo den Verbosemodusvon xdvipdfmx einschalten.

Die TEXnische Komödie 3/2008

Page 10: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

10 Erste Schritte mit X ELATEX

X ELATEX in WinEdt einbauen

Auf die Dauer ist es natürlich bequemer, X ELATEX über den Editor aufzurufen.Zum einen spart man sich die Tipparbeit (und die Tippfehler), zum anderenkann WinEdt (TeXnicCenter meines Wissens auch) geöffnete pdf-Dateien vorder Kompilation schließen.

WinEdt hat derzeit noch keine vordefinierten Menüs und Befehle für X ELATEX.Als muss man sie selbst hinzufügen. Dies wird sich mit WinEdt 5.6, das esderzeit (Mai 2008) als Beta 1 gibt, ändern.

1. Als Erstes braucht man einen Eintrag für X ELATEX im Menü Options->Execution Modes.

Dazu muss man im WinEdt-Ordner nach der Datei Winedt\Exec\MiKTeX\ExecModes.edt suchen und eine Kopie dieser Datei unter gleichem Namenund in der gleichen Ordnerstruktur in den Anwendungsdaten von WinEdtablegen (den Ordner findet man über den Configuration Wizard und denKnopf «Browse Application Data»). Anschließend öffnet man diese Kopiein WinEdt und kopiert den zu pdfLATEX gehörenden Abschnitt, fügt ihnda ein, wo man ihn haben will, und ändert im kopierten Text überall«pdflatex» in «xelatex».

2. Als Nächstes braucht man eine WinEdt-Makrodatei für den X ELATEX-Aufruf.

Dazu sucht man nach WinEdt/Exec/MiKTeX/pdflatex.edt und macht auchdavon eine Kopie in den Anwendungsdaten. Den Namen der Kopie ändertman in xelatex.edt. Anschließend öffnet man die Datei in WinEdt undändert wiederum überall «pdflatex» in «xelatex».

3. Als Letztes braucht man einen Menü-Eintrag.

Dazu geht man zu Options->Menu Setup, doppelklickt in dem Dialog aufAccessories, kopiert den Eintrag für pdflatex, fügt ihn dort ein, wo manihn gerne hätte, und – wer hätte das gedacht – ändert «pdflatex» in«xelatex» sowohl im Titel als auch im Makroaufruf. Bildchen einfügenund Shortcuts festlegen kann man nach Geschmack.

Danach sollte man WinEdt schließen, neu öffnen und testen, ob alles funktio-niert.

Die TEXnische Komödie 3/2008

Page 11: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Erste Schritte mit X ELATEX 11

DiversesFallunterscheidungen mit ifxetex

Das Paket ifxetex [10] bietet den Schalter \ifxetex. . . \else. . . \fi. Benutztman außerdem \ifpdf – was seltener nötig ist, als die meisten glauben – sollteman die Fallunterscheidung so aufbauen:

\usepackage{ifxetex}

...

\ifxetex

%code nur für xetex

\else

%code für pdf- + dvi-Output mit pdflatex/latex

\ifpdf

%code nur für pdf-Output mit pdflatex

\else

%code nur für dvi-Output

\fi

\fi

Das Paket xltxtra

xltxtra [12] enthält eigentlich alle nötigen Pakete und Definitionen füreinen guten Start mit X ELATEX: Es lädt u. a. die Pakete fontspec, xunicode,ifxetex und graphicx. Es definiert die Befehle \XeTeX (X ETEX) und \XeLaTeX(X ELATEX). Außerdem enthält es noch diverse sinnvolle Anpassungen.

Die Treiber anpassen

X ETEX verwendet (in MiKTEX) als Treiber für die pdf-Ausgabe xdvipdfmx.Dieser Treiber ist eine Variante von dvipdfmx, der wiederum eine Variantevon dvipdfm ist. Im Zweifel oder wenn es nicht einen besseren, speziell fürX ELATEX entwickelten Treiber gibt, sollte man also einen Treiber für dieseProgramme benutzen.

Zuerst einmal sollte man aber überprüfen, ob die Pakete nicht von allein denrichtigen Treiber verwenden, sofern ihnen der Anwender nicht ins Handwerkpfuscht, d. h. man sollte bei den Paketen und der Dokumentenklasse alleOptionen entfernen, die nach einer Treiberoption aussehen (dvips, pdftex,

Die TEXnische Komödie 3/2008

Page 12: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

12 Erste Schritte mit X ELATEX

dvipdfm usw.). Dann sollte man Schritt für Schritt überprüfen, welche Treiberdie Pakete laden, indem man in die log-Datei schaut.

hyperref und graphicx z. B. sind bereits an X ETEX angepasst: Wenn X ETEXerkannt wird, lädt hyperref hdvipdfm.def, graphicx lädt xetex.def. beamerbringt allerdings den automatischen Modus von hyperref aus dem Tritt, dahermuss man den richtigen Treiber per Option erzwingen:

\documentclass[hyperref=dvipdfmx]{beamer}

Bei anderen Paketen muss man gegebenenfalls den richtigen Treiber explizitangeben. Da empfiehlt sich ein Blick in die Dokumentation.

Papiergröße setzen

In X ETEX kann die Papiergröße durch \special{papersize=. . . } gesetzt wer-den. (Das ist die Syntax, die auch xdvipdfmx und dvips benutzen und ver-stehen.) X ETEX kennt auch die beiden pdfTEX-Befehle \pdfpagewidth und\pdfpageheight. Theoretisch sollte es also eigentlich einfach sein, die Papier-größe zu setzen: Ob mit dvips-\special oder pdfTEX-Befehlen, wichtig ist nur,dass sie überhaupt irgendwie gesetzt wird. Praktisch ist es etwas komplizierter,weil die meisten Pakete und Klassen sich große Mühe geben, automatisch die«richtige» Methode zu finden und sich damit bei X ELATEX gelegentlich selbstein Bein stellen.

Bei den KOMA-Script-Klassen sollte man die Option pagesize benut-zen. Sie fügt den \special-Befehl ein und setzt auch \pdfpagewidth und\pdfpageheight auf die richtigen Werte. Damit tun die Klassen genau dasRichtige für X ELATEX.

Die Klasse memoir setzt ohne weiteres Zutun die richtige Papiergröße abernur über den dvips-\special. Möchte man, dass auch \pdfpagewidth und\pdfpageheight die korrekten Werte erhalten, muss man dies manuell tun.Der Befehl \fixpdflayout funktioniert nicht mit X ELATEX, da er weiterepdfLATEX-spezifische Längen setzt.

geometry ist nicht völlig mit X ELATEX kompatibel. Daher befindet sich in tex\xelatex\xetexconfig eine geometry.cfg, die geometry an X ELATEX anpasst.Man sollte unbedingt die neueste Version dieser geometry.cfg benutzen, weilältere Versionen einige unerwünschte Nebenwirkungen haben. Der Inhalt derneuen Version ist:

Die TEXnische Komödie 3/2008

Page 13: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Erste Schritte mit X ELATEX 13

%% geometry.cfg for XeLaTeX - version of 2008-03-26

\@ifundefined{XeTeXversion}{}{%

%% override to use the "pdftex" driver

%% (i.e., \pdfpagewidth, \pdfpageheight) with XeTeX

\def\Gm@checkdrivers{%

\Gm@setdriver{pdftex}%

}%

}%

\endinput

%% End of file ‘geometry.cfg’.

Mit dieser geometry.cfg kann man dann bei allen drei Compilern – X ELATEX,pdfLATEX und LATEX + dviXXX, wobei «dviXXX» der bevorzugte DVI-Treiberist – denselben geometry-Aufruf \usepackage[dviXXX]{geometry} benutzen.

Bilder mit graphicx einfügen

Das Gespann xelatex und xdvipdfmx kommt mit ziemlich vielen Graphikfor-maten zurecht: Unterstützt werden u. a. die Formate pdf, jpg, png. Es ist nichtnötig, irgendwelche externen Hilfsdateien mit Boundingbox-Informationenzu erstellen. X ETEX kann die Größeninformationen aus den Bildern selbstauslesen. Wichtig ist aber, dass graphicx den Treiber xetex.def benutzt.

Auch eps-Bilder können benutzt werden1: xdvipdfmx erzeugt mithilfe desGhostscripts von MiKTEX eine pdf-Version des Bildes, fügt sie in die pdf-Datei ein und löscht sie anschließend. Das funktioniert problemlos, verlangsamtaber natürlich die Kompilation. Bei vielen Bildern sollte man also besser dieBilder z. B. mit epstopdf dauerhaft konvertieren.

xetex.def erwähnt noch weitere Bildformate. Die komplette Liste der Datei-endungen lautet derzeit: .pdf, .eps, .ps, .png, .jpg, .bmp, .pict, .tif, .psd,.mac, .sga, .tga, .gif. Mir ist aber nicht bekannt, welche (außer den bereitserwähnten) in MiKTEX wirklich funktionieren. Meine Tests waren zumindestmit gif-und bmp-Bildern nicht erfolgreich.

1In anderen Betriebssystemen muss dies eventuell erst in dvipdfmx.cfg aktiviert werden.

Die TEXnische Komödie 3/2008

Page 14: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

14 Erste Schritte mit X ELATEX

Sprachumschaltung: Trennmuster

X ETEX benötigt wegen der Unicodeausgabe andere Trennmusterdateienals TEX/LATEX, zumindest wenn die Sprache Sonderzeichen benutzt. Dielanguage.dat bzw. der Tab «Language» in MikTeX->settings verweist daheroft nicht mehr direkt auf die Trennmusterdatei, sondern auf Dateien mit demPrefix xu-. Diese Dateien kümmern sich dann um die nötige Fallunterschei-dung. Ob für alle Sprachen die nötigen Trennmuster bereits existieren, istmir nicht bekannt! Bei Problemen sollte man in der Mailingliste fragen.

Sprachumschaltung: babel und polyglossia

babel ist eigentlich nicht ein Paket sondern ein ganzes Bündel – und je nachSprache verhält sich babel anders, manches davon funktioniert auch mitX ETEX, anderes beißt sich. Es kann daher keine allgemeine Empfehlung füroder gegen babel geben, sondern nur eine Reihe von Tipps und Anmerkungen:

◦ Die Definitionen der diversen Bezeichnungen (\chaptername usw.) solltenmeistens korrekt sein, sofern xunicode geladen wurde.

◦ Bestimmte Definitionen muss man eventuell an die Kodierung von fontspecanpassen. Ein Beispiel zeigt das Listing auf Seite 22.

◦ Sobald eine fremde Schrift (wie z. B. bei den Sprachen greek oder hebrew)ins Spiel kommt, gibt es Probleme. Zum Setzen solcher fremden Schriftenändert babel die Kodierung in einer Weise, die sich nicht mit der Schrift-auswahl von fontspec verträgt. Die Ausgabe wird zwar häufig dennochrichtig sein, aber die dabei verwendete Schrift ist wahrscheinlich nicht diegewünschte.

Die Alternative zu babel für X ELATEX ist polyglossia [1]. Die Version 1.0ist mittlerweile auf CTAN und kann auch mit dem Package Manager vonMiKTEX installiert werden.

polyglossia ist natürlich gut an X ETEX angepasst und bestimmte Dinge löstes sehr elegant mit X ETEX-Befehlen. Beispielsweise muss polyglossia für dieim Französischen nötigen Abstände zwischen Wörtern und Interpunktion nichtauf aktive Zeichen zurückgreifen, sondern verwendet \XeTeXinterchartoks.Andererseits ist polyglossia in vielen Bereichen noch ziemlich dünn. DieSprachdateien enthalten oft nicht viel mehr als die Übersetzung der Standard-namen, viele der typographischen Feinheiten fehlen (noch).

Die TEXnische Komödie 3/2008

Page 15: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Erste Schritte mit X ELATEX 15

Ein Teil des Codes von babel wird bereits während der Erstellung der Format-dateien über die Datei hyphen.cfg geladen. In den Betaversionen hatte auchpolyglossia eine derartige hyphen.cfg: Aktiviert wurde sie, indem die Dateihyphen_cfg in hyphen.cfg umbenannt und an eine Stelle installiert wurde,wo sie bei der Formatherstellung für X ELATEX vor der hyphen.cfg von babelgefunden wurde. Aber wenn man das tat, funktionierte natürlich bei diesemFormat babel nicht mehr. Glücklicherweise gibt es dieses Problem bei derersten offiziellen Version nicht mehr.

PSTricks und animate

PSTricks funktioniert zumindest teilweise: Man muss dazu die Dateienpstricks.con aus dem xetex-pstricks-Paket [5] in die Ordner tex\xelatex\xetex-pstricks/ und tex\xetex\xetex-pstricks/ oder in andere Ordner,die nur von X ELATEX beziehungsweise X ETEX durchsucht werden, kopieren.Es ist wichtig, dass das normale LATEX diese pstricks.con nicht zu sehenbekommt! Die pstricks.con-Dateien sind nur Wrapper-Dateien, die dieDatei xdvipdfmx.con2 laden. xdvipdfmx.con befindet sich mittlerweile intex\generic\pstricks. Danach sollte man die FNDB (file name data base)aktualisieren, beziehungsweise für Linux texhash laufen lassen.

Anschließend wird xdvipdfmx die PSTricks-Bilder on-the-fly mit Ghostscriptkonvertieren und einfügen. Ebenso wie die Konvertierung von eps-Bildernverlangsamt dies die Kompilation. Mittlerweile klappt es auch in MiKTEX(in früheren Versionen wurden bei den temporären Dateien die Pfadtrennerverschluckt), daher konnte ich einige kurze Tests durchführen. Für mich etwasüberraschend funktionierte auch PSTricks-Code, der sich nicht innerhalb einerpspicture-Umgebung befindet. Es ist beispielsweise möglich, zwei Knoten imlaufenden Text mit einer Linie zu verbinden. Anfangs gab es Schwierigkeitenbei 3D-Effekten: Beim Dodekaeder-Kalender (\psCalDodecaeder) aus dempst-calendar-Paket z. B. erzeugte xdvipdfmx einen Haufen temporärer Bilder(und brauchte dafür sehr lange), war aber am Ende offensichtlich nicht inder Lage, die Teile korrekt zu verzerren und zusammenzufügen: Man erhieltschlussendlich diverse übereinander gestapelte Fünfecke. Mittlerweile klapptes mit dem Kalender (es dauert aber immer noch sehr lange).

2Sie hieß zuerst xdvipdfmx.con, dann zwischendurch mal xetex-pstricks.con und jetztwieder xdvipdfmx.con

Die TEXnische Komödie 3/2008

Page 16: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

16 Erste Schritte mit X ELATEX

Die neueste Version von animate unterstützt nun (x)dvipdfmx und damit auchX ELATEX. Sie benötigt dazu aber eine aktuelle Version von (x)dvipdfmx, dieeine neue Syntax (\special{pdf:stream. . . }) versteht.

\MakeUppercase-Probleme

\MakeUppercase{ß} funktioniert mit X ELATEX nicht korrekt: Das Ergebnisist nicht «ß» sondern wieder ein «ß». Man muss daher dort, wo dies vonBedeutung sein könnte, \ss (oder "s bei (n)german) verwenden.

Was mit X ETEX nicht geht

X ETEX hat keine der microtype-Fähigkeiten. Das finde ich besonders schade.

Die Eingabe oder: Was ist mit inputenc?

In Kürze:◦ inputenc sollte man nicht mit X ELATEX verwenden.◦ xunicode sollte man benutzen – es definiert diverse Textbefehle.Das Paket sollte immer nach fontspec geladen werden.◦ Nach Möglichkeit sollte die tex-Datei in UTF-8 kodiert sein.«Normale» 8-Bit-Textkodierungen gehen auch, die Kodierung muss aberkorrekt deklariert werden.◦ Mit X ELATEX haben Pakete wie listings, soul und url keinerlei Proble-me mit Umlauten und UTF-8-Dateien.

(pdf)TEX ist intern 8-Bit-orientiert. X ETEX baut intern auf Unicode3 auf.Beide TEX-Varianten können bei der Eingabe mit 8-Bit-Textdateien undUTF-8-Textdateien umgehen, aber die Verarbeitung unterscheidet sich inmanchen Punkten erheblich. (X ETEX kann auch UTF-16LE und UTF-16BE-Eingabedateien verarbeiten, aber darauf werde ich nicht weiter eingehen.)

Da ich immer mal wieder feststelle, dass eine ganze Menge TEX-Benutzer nureine ziemlich vage Vorstellung haben, was eigentlich 8-Bit-Textkodierungenund UTF-8 sind und wie dieses ganze inputenc-System eigentlich funktioniert,

3Genauer: auf UTF-16 (und nicht UTF-8 oder UTF-32) – aber das macht nur bei richtigexotischen Zeichen einen Unterschied.

Die TEXnische Komödie 3/2008

Page 17: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Erste Schritte mit X ELATEX 17

folgt hier einmal eine kleine Einführung in 8-Bit und UTF-8 und wie dienormalen (pdf)TEX-Varianten damit umgehen.

8-Bit-Textkodierungen

Jede Datei ist einfach eine lange Folge aus Nullen und Einsen («Bits»):100100110011111101010101111.... Das gilt auch für Textdateien.

Wenn man eine derartige Datei in einem Editor wie WinEdt öffnet, sieht manaber keine Folgen von Nullen und Einsen sondern Buchstaben, Leerzeichen,Zeilenumbrüche; d. h. der Editor übersetzt die Bitfolge in «sinnvolle» Zeichen.8-Bit-orientierte Editoren wie WinEdt zerlegen dazu die Bitfolge in Päckchen je8 Bit («Oktetts»). Jedes dieser Oktetts entspricht einem bestimmten Zeichen,das dann angezeigt wird. (Das passiert beim Öffnen jeder Datei, auch wennman eine pdf, exe oder eine jpg öffnet. Nur sieht das Übersetzungsergebnisdann nicht sehr sinnvoll aus.)

11100100︸ ︷︷ ︸ä

01100001︸ ︷︷ ︸a

. . .

Es gibt insgesamt 256 verschiedene 8-Bit-Päckchen, daher wird der Editormaximal 256 verschiedene Zeichen bei der Anzeige der Datei verwenden.Die eine Hälfte der Oktetts – all die Oktetts, die mit einer Null beginnen –ist dabei ziemlich unproblematisch: Das sind die ASCII-Zeichen und unab-hängig von Betriebssystem oder Sprachumgebung wird fast jeder Editor siegleich anzeigen4. Bei der anderen Hälfte gibt es Unterschiede: 11100100 wirdein Windows-Editor als ä anzeigen, auf dem Mac wird die Bitfolge als %�interpretiert:

abc äöü abc %�ˆ¸

\inputencoding{ansinew}abc äöü\inputencoding{applemac}abc äöü

Beim Tippen und Speichern eines Textes mit einem 8-Bit-Editor passiert danndas Entsprechende: Es können maximal 256 Zeichen eingeben werden undjedes dieser Zeichen wird in der Datei als ein Oktett gespeichert. Die ASCII-Zeichen werden überall in dieselben, mit Null beginnenden 8-Bit übersetzt,dagegen wird ä in Windows zu 11100100 und im Mac zu irgendwas anderem.

4In Japan benutzt man angeblich ein ¥ anstelle des \. Außerdem gibt es noch Unter-schiede, wie der Zeilenumbruch kodiert wird.

Die TEXnische Komödie 3/2008

Page 18: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

18 Erste Schritte mit X ELATEX

(pdf)TEX ist, wie bereits gesagt, 8-Bit-orientiert. Wie ein 8-Bit-Editor zer-legt es einen Eingabestrom in Oktetts. Es kann also maximal 256 Einga-bezeichen unterscheiden. Wenn ein Eingabeoktett mit einer Null beginnt,geht (pdf)TEX davon aus, dass das entsprechende ASCII-Zeichen gemeintist. Falls die Datei Oktetts außerhalb des ASCII-Bereichs enthält, brauchtpdfTEX weitere Informationen. In LATEX wird dazu das Paket inputenc be-nutzt: Das Paket «aktiviert» alle Nicht-ASCII-Zeichen, d. h. macht sie zuBefehlen. Anschließend kann diesen Befehlen eine sinnvolle Definition gege-ben werden. (Nicht so sinnvolle Definitionen sind auch möglich: z. B. würde\DeclareInputText{128}{\,DM} in einem in cp1252-kodierten Text jedes Eu-rozeichen durch den «DM» ersetzen.)

UTF-8

Benutzt ein Editor UTF-8, wird ein Zeichen nicht in eine Bitfolge mit einerfesten Länge übersetzt, sondern es werden für ein Zeichen ein oder mehrereOktetts benutzt. Erlaubt sind derzeit bis zu vier Oktetts, wobei aber die4-Oktett-Zeichen selten benötigt werden. ASCII-Zeichen sind beispielsweisedurch kurze 1-Oktett-Folgen kodiert, Umlaute wie «ä» oder «ü» sind 2-Oktett-Zeichen. Zur Kennzeichnung der Länge und der Bestandteile eines Zeichensbenutzt UTF-8 sogenannte Start- und Folgebits:

1-Oktett-Zeichen:1. Oktett←−−−−−−−−→

0←→Startbit

XXXXXXX←−−−−→Codebits

(ASCII-Zeichen)

2-Oktett-Zeichen:Startoktett←−−−−−−−→

110←→Startbits

XXXXX←−−→Codebits

Folgeoktett←−−−−−−−→10←→

FolgebitsXXXXXX←−−−→Codebits

3-Oktett-Zeichen:Startoktett←−−−−−−−−−→

1110←−→Startbits

XXXX←−→Codebits

Folgeoktett←−−−−−−−−→10←→

FolgebitsXXXXXX←−−−→Codebits

Folgeoktett←−−−−−−−−→10←→

FolgebitsXXXXXX←−−−→Codebits

Es ist wichtig, sich folgende Dinge zu merken:

◦ Bei einer Textdatei, die nur ASCII-Zeichen enthält, ist es unwichtig, obman sie als UTF-8 oder in einer beliebigen 8-Bit-Kodierung speichert.Das Ergebnis ist völlig identisch. Es ist auch egal, ob man sie in einemUTF-8- oder 8-Bit-Editor öffnet: Beide werden das Gleiche anzeigen. Dasist ziemlich beruhigend, weil es bedeutet, dass X ETEX mit den meistenLATEX-Styles keine Probleme haben wird.

Die TEXnische Komödie 3/2008

Page 19: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Erste Schritte mit X ELATEX 19

◦ In UTF-8 sind bestimmte Oktettkombinationen nicht erlaubt bzw. siekönnen einfach nicht vorkommen: Auf ein ASCII-Zeichen kann z. B. keinOktett folgen, das mit 10 beginnt. Solche Kombinationen sind in 8-Bit-Textdateien aber gang und gäbe.

Wie (pdf)TEX UTF-8-Dateien verarbeitet

Wenn (pdf)TEX eine UTF-8-kodierte Datei bearbeitet, dann tut es einfachdas, was es immer macht: Es zerlegt den Eingabestrom in Oktetts.

Das heißt, auch wenn die Datei in einem Editor so aussieht, als enthielte sietausende verschiedene Zeichen, (pdf)TEX unterscheidet nur 256 Oktetts! EinUTF-8-«ä» (11000011 10100100) sind für (pdf)TEX nicht ein sondern zweiEingabezeichen5.

Benutzt man inputenc mit der Option utf8, macht es die Startoktetts zuBefehlen. Diese Befehle werden dann so definiert, dass sie mit den Folgeoktettsals Argument eine sinnvolle Ausgabe erzeugen. Das funktioniert ganz gut,stößt aber auf Schwierigkeiten, wenn andere Befehle die Eingabe ebenfallszeichenweise (also Oktett für Oktett) verarbeiten. Pakete, die mit Umlautenin UTF-8-Dateien Probleme haben, sind z. B. listings, url und soul. Zuletzterem gibt es soulutf8 als Alternative.

Eingabekodierung bei X ETEX

X ETEX baut auf Unicode auf. Es ist nicht wie TEX auf 256 Eingabezeichenbeschränkt, sondern kann mit den vielen tausenden Unicodezeichen umgehen.Es zerlegt eine UTF-8-Datei nicht in Oktetts oder ähnliches: Jedes Unicode-zeichen in der Datei ist für X ETEX ein eigenes, ganz normales Eingabezeichen.Wenn eine Eingabedatei in UTF-8 oder UTF-16 kodiert ist, braucht mandaher nichts weiter zu tun. X ETEX wird die Eingabe korrekt interpretieren.

X ETEX kennt auch viele der üblichen 8-Bit-Kodierungen. 8-Bit-kodierte Datei-en werden beim Einlesen in das interne Unicodeformat konvertiert. Pakete wieinputenc oder ucs werden daher bei X ELATEX nicht benötigt – schlimmstenfallsschaden sie.

Wenn eine Eingabedatei 8-Bit-kodiert ist, muss man die Kodierung dekla-rieren. Dazu gibt es zwei neue primitive Befehle: \XeTeXinputencoding und\XeTeXdefaultencoding. Beide Befehle benötigen ein Argument, den Namen

5Zeichen hat übrigens nichts mit \token zu tun.

Die TEXnische Komödie 3/2008

Page 20: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

20 Erste Schritte mit X ELATEX

der Kodierung. Das Argument wird einfach durch ein Leerzeichen getrennthinter den Befehl geschrieben und mit einem Leerzeichen oder \relax beendet.Die für LATEX typischen Klammern ergeben keinen Fehler, haben aber auchnicht ihre übliche Funktion als Begrenzung eines Arguments. Die Dokumenta-tionen enthalten keine genauen Angaben, welche Namen für die Kodierungenbenutzt werden können. Angeblich funktionieren all die Namen, die in In-ternetseiten und von E-Mail-Programmen benutzt werden. Für Windowsfunktioniert jedenfalls cp1252. Der Name «auto» ergibt das Normalverhalten:Dateien werden als UTF-8/16 gelesen. Wenn X ETEX einen Namen nicht kennt,gibt es in älteren X ETEX-Versionen eine Meldung auf dem Bildschirm aus,aber keinerlei Hinweis in der log-Datei. In neueren X ETEX-Versionen ist esumgekehrt.

\XeTeXinputencoding deklariert die Kodierung für die aktuelle Datei von demPunkt an, an dem der Befehl auftritt. Der Befehl kann überall benutzt werden– sinnvoll ist er natürlich irgendwo vor dem ersten Nicht-ASCII-Zeichen – undauch beliebig oft. Der folgende Code hat eine ähnliche Wirkung wie der Codein dem Beispiel auf Seite 17:

\XeTeXinputencoding cp1252

abc äöü

\XeTeXinputencoding mac

abc äöü

Die Wirkung von \XeTeXinputencoding endet mit dem Ende der aktuellenGruppe oder spätestens am Ende der aktuellen Datei. \XeTeXinputencodinghat keinen Einfluss auf Dateien, die nach der Deklaration mit \input usw.eingelesen werden.

\XeTeXdefaultencoding hat keine Wirkung auf die aktuelle Datei, deklariertaber die Kodierung für alle Dateien, die anschließend eingelesen werden. Trotzdes default im Namen eignet sich der Befehl nicht, um die Kodierung für einganzes Projekt festzulegen. Denn alle Dateien, die von X ETEX geschriebenwerden (aux, toc usw.) sind UTF-8 kodiert – da wäre es nicht so gut, sieals 8-Bit einzulesen. Nützlich ist \XeTeXdefaultencoding festzulegen, um dieKodierungen von Inputdateien festzulegen, ohne sie selbst zu verändern:

\XeTeXdefautencoding cp1252

\input{file} %8-Bit-Datei

\XeTeXdefautencoding auto

Die TEXnische Komödie 3/2008

Page 21: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Erste Schritte mit X ELATEX 21

Größere Projekte im 8-Bit-Modus mit X ELATEX zu bearbeiten, kann also einbisschen mühselig werden, da an vielen Stellen die Kodierung deklariert werdenmuss. Man sollte sich also überlegen, ob ein Umstieg auf UTF-8 sinnvoll ist.Dabei sollte man nicht vergessen, dass der Umstieg auch Nachteile habenkann, wenn man weiterhin auch LATEX benutzen will (wie man am Beispielvon listings sehen kann).

Wenn man sich bei der Eingabekodierung vertut

Wenn X ETEX im «auto»-Modus eine 8-Bit-kodierte Eingabedatei bearbeitet,die Sonderzeichen wie z. B. Umlaute enthält, wird X ETEX höchstwahrscheinlichziemlich schnell über in UTF-8 nicht mögliche Oktettkombinationen stolpern.In älteren Versionen ist X ETEX dann einfach abgestürzt. Mittlerweile erhältman eine Warnung in der log-Datei:

Invalid UTF-8 byte or sequence at line 4 replaced by U+FFFD.

X ETEX fährt danach mit der Bearbeitung im sogenannten «Bytes-Modus»fort. Wenn die Sonderzeichen sich nur in Kommentaren befinden und derCode selbst reines ASCII ist, kann man die Warnung getrost ignorieren; imanderen Fall wird die Ausgabe aller Wahrscheinlichkeit nach fehlerhaft sein.

Wenn man eine UTF-8-Datei versehentlich als 8-Bit-Datei deklariert undbearbeitet, wird die Ausgabe wahrscheinlich auch fehlerhaft sein. Es wird aberkeinerlei Warnungen oder ähnliches geben (können).

Achtung: Fehlende oder falsche Zeichen in der Ausgabe gehen zwar oft, abernicht immer, auf eine falsche Deklaration der Eingabekodierung zurück. DieSchrift kann auch schuld sein.

UTF-8 Editoren in Windows

Im Gegensatz zu Mac und Linux ist UTF-8 in Windows kein Standard. UTF-8-Editoren sind noch dünn und TEX-UTF-8-Editoren noch dünner gesät.

TeXniccenter (http://www.texniccenter.org/) kann meines Wissens gar keinUTF-8.

WinEdt (http://www.winedt.com) kann ein bisschen UTF-8: Solange eineUTF-8-Datei nicht mehr als die in einer 8-Bit-Datei üblichen 256 Zeichenbenutzt, kann WinEdt diese Datei lesen und auch als UTF-8 wieder speichern,d. h. WinEdt kann UTF-8-Dateien mit normalen «westeuropäischen» Texten

Die TEXnische Komödie 3/2008

Page 22: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

22 Erste Schritte mit X ELATEX

bearbeiten; mit Texten, die sowohl deutsche Umlaute als auch griechischeBuchstaben enthalten, kann es nicht umgehen.

Texmaker (http://www.xm1math.net/texmaker/) und Winshell (http://www.winshell.org/) können laut Beschreibung Unicode. Wie gut sie mit UTF-8umgehen und wie gut sie zusammen mit MiKTEX funktionieren, kann ichnicht sagen.

Emacs beherrscht natürlich UTF-8, arbeitet aber leider nicht so gut mitMiKTEX zusammen wie WinEdt: z. B. werden pdf-Dateien nicht automatischvor der Kompilation geschlossen.

Zeichenbefehle mit xunicode

In LATEX werden sehr viele Zeichen über Befehle eingegeben. Beispiele sind \$,\textbackslash, \textyen, \"a. Oft hängt die Definition derartiger Befehlevon der Kodierung der Ausgabeschrift ab. In einer OT1-kodierten Schrift z. B.ist das «ß» an der Position 25, in T1 an der Position 255. Daher enthältot1enc.def für \ss eine andere Definition als t1enc.def:\DeclareTextSymbol{\ss}{OT1}{25}

\DeclareTextSymbol{\ss}{T1}{255}

In X ETEX kommen nun zu den OT1-, T1-, T2A- usw. kodierten Schriftennoch die Unicode-kodierten Schriften hinzu. Also braucht man einen weiterenSatz solcher Definitionen. Diesen stellt das Paket xunicode [8] zur Verfügung.Als Kodierungsname wird dabei der von dem Paket fontspec geprägte NameEU1 benutzt. (Und von daher gehören die Definitionen eigentlich in die Dateieu1enc.def. Derzeit muss man sie aber noch separat laden.) xunicode sollteimmer nach fontspec geladen werden.

xunicode muss sehr viel mehr Befehle definieren als z. B. t1enc.def, dennUnicode enthält nun mal sehr viel mehr Zeichen als die 256-Zeichen-KodierungT1. An diversen Stellen in der sty-Datei findet man Fragezeichen, weil derAutor noch keine endgültige Entscheidung über die «richtige» Definitiongetroffen hat. Man sollte also immer damit rechnen, dass es zu Änderungenkommt!

Man sollte auch damit rechnen, dass einzelne Befehle nicht von xunicodeerfasst werden und erst nachbearbeitet werden müssen, bevor sie korrekt mitX ELATEX funktionieren. Die Anführungszeichen \glqq und \grqq beispielsweisebenötigen folgenden Code:

Die TEXnische Komödie 3/2008

Page 23: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Erste Schritte mit X ELATEX 23

\usepackage[ngerman]{babel}

\ProvideTextCommand{\glqq}{EU1}{%

\textormath{\quotedblbase}{\mbox{\quotedblbase}}}

\ProvideTextCommand{\grqq}{EU1}{%

\textormath{\textquotedblleft}{\mbox{\textquotedblleft}}}

Ligaturen

Einige Zeichen in der Ausgabe kann man über Ligaturen erzeugen. Beispielesind -- für –, '' für ”, ?` für ¿ aber auch fl für fl.

Ligaturen sind keine Befehle, sondern eine Eigenschaft der Schrift: Die zugehö-rigen Anweisungen stehen in der tfm-Datei. Wie sie in X ETEX funktionieren,wird daher weiter unten beschrieben.

Schriften mit X ELATEX: Die alte Methode per tfm-DateiIn LATEX werden Schriften intern durch die Angabe des Namens der tfm-Dateigeladen. Dazu wird der primitive TEX-Befehl \font benutzt:

\font\myname = 〈tfm-Name〉 〈TEX-Schriftargumente〉

LATEX sucht dann diese tfm-Datei, entnimmt ihr die nötigen metrischen In-formationen, setzt damit die Seite, schreibt einen Verweis auf die tfm-Dateiin die dvi-Datei und überlässt es dem Treiber, die dazu gehörige «richtige»Schrift zu finden und einzufügen.

Dies funktioniert auch mit X ELATEX: Dieses kann genauso wie LATEX vorhande-ne tfm-Dateien öffnen und nutzen. Die Suchpfade sind die üblichen. Theoretischfunktionieren daher alle Schriftpakete wie fontenc, fourier, mathptmx usw.auch mit X ELATEX.

Praktisch gibt es aber drei Probleme:

1. Mit einigen Schriften haben die Treiber anschließend Probleme: Der Trei-ber xdv2pdf kann nicht mit virtuellen Schriften umgehen, wird also beiden meisten etwas aufwendigeren Schriften versagen. xdvipdfmx mag keinepfa-Dateien, die müssen also zuerst mit z. B. t1binary in pfb-Dateien kon-vertiert werden. Als map-Datei benutzt xdvipdfmx diejenige von dvipdfmx.

Die TEXnische Komödie 3/2008

Page 24: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

24 Erste Schritte mit X ELATEX

2. Die Eingabe funktioniert nicht wie gewohnt. Dies will ich an einem Beispielerläutern: Im T1-Encoding befindet sich das «ß» an der Position 255(dezimal) bzw. FF (hexadezimal). Die normale Verarbeitung in LATEX mitinputenc läuft so:

ßinputenc−−−−−→ \ss

t1enc.def−−−−−→ \char"FF

In X ELATEX fehlt nun der erste Teil, da inputenc ja nicht verwendet werdensollte. Das «ß» wird also einfach «durchgereicht»:

ß = Unicode U+00DF −→ \char"DF = ß.

Nicht alle Sonderzeichen werden falsch sein, denn bei einigen stimmt dieUnicode- mit der T1-Position überein. Dennoch empfiehlt es sich, die alteASCII-Eingabemethode wieder zu üben, wenn man in X ELATEX Schriftenüber LATEX-Pakete und -Encodings nutzen möchte. Und ganz besonderssollte man sich verkneifen, Zeichen aus den höheren Unicodebereichen zubenutzen.

3. Worttrennungen können falsch oder anders sein, wenn man Schriftenbenutzt, die eine LATEX-Kodierung (also T1, OT1, T2A usw.) verwenden,weil die neuen Trennmusterdateien von X ETEX von Unicode-Schriftenausgehen. Dies ist natürlich nur bei Textschriften von Bedeutung.

Systemschriften nutzenDie wirkliche Stärke von X ETEX liegt aber darin, dass X ETEX genau wieandere Programme während der Übersetzung der tex-Datei direkt auf die«richtigen» Schriften zugreifen kann und ihnen Informationen über die Größender Zeichen, Ligaturen und vieles mehr entnehmen kann. Insbesondere brauchtX ETEX keine externe tfm-Datei mehr. X ETEX kann mit Type1-, TrueType-und OpenType-Schriften umgehen, aber die meisten Möglichkeiten (und diewenigsten Probleme) hat man mit letzteren.

Intern benutzt X ETEX auch bei diesen Schriften den primitiven \font-Befehl,dessen Syntax dafür erweitert wurde:

\font\myname = "〈Schriftname〉:〈Features〉" 〈TEX-Argumente〉

Wesentlich sind die Anführungszeichen um den Schriftnamen: Daran erkenntX ETEX, dass der Schriftname sich auf eine «wirkliche» Schrift bezieht6. Der

6Eine Erläuterung dazu findet man unter http://tug.org/mailman/htdig/xetex/2007-July/007048.html.

Die TEXnische Komödie 3/2008

Page 25: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Erste Schritte mit X ELATEX 25

Doppelpunkt und die 〈Features〉 sind (wie die 〈TEX-Schriftargumente〉) op-tional. Damit die Schrift auch wirklich genutzt wird, muss natürlich derSchriftname stimmen und X ETEX muss die Schrift finden.

Vorbereitung

Windowsbenutzer sollten unbedingt die «Font properties extension» installie-ren [2]. Nach Installation dieses Tools erhält man deutlich mehr und nützlichereInformationen, wenn man den Punkt «Eigenschaften» im Kontextmenü ei-ner Schrift aufruft. Das hilft ungemein bei der Bestimmung des korrektenSchriftnamen:

Schriften finden: fc-cache

Wenn X ETEX während der tex->xdv-Kompilation direkt auf die Schriftenzugreifen will bzw. muss, um die tfm-Informationen und anderes zu extrahie-ren, benutzt es nicht die Standardsuchpfade, sondern durchsucht die Ordner,die in <UserConfig>\fontconfig\config\localfonts.conf und <UserConfig>\fontconfig\config\localfonts2.conf eingetragen sind. Die zweite Dateiist für Benutzereinträge gedacht. In localfonts.conf steht u. a. der Stan-dardschriftenordner C:\Windows\Fonts, was bedeutet, dass alle «im Systeminstallierten» Schriften zur Verfügung stehen.

Die TEXnische Komödie 3/2008

Page 26: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

26 Erste Schritte mit X ELATEX

X ETEX benutzt für die Suche nach Schriften einen Cache. Im Allgemeinen ak-tualisiert MiKTEX den Cache, wenn man Pakete installiert. Mit dem Komman-dozeilenprogramm fc-cache kann man es auch selbst tun. Die Option --helplistet die möglichen Optionen auf. Meine (wenigen) Versuche haben ergeben,dass fc-cache ausreicht, wenn man einen neuen Ordner in localfonts.confeingetragen hat. Wenn aber in einen Ordner, der bereits im Cache enthaltenist, neue Schriften kopiert wurden, sollte man fc-cache -f aufrufen.

Leider verlässt sich X ETEX nicht völlig auf den Cache: Wenn man versucht,eine nicht existierende Schrift zu nutzen (z. B. wenn man sich beim Namenvertippt), dann startet X ETEX eine längere Suche7 auf der Festplatte, bevores mit einer Fehlermeldung sein Scheitern zugibt.

Schriftnamen

Die gewünschte Schrift kann man auf verschiedene Weise benennen. Die imFolgenden benutzten Beispiele entstammen der angegebenen Abbildung zurLatin-Modern-Schrift, beispielsweise:

◦ Als external location durch Angabe des Dateinamens (wenn nötig inklu-sive des Pfades). Dieser muss dann in eckige Klammern gesetzt werden.Beispiel: [lmroman10-regular]. Das Paket fontspec benutzt die OptionExternalLocation zur Kennzeichnung solcher Namen.

◦ Durch Angabe des internen Namens der Schrift, also zum Beispiel:LMRoman10-Regular. Das ist oft (aber aus irgendeinem Grunde nichtimmer) der Name, den man in den üblichen Schriftmenüs in Windowspro-grammen sieht. Im Eigenschaftenmenü der Schrift steht dieser Name unterFont Name. Korrekte Groß- und Kleinschreibung ist wichtig! Die Namenenthalten häufig Leerzeichen; das ist meistens unproblematisch, aber inBefehlen wie \DeclareFontShape muss man sie mit \space eingeben, sonstwerden sie verschluckt.

◦ Durch Angabe des Familiennamens, des Font Family Name, und eventuellzusätzlich noch des Font Subfamily Name. Dabei sollte man die als «Prefer-red Names» gekennzeichneten Namen nehmen; die anderen sind nicht geeig-net. Beispiele: Latin Modern Roman oder Latin Modern Roman 10 Regularoder Latin Modern Roman 10 Bold, letzteres ergibt dann die Fettschrift.Der Familienname ist, wenn es ihn gibt, meist die beste Lösung. Im Falle

7Bei mir dauert sie über eine Minute; das ist in Computerzeit fast eine Ewigkeit.

Die TEXnische Komödie 3/2008

Page 27: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Erste Schritte mit X ELATEX 27

der Latin-Modern-Schriften z. B. benutzt X ETEX dann für alle Schriftgrö-ßen den passenden optischen Schriftgrad, also lmodern5-regular.otf beikleinen Schriften.

Ligaturen

X ETEX (und das Paket fontspec) unterscheidet bei Ligaturen zwei Dinge: Dassind zum einen die «richtigen» typographischen Ligaturen also z. B. «fi» für«fi». Ob und in welchem Umfang eine Schrift derartige Ligaturen enthält, isteine Entscheidung des Schriftdesigners. Diese Ligaturen werden bei den direktgeladenen Schriften auch konsequenterweise über die font features gesteuert.fontspec hat dafür die Option Ligatures. Zum anderen sind da aber auchdie TEX-spezifischen Ligaturen wie --. Das sind nicht wirklich typographischeLigaturen, sondern sie sollen nur die Eingabe vereinfachen. Wer solche Einga-bemethoden benutzt, will sie wahrscheinlich bei jeder Schrift verwenden. Undda nicht zu erwarten ist, dass alle Schriftdesigner solche TEX-Eigenheiten inihre Schriften einbauen, muss man sie von außen aufdrücken. Dies geschiehtin X ETEX über sogenannte mapping-Direktiven. Die dafür benötigten Datenstecken in Dateien mit der Endung .tec. Das sind binäre Dateien, die miteinem Programm namens TECkit-Compile aus Quelldateien (mit der Endung.map) erzeugt werden. Auf der Homepage von X ETEX gibt es das Programmund eine Anleitung. Aber für die üblichen TEX-Ligaturen ist die Datei bereitsvorhanden. Mit fontspec aktiviert man sie mit der Option Mapping. Beimprimitiven \font-Befehl geht es so:

\font\x = "Latin Modern Roman:mapping=tex-text"

Zeichen und Symbole ausgebenDie meisten Zeichen erhält man einfach dadurch, dass man das entsprechendeZeichen bei der Eingabe benutzt. Da die Eingabe und die meisten Schriftensich an Unicode orientieren, funktioniert das wunderbar und ist besondersfür Autoren, die in fremden Schriften schreiben, eine ungeheure Erleichterung.Aber oft kann oder will man ein Zeichen nicht direkt, sondern über einenBefehl eingeben. Dafür gibt es – neben den vielen Befehlen, die Pakete wiexunicode bereitstellen – den auch in TEX vorhandenen Befehl \char〈Zahl〉(und die LATEX-Version \symbol{〈Zahl〉}) und \XeTeXglyph〈Zahl〉. 〈Zahl〉 kannbei allen Befehlen in hexadezimaler (beginnend mit "), oktaler (beginnendmit ') oder dezimaler Notation gegeben werden. In TEX akzeptiert der \char-Befehl nur Werte kleiner als 256, größere erzeugen einen Fehler, in X ETEX

Die TEXnische Komödie 3/2008

Page 28: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

28 Erste Schritte mit X ELATEX

Abbildung 1: Links: Zeichentabelle einer mit Unicode kodierten Schrift. Rechts:Keine Unicode-Kodierung

scheint es keine Obergrenze zu geben – zumindest habe ich sie noch nichtgefunden.

Je nach Schriftformat unterscheiden sich Wirkung und Anwendbarkeit von\char und \XeTeXglyph.

Lädt man die Schrift mit der alten Methode über die tfm-Datei, kann mannur \char benutzen. \XeTeXglyph erzeugt eine Fehlermeldung. Sinnvoll sindin diesem Fall natürlich nur Werte zwischen 0 und 255, bei größeren Wertengibt es keine Ausgabe.

Lädt man die Schrift mit der neuen X ETEX-Methode, hängt viel vom Typ,genauer von der internen Kodierung, der Schrift ab. Die Abbildung 1 zeigtzwei Zeichentabellen. Die linke Schrift benutzt Unicode. Man erkennt dasan dem «U+» beim Zeichencode. Die rechte Schrift benutzt keine Unicode-Kodierung, dort ist auch ein Teil der Auswahlmenüs ausgegraut. (Man sollteaber nicht glauben, dass alle Schriften, die behaupten, dass sie Unicodebenutzen, sich auch an den Unicodestandard halten. Ich besitze beispielsweiseeinige Schachschriften, die für die diversen Brettzeichen die Codes normalerBuchstaben wie K oder D statt der dafür gedachten Codes in der sogenannten«Private Use Area» (U+E000 bis U+F8FF) benutzen.

Die TEXnische Komödie 3/2008

Page 29: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Erste Schritte mit X ELATEX 29

Bei Schriften, die intern in Unicode kodiert sind, kann man alle verfügbarenZeichen mit \char〈Unicode〉, also z. B. \char"E001, erhalten. Wenn eine Schriftdas Zeichen nicht enthält, steht meist ein kleiner Platzhalter in der pdf-Datei.

Bei Nicht-Unicode-Schriften ist die Lage etwas komplizierter: \char funktio-niert da manchmal einfach nicht – es gibt zwar keine Fehlermeldungen, aberauch keine Ausgabe. Dann muss man auf \XeTeXglyph〈slot〉 zurückgreifen.Dieser Befehl gibt das Zeichen aus, das sich an dem durch das Argumentangegebenen slot befindet. Das Ergebnis ist sehr schriftspezifisch! Man erhälteinen Fehler, wenn der Wert von slot zu groß ist. Daher empfiehlt es sich,zuerst die Anzahl der Glyphen mit \XeTeXcountglyphs zu bestimmen. Dasfolgende Listing zeigt, wie man mit einer Schleife alle Zeichen in der Schrift«Symbol» ausgeben kann – dabei ist besonders die Position 177 interessant.In der Windows-Zeichentabelle ist dort eine leere Stelle, die Ausgabe vonX ELATEX zeigt dagegen den abgebissenen Apfel von Apple – ein klarer Fallvon Windows-Zensur ;-).

\documentclass{article}

\usepackage{ifthen}

\begin{document}%

\raggedright

\newcounter{glyphcount}

\setcounter{glyphcount}{0}

\font\myfont = "Symbol"

\whiledo

{\value{glyphcount}<\XeTeXcountglyphs\myfont}

{\arabic{glyphcount}:~%

{\myfont\XeTeXglyph\arabic{glyphcount}}\quad

\stepcounter{glyphcount}}

\end{document}

Wenn Glyphen fehlen

Die vielen relativ kleinen Zeichensatztabellen von LATEX haben einen großenVorteil: LATEX weiß im Allgemeinen, wenn sich eine Schrift für die aktuelleZeichensatztabelle nicht eignet und nimmt dann eine geeignete Substitutionvor. Der Aufruf {\fontfamily{skaknew}\selectfont Kaffee} beispielsweiseführt zu folgender Meldung in der log-Datei:

LaTeX Font Warning: Font shape ‘T1/skaknew/m/n’ undefined

Die TEXnische Komödie 3/2008

Page 30: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

30 Erste Schritte mit X ELATEX

(Font) using ‘T1/cmr/m/n’ instead

Was auf Deutsch heißt: «Tut mir leid, aber mit der Schrift «skaknew» kannman keine westeuropäischen Texte schreiben, ich werde daher auf «cmr»ausweichen.» Und damit hat LATEX auch völlig recht, denn «skaknew» ist eineSchachschrift.

Einen derartigen Substitutionsmechanismus gibt es in X ETEX nicht. Das Paketfontenc definiert zwar die Kodierung EU1, aber nur aus formalen Gründen.Die Kodierung wird einfach bei allen Schriften benutzt. Derzeit gibt es daherkeinerlei Prüfung, ob eine Schrift das aktuell angeforderte Zeichen überhauptenthält. Und es gibt auch keine Warnungen oder Fehlermeldungen, wenn dasnicht zutrifft. Dabei geht es nicht nur um eindeutig «exotische» Zeichen, beidenen man damit rechnet, dass sie in der Schrift nicht vorhanden sind. Auch«harmlose» Akzentbefehle wie \b oder \d können betroffen sein.

Allerdings enthält X ETEX diverse Befehle, mit denen man Eigenschaften derSchrift, also z. B. welche Skripte («Schriftsprachen») sie unterstützt oderwelche Glyphen sie enthält, abfragen kann. Es ist also nicht ausgeschlossen,dass irgendwann auch X ETEX auf eine andere Schrift ausweicht, wenn dieaktuelle Schrift das gewünschte Zeichen nicht enthält. Aber bei Kraut-und-Rüben-Schriften, die sich an keinerlei Standards orientieren wie z. B. die vielenSchachschriften, wird das auch nicht helfen.

Suchen und Kopieren in pdf-Dateien

Zeichen aus Nicht-Unicode-Schriften wie der oben erwähnten Schrift «Symbol»kann man natürlich nicht kopieren – da kann irgendetwas herauskommen.

Bei Schachschriften, die für ihre Symbole den Unicode von normalen Buchsta-ben benutzen, erhält man erwartungsgemäß beim Kopieren diese Buchstaben.

Bei normalen Unicode-Schriften funktioniert die Suche und das Kopieren beinormalen westeuropäischen Texten ganz gut. Probleme bereiten aber mancheder OpenType Features. Bei den Latin-Modern-Schriften kann man zB. mit

\setmainfont[Numbers=OldStyle]{Latin Modern Roman}

Zahlen in oldstyle setzen. Diese Zahlen können aber in der pdf-Datei wedergefunden noch kopiert werden!

Die TEXnische Komödie 3/2008

Page 31: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Erste Schritte mit X ELATEX 31

Auch das «ß» verhält sich bei X ELATEX anders: Mit pdfLATEX wird sowohl «ß»(\ss) als auch die Großschreibung «ß» (\SS) als «ß» gefunden und kopiert.In X ELATEX hingegen ist «ß» (\SS) von zwei S nicht zu unterscheiden.

Etwas Vergleichbares zum Paket cmap, mit dem man mit pdfLATEX korrigierendeingreifen kann, wenn Suchen und Kopieren nicht funktionieren, gibt es mitX ELATEX nicht.

Schriften laden mit fontspecDas Paket fontspec [9] stellt ein geeignetes X ELATEX-Benutzerinterface zurVerfügung, um die Schriften mit der neuen X ETEX-Methode zu laden.

Ich will hier nicht die Dokumentation von fontspec nacherzählen. Ich konzen-triere mich lieber auf die wichtigsten Befehle und auf die Punkte, bei denenman vielleicht Probleme bekommt.

Die wichtigsten fontspec-Befehle

Das fast wichtigste Argument der folgenden Befehle ist das optionale Ar-gument. Damit lässt sich die Schrift in vielen Details ändern und anpassen.Was theoretisch alles möglich ist, kann man der Dokumentation von fontspecentnehmen. Was praktisch bei den einzelnen Schriften möglich ist, muss manentweder ausprobieren, oder man schaut in dem (erweiterten) Eigenschafts-menu der Schrift nach.

◦ \fontspec[〈Optionen〉]{〈Schriftname〉}

Das ist der zentrale Befehl von fontspec. Mit ihm wechselt man dieaktuelle Schriftfamilie, d. h. auch die Schriften, die man nach \itshapeoder \bfseries erhält, ändern sich. fontspec wird sich alle Mühe geben,auch für die Varianten die «richtigen» Schriften zu finden. Ob das gelingt,hängt natürlich von der Schrift ab. Es ist aber problemlos möglich, überdie Optionen die Auswahl anzupassen. Das Argument ist ein Schriftnamein der Form, wie sie oben beschrieben wurde. \fontspec entspricht etwaeinem \fontfamily{〈Familie〉}\selectfont in klassischem LATEX.

Der Befehl \fontspec wird in der Dokumentation des Paketes zwar vielbenutzt, ist aber natürlich eigentlich ein interner Befehl, der in Dokumentendirekt nur in Ausnahmefällen verwendet werden sollte.

Die TEXnische Komödie 3/2008

Page 32: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

32 Erste Schritte mit X ELATEX

◦ \setmainfont, \setsansfont, \setmonofont[〈Optionen〉]{〈Schriftname〉}

Mit diesen drei Befehlen kann man die Schriften für die drei üblichen Famili-en Roman (\rmfamily), Sansserif (\sffamily) und Typewriter (\ttfamily)festlegen. Die Wirkung der Befehle entspricht etwa den in diversen Schrift-paketen benutzten \renewcommand\rmdefault{...}.

◦ \newfontfamily〈\Befehl〉[〈Optionen〉]{〈Schriftname〉}

Mit diesem Befehl kann man eine neue Schriftfamilie deklarieren, diedann analog zu \rmfamily über den Befehl ausgewählt werden kann. Einentsprechender Textbefehl mit Argument wird aber nicht erzeugt. Dasmuss man schon selber tun:

\newfontfamily\verbfamily{Courier}

\DeclareTextFontCommand\textverb{\verbfamily}

◦ \newfontface〈\Befehl〉[〈Optionen〉]{〈Schriftname〉}

Mit diesem Befehl kann man eine spezifische Schrift festlegen. \Befehlwirkt dann ähnlich wie ein \usefont-Befehl in LATEX.

◦ \defaultfontfeatures{〈Optionen〉}

Bei all den obigen Befehlen kann man über das optionale Argument vieleeinzelne Aspekte der Schrift oder Schriftfamilie ziemlich genau steuern,z. B. welche Ligaturen und welche Ziffern benutzt werden sollen. Mit\defaultfontfeatures kann man eine Liste solcher Features festlegen,die für alle nachfolgenden Schriften gilt. Die Liste gilt bis zum nächsten\defaultfontfeatures oder bis zum Ende der Gruppe.

◦ \addfontfeatures

Mit diesem Befehl kann man Features zur aktuell im Text benutzten Familiehinzufügen, also lokal beispielsweise die Ziffern auf \oldstyle ändern. DieWirkung endet beim Ende der aktuellen Gruppe oder wenn man dieFamilie wechselt, also z. B. nach Befehlen wie \sffamily, \fontspec, aberauch wenn man eine mit \newfontface definierte Schrift aufruft.

Die Defaultschriften von fontspec

Als Default lädt fontspec die Latin-Modern-Schriften, und zwar die OpenType-Versionen. Kurioserweise lädt fontspec die Schriften aber nicht mit seinen

Die TEXnische Komödie 3/2008

Page 33: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Erste Schritte mit X ELATEX 33

eigenen Befehlen, sondern über das euenc-Paket und mit fd-Dateien. Das hatzur Folge, dass \addfontfeatures und einige Befehle aus dem xltxtra-Paketbei den Schriften gar nicht oder nur teilweise funktionieren.

Es kann daher sinnvoll sein, die Schriften nochmal zu laden:

\setmainfont[SmallCapsFont={* Caps},

Mapping=tex-text]{Latin Modern Roman}

\setsansfont[Mapping=tex-text]{Latin Modern Sans}

\setmonofont[SmallCapsFont={* Caps}]{Latin Modern Mono}

Dies deklariert aber nicht alle Schriftvarianten, die man über das euenc-Paketbekommt. Es fehlen zum Beispiel die Familien lmdunh, lmssq und lmvtt undbei einigen Schriften die sl, cond, demicond und lt-Varianten. Natürlich kannman bei Bedarf auch diese Schriftformen nachdeklarieren und nutzen.

Kein \slshape

Der Autor von fontspec ist der Meinung, dass niemand neben einer italic-Schrift noch eine slanted-Variante braucht. Daher erhält man mit \slshapedie gleiche Schrift wie mit \itshape – wenn man nicht gerade die fontspec-Version nutzt, bei der wegen eines Fehlers \slshape gar nicht geht. Ganzkonsequent ist er aber dabei nicht: Das euenc-Paket benutzt und deklariertdie slanted-Versionen der Latin-Modern-Schriften für die Roman- und dieMono-Familie. Lädt man aber, wie im vorherigen Abschnitt empfohlen, dieLatin-Modern-Schriften über das fontenc-Interface nach, gehen, wie bereitserwähnt, diese Deklarationen verloren. Aber man kann sie mit dem folgendenCode nachholen:

\DeclareFontShape {EU1}{LatinModernRoman(0)}{m}{sl}

{<->"Latin\space Modern\space Roman\space Slanted"}{}

\DeclareFontShape {EU1}{LatinModernMono(0)}{m}{sl}

{<->"Latin\space Modern\space Mono\space Slanted"}{}

Mathematik

Die Mathematik-Schriften ändert fontspec nur wenig. Wenn es erkennt, dassein Paket für Mathematikschriften, wie z. B. fourier, geladen wurde oderwenn die Paketoption no-math benutzt wurde, dann tut es (fast) gar nichts.In anderen Fällen setzt es die Schriftbefehle wie \mathrm und \mathbf auf

Die TEXnische Komödie 3/2008

Page 34: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

34 Erste Schritte mit X ELATEX

die Textschriften, die restlichen Mathematiksymbole und -schriften bleibenmehr oder weniger wie gehabt. Was genau angepasst wird, hängt u. a. voneventuell geladenen Paketen ab. Man sollte unbedingt anfangs sorgsam prüfen,ob Symbole und Schriften so sind, wie gewünscht.

Bei Mathematikschriften benötigt TEX weit mehr \fontdimen-Parameter alsbei Textschriften, um die Hoch- und Tiefstellung der vielen Indices kor-rekt zu berechnen. X ETEX kann im Prinzip diese Parameter aus OpenType-Mathematikschriften auslesen (und daher solche Schriften auch nutzen). Wasaber noch fehlt, ist das Äquivalent zu xunicode: Für all die in Formeln benutz-ten Befehle wie \int oder \alpha muss es ja sinnvolle Unicode-Definitionengeben. Ein experimentelles Paket dazu ist unicode-math [11].

Literatur[1] François Charette: Polyglossia Package; CTAN: macros/xetex/latex/

polyglossia/.

[2] Font properties extension; http://www.microsoft.com/typography/TrueTypeProperty21.mspx.

[3] Michel Goossens: The X ETEX Companion; 2008; http://xml.web.cern.ch/XML/lgc2/xetexmain.pdf.

[4] Michel Goossens, Frank Mittelbach et al.: The LATEX Graphics Companion2nd ed; Addison-Wesley Publishing Company; Reading, Mass.; 2007.

[5] Jonathan Kew: X ETEX-PSTricks; CTAN: graphics/xetex-pstricks/.

[6] Jonathan Kew: X ETEX; 2008; http://scripts.sil.org/XeTeX; https://sourceforge.net/projects/xetex/.

[7] The LATEX Graphics Companion Supplementary Material; 2008; http://xml.web.cern.ch/XML/lgc2/.

[8] Ross Moore: Xunicode Package; CTAN: macros/xetex/latex/xunicode/.

[9] Will Robertson: Fontspec Package; CTAN: macros/xetex/latex/fontspec/.

[10] Will Robertson: Ifxetex Package; CTAN: macros/generic/ifxetex/.

[11] Will Robertson: Unicode-math Package; X ETEX-SVN: texmf/source/xelatex/unicode-math/.

Die TEXnische Komödie 3/2008

Page 35: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Erste Schritte mit X ELATEX 35

[12] Will Robertson: Xltxtra Package; CTAN: macros/xetex/latex/xltxtra/.

[13] X ETEX-Mailingliste; http://tug.org/mailman/listinfo/xetex.

[14] X ETEX-SVN ; http://scripts.sil.org/svn-public/xetex/TRUNK/.

Die TEXnische Komödie 3/2008

Page 36: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

36 Subversion

Dokumentenmanagement mit LATEX und Subversion

Uwe Ziegenhagen

Die Nutzung eines Versionsverwaltungssystems bietet eine Reihe von Vor-teilen in der täglichen Arbeit von Programmierern und Autoren. Die Zu-sammenarbeit in einem Team vereinfacht sich drastisch, da der mühsameund fehlerträchtige Austausch von Dateien über FTP oder E-Mail entfällt,ältere Versionen einer Datei können problemlos wiederhergestellt werden unddie Zusammenführung verschiedener Versionen vereinfacht sich. Ein nichtzu unterschätzender Vorteil ist zudem die Möglichkeit, Backups quasi im»Vorbeigehen« zu erstellen.

Mit Subversion existiert eine moderne Versionsverwaltung, die auf allengängigen Plattformen genutzt werden kann und die wenig Konfigurations-und Einarbeitungszeit erfordert. In diesem Artikel geht es um die Nutzungvon Subversion mit LATEX. Erläutert wird die Installation und Konfigurationauf Windows und Linux-Systemen, außerdem werden einige Pakete bespro-chen, die eine bequeme Integration von Subversion-Information in LATEXermöglichen.

CVS und SubversionIm Unterschied zum weit verbreiteten Concurrent Versions System (CVS)bezieht sich die Versionisierung von Subversion nicht auf einzelne Dateien,sondern auf ein ganzes Verzeichnis oder einen Verzeichnisbaum. Jede Versi-onsnummer n bezieht sich auf den Zustand dieses Verzeichnisses, nachfolgendRepository genannt, nach der n-ten Übermittlung der Daten, dem sogenann-ten Commit. Wenn also über eine Datei in Version 4 gesprochen wird, beziehtman sich auf die Datei, so wie sie in der vierten Revision existierte.

Bei jedem Check-out von Dateien aus einem Subversion-Repository wird die-jenige Version ausgeliefert, deren Version kleiner oder gleich der gewünschtenVersionsnummer ist. Kopien der ausgelieferten Dateien speichert Subversion ineinem speziellen Verzeichnis (.svn) bei jedem Check-out, Update und Commit.Obwohl dies den benötigten Festplattenplatz verdoppelt, hat es doch einenentscheidenden Vorteil: Änderungen lassen sich auch ohne Netzwerkzugang

Die TEXnische Komödie 3/2008

Page 37: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Subversion 37

nachverfolgen und beim Commit muss Subversion nicht die gesamte Datei,sondern nur die jeweiligen Unterschiede zum Server übermitteln. CVS imGegensatz muss die ganze Datei übermitteln, da die Änderungen serverseitigermittelt werden. Subversion-Commits sind atomar, d. h. Änderungen an einerDatei werden entweder komplett oder überhaupt nicht gespeichert. EventuelleNetzwerk-Probleme können also nicht zu inkonsisten Repositories führen.

InstallationFür die Installation von Subversion gibt es verschiedene Möglichkeiten undVorgehensweisen. Man kann entweder Svnserve [5] als eigenständigen Dienstbzw. Daemon nutzen oder aber Subversion als Apache-2-Modul installieren,das WebDAV1, eine Erweiterung des HTTP-Protokolls nutzt.

In diesem Artikel werde ich auf beide Installationsarten unter Windows undUbuntu Linux eingehen. Der eigenständige Dienst lässt sich zwar einfacherinstallieren, bei der Nutzung von Subversion als Apache-Modul gibt es aberzwei – je nach Situation nützliche – Aspekte: Man kann auf ein Repositorymit dem Web-Browser zugreifen, außerdem können die in Apache eingebautenMöglichkeiten der Nutzer-Authentifizierung genutzt werden.

Windows XP

Installation als Apache-Modul

Binär-Versionen von Apache 2 sind verfügbar von [1]; persönlich bevorzugeich aber die Nutzung einer WAMP-Umgebung2 wie beispielsweise [7]. Wirentpacken xampp.zip3 nach C:/xampp und starten den Apache-Server über diexampp-control.exe. Wenn wir nun die Webseite http://localhost in einemBrowser öffnen, sollte die Startseite, wie in Bild 1 dargestellt, angezeigt werden.

Bei einer lokalen Installation sollte man entsprechende Sicherheitsmaßnahmengegen den Zugriff aus dem Internet ergreifen. Entsprechende Informationenfindet man unter dem Punkt security im xampp-Menü sowie in der Apache-Dokumentation [11].

Wir laden die Binär-Version von Subversion von [4] herunter und extrahierenalle Dateien aus dem Zip-Archiv nach C:/Programme/Subversion. Nachdem

1Web-based Distributed Authoring and Versioning2Windows-Apache-MySQL-PHP3Aktuelle Version: 1.6.7

Die TEXnische Komödie 3/2008

Page 38: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

38 Subversion

Abbildung 1: Screenshot der xampp Startseite

wir den Pfad zum Verzeichnis C:/Programme/Subversion/bin aus der Umge-bungsvariablen PATH von Windows hinzugefügt haben, können wir svn helpaus der Kommandozeile starten, um die Installation zu prüfen. Im nächstenSchritt kopieren wir mod_authz_svn.so und mod_dav_svn.so aus dem Verzeich-nis subversion/bin in das Apache-Verzeichnis modules und überschreibeneventuell vorhandene ältere Versionen.

Im letzten Schritt schalten wir im Apache die WebDAV-Erweiterung unddas Subversion-Modul ein, indem wir folgende Zeilen der httpd.conf imApache-Verzeichnis /conf hinzufügen:

◦ LoadModule dav_svn_module modules/mod_dav_svn.so und

◦ LoadModule authz_svn_module modules/mod_authz_svn.so

Bevor wir Apache neu starten, ist der allerletzte Schritt die Erstellung desStamm-Verzeichnisses für alle Repositories c:/allMyRepositories und dieErgänzung der httpd.conf um Listing 1:

Die TEXnische Komödie 3/2008

Page 39: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Subversion 39

Listing 1: Setup code for the Windows repository root<Location /svn>

DAV svn

SVNParentPath c:/allMyRepositories

</Location>

Mit der Kommandozeile wechseln wir nach c:/allMyRepositories und erstel-len unser erstes Repository mittels svnadmin create test.

Wenn wir jetzt http://localhost/svn/firstsample/ im Browser öffnen, soll-ten wir ein leeres Verzeichnis-Listing mit der Überschrift Revision 0: / sehen.Die grundlegende Subversion-Installation ist damit abgeschlossen, durch dieInstallation eines grafischen Subversion-Clients wie TortoiseSVN lässt sichaber die Arbeit mit Subversion deutlich erleichtern.

TortoiseSVN [6] ist ein freier Subversion-Client für Windows, der seine Funk-tionen über das Menü der rechten Maustaste zugänglich macht.

Das TortoiseSVN-Interface fügt sich komplett in den Windows Explorerein; Icons zeigen in einem Arbeitsverzeichnis sofort an, welche Dateien undVerzeichnisse verändert wurden und in das Repository übermittelt werdenmüssen. Die Installation ist einfach, nach dem Neustart des Systems findenwir im Kontextmenü die entsprechenden Menüeinträge. Neben TortoiseSVNgibt es noch eine Reihe weiterer Clients, zum Beispiel RapidSVN (Windows,Unix/Linux) und SVNcommander (Linux), Entwicklungsumgebungen wieNetbeans und Eclipse bieten auch eingebauten Subversion-Support.

Installation als Dienst

Die Installation von svnserve unter Windows ist in wenigen Schritten erle-digt. Wir laden den Subversion-Installer von http://subversion.tigris.orgherunter und führen die Installation durch. Anschließend legen wir einRepository-Verzeichnis an (hier c:/repos) und erstellen über die Kom-mandozeile – oder gegebenenfalls TortoiseSVN – ein erstes Repository:svnadmin create test und ändern die Lese- und Schreibrechte in der Dateiconf/svnserve.conf gemäß Listing 5, um eventuelle Fehler leichter ein-grenzen zu können. Über die Kommandozeile starten wir dann auch densvnserve-Dienst mittels svnserve.exe -d -r c:/repos. Per TortoiseSVN oderKommandozeile (svn co svn://localhost/test sollte ein Check-out jetztmöglich sein.

Die TEXnische Komödie 3/2008

Page 40: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

40 Subversion

Abbildung 2: Screenshot eines Arbeitsverzeichnisses mit TortoiseSVN Kontextme-nü von Subversion 1.4.4.

Der Nachteil dieser Lösung ist klar erkennbar; sobald das Kommandozeilen-fenster geschlossen wird, ist auch der Subversion-Server nicht mehr verfügbar.Daher werden wir im nächsten Schritt svnserve als Windows-Dienst konfi-gurieren. Dazu führen wir den Befehl in Listing 2 aus, die Eingabe muss ineiner Zeile erfolgen. Zum Abschluss kann der Dienst über das Dienste-Menüin der Windows-Verwaltung gestartet werden.

Listing 2: Befehl zur Installation als Windows-Dienstsc create svnserve binpath="C:\Programme\Subversion\bin\svnserve.exe

--service --root c:/repos" displayname= "Subversion"

depend= tcpip start= auto

Linux (Ubuntu 8)

Installation als Apache-Modul

Die Installation unter Ubuntu 8 ist ebenso leicht wie die Installation un-ter Windows. Mit sudo apt-get install oder dem Paketmanager Synapticinstallieren wir die folgenden Pakete:

◦ apache2,

◦ libapache2-svn,

◦ subversion.

Die TEXnische Komödie 3/2008

Page 41: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Subversion 41

Weitere eventuell notwendige Pakete werden durch das Paketmanagementselbstständig ausgewählt und konfiguriert. Nach der Installation sind dieletzten Schritte die Erstellung eines Stammverzeichnisses für unsere Repo-sitories, hier beispielsweise in /home/uwe/repositoryRoot, die entsprechendeAnpassung von /etc/apache2/sites-available/default und das Setzen dernotwendigen Rechte mittels chmod -R 777 /home/uwe/repositoryRoot:

Listing 3: Anpassung für die Datei /etc/apache2/sites-available/default<Location /svn>

DAV svn

SVNParentPath /home/uwe/repositoryRoot

</Location>

In /home/uwe/repositoryRoot erstellen wir dann per svnadmin create testein erstes Repository, das unter der URL http://localhost/svn/test imBrowser angezeigt werden sollte. Gibt es bei diesem Schritt einen Zugriffsfehler,sind vermutlich die Rechte nicht richtig gesetzt worden.

Erste SchritteUm unser Repository zu füllen, erstellen wir in einem Verzeichnis (alle enthal-tenen Dateien werden gleich importiert) ein kleines LATEX-Dokument (article-template.tex):

Listing 4: Eine einfache LATEX-Datei\documentclass{article}

\begin{document}

Hello World!

\end{document}

Mittels Kommandozeile (svn import http://localhost/svn/firstsample/- m ’Anfangsimport’) oder dem entsprechenden Eintrag im TortoiseSVN-Kontextmenü können wir jetzt die Datei importieren, ’Anfangsimport’ istder optionale Parameter für Kommentar beim Import.

Apache zeigt jetzt Revision 1: / im Browser (siehe Bild 3). Um jetzt andieser Datei Änderungen vornehmen zu können, müssen wir sie in einArbeitsverzeichnis auschecken. Alle weiteren Commits werden aus diesemVerzeichnis ausgeführt.

Die TEXnische Komödie 3/2008

Page 42: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

42 Subversion

Abbildung 3: Repository mit Apache und dem Subversion-Modul

Installation als Dienst

Die Installation von svnserve ist noch deutlich einfacher als die Installati-on des Apache-Moduls. Mittels sudo apt-get install subversion wird dieSubversion-Installation gestartet, Ubuntu lädt und installiert dann alle be-nötigten Pakete. Aus Sicherheitsgründen ist es ratsam, den svnserve-Dämonnicht unter dem root-Account laufen zu lassen. Wir werden daher einen Nut-zer svn anlegen, der in seinem Home-Verzeichnis die Repository-Verzeichnisseenthält:

◦ sudo useradd svn legt den Nutzer svn an,

◦ sudo passwd svn setzt Passwort für den Nutzer,

◦ sudo mkdir /home/svn erstellt Home-Verzeichnis,

◦ sudo chown -R svn /home/svn setzt die korrekten Besitzrechte.

Nachdem die entsprechenden Verzeichnisse und Rechte gesetzt sind, kannjetzt das erste Repository angelegt werden. Wir wechseln per su - svn zumNutzer svn und erstellen in dessen Homeverzeichnis das Stammverzeichnis,das die Repositories enthalten wird: mkdir repos. In diesem Verzeichnis nut-

Die TEXnische Komödie 3/2008

Page 43: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Subversion 43

zen wir svnadmin create test, um die von Subversion genutzten Datei- undOrdnerstrukturen anzulegen.

Für das erste Beispiel ist es sinnvoll, die Rechte bewusst so zu setzen, dassjedermann Lese- und Schreibrechte auf dieses Repository hat. EventuelleProbleme lassen sich so leichter erkennen. Dazu bearbeiten wir die Dateisvnserve.conf, die in test/conf liegt, gemäß Listing 5. In der späteren Arbeitmit Subversion, insbesondere wenn mehrere Autoren an einem Projekt beteiligtsind, ist das Anlegen von Nutzerkonten ratsam.

Listing 5: geänderter Abschnitt aus svnserve.conf[general]

### These options control access to the repository for unauthenticated

### and authenticated users. Valid values are "write", "read",

### and "none". The sample settings below are the defaults.

anon-access = write

auth-access = write

Im letzten Schritt starten wir den Dienst mit svnserve -d -r /home/svn/reposund importieren eine beliebige Datei in unser Repository mittels svn import-m ’initial import’ svn://localhost/test, die wir dann in ein beliebigesVerzeichnis auschecken können: svn co svn://localhost/test.

Ebenso wie unter Windows ist es ratsam, den Subversion-Dienst automatischstarten zu lassen oder die Kommunikation über SSH zu verschlüsseln, siehedazu die Hinweise unter [5].

Integration mit LATEXUm Subversion in unseren LATEX-Workflow zu integrieren, müssen wir in dieTEX-Datei entsprechende Meta-Informationen einfügen. Die folgende Listeenthält die verfügbaren Schlüsselwörter und ihre Beschreibung:

Date (LastChangedAt) Datum und Zeit des letzten Checkin,Revision: (LastChangedRevision) Revisionsnummer,Author: (LastChangedBy) Name des Autors,HeadURL: URL der Datei,Id: Zusammenfassung der anderen Schlüsselwörter.

Die TEXnische Komödie 3/2008

Page 44: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

44 Subversion

Wenn man mit der Kommandozeile in das Arbeitsverzeichnis wechseltund diese Schlüsselwörter mittels svn propset svn:keywords ’Date HeadURLRevision Id’ article_template.tex zur Expansion freigibt, erweitert Sub-version diese in der Datei article_template.tex, jeweils eingeschlossen in$-Zeichen. In TortoiseSVN lassen sich die Schlüsselwörter auch bequem überden Menü-Punkt Properties einfügen.

Listing 6: Die Beispieldatei mit expandierten Schlüsselwörtern% $Revision: 10 $

% $HeadURL: http://tools.assembla.com/svn/svnArticle/svnArticle.tex $

% $Date: 2007-07-22 19:50:04 +0200 (So, 22 Jul 2007) $

% $Author$

% $Id: svnArticle.tex 10 2007-07-22 17:50:04Z uweziegenhagen $

\documentclass{article}

\begin{document}

Hello World!

\end{document}

Alle LATEX-Pakete, die ich im weiteren Artikel vorstellen werde, basieren aufder Auswertung dieser Schlüsselwörter.

svn

Das Paket svn gestattet den Zugriff auf die Subversion-Informationen überdie Syntax \SVN $Keyword: <metadata>$. Wenn die Schlüsselwörter korrektexpandiert wurden, stehen die folgende LATEX-Befehle zur Verfügung:

◦ \SVNDate Datum des letzten Commit, \SVNTime als Commit-Zeit und\SVNRawDate als Datum und Zeit im Rohformat, wenn Keyword $Date$war;◦ \SVNKeyword sonst (Beispiele: \SVNId, \SVNHeadURL)

Listing 7: Beispieldatei mit eingefügten svn-Befehlen\documentclass{article}

\usepackage{svn}

\SVN $Id: svnArticle.tex 10 2007-07-22 17:50:04Z uweziegenhagen $

Die TEXnische Komödie 3/2008

Page 45: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Subversion 45

\SVN $Date: 2007-07-22 19:50:04 +0200 (So, 22 Jul 2007) $

\SVN $Id: svnArticle.tex 10 2007-07-22 17:50:04Z uweziegenhagen $

\SVN $HeadURL: http://tools.assembla.com/svn/svnArticle/svnArticle.tex $

\begin{document}

\SVNDate \\

\SVNRawDate \\

\SVNTime \\

\SVNId \\

\SVNHeadURL

\end{document}

July 15, 20072007-07-15 17:33:30 +0200 (So, 15 Jul 2007)17:33:30article-template.tex 12 2007-07-15 15:33:30Zhttp://localhost/svn/firstSample/article-template.tex

1

Abbildung 4: Ausgabe von article-template.tex mit dem Paket svn

svninfo

Das Paket svninfo bezieht die Versionsinformationen ausschließlich aus demTag $Id$, das bei der Expansion von \svnInfo erzeugt wird: \svnInfo $Id:article-template-svn-info.tex 18 2007-07-15 16:11:21Z$

Um die SVN-Informationen nutzen zu können, werden die folgenden Kom-mandos definiert:

◦ \svnInfoFile Dateiname,◦ \svnInfoRevision Revisionsnummer,◦ \svnInfoDate Datum des letzten check-in,◦ \svnInfoTime Zeit des letzten check-in,◦ \svnInfoYear Jahr wie in \svnInfoDate,

Die TEXnische Komödie 3/2008

Page 46: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

46 Subversion

◦ \svnInfoMonth Monat wie in \svnInfoDate,◦ \svnInfoDay Tag wie \svnInfoDate,◦ \svnInfoOwner Besitzer der Datei,◦ \svnToday Datum des letzten Check-in im \today Format,◦ \svnInfoMinRevision minimale Revision des gesamten Dokuments,◦ \svnInfoMaxRevision maximale Revision des gesamten Dokuments.

\svnInfoMinRevision und \svnInfoMaxRevision sind nützlich für Dokumente,die aus mehreren Dateien bestehen. Das Paket bietet noch weitere Optionenwie fancyhdr, eso-foot, scrpage2, um Subversion-Informationen am Randoder in der Fußzeile des Dokuments auszugeben. Details dazu finden sich inder Dokumentation des Pakets.

svn-multi

Das Paket svnmulti stellt zwei Kommandos bereit, \svnid und \svnidlong, umSubversion-Informationen zu verwerten. Zur Ausgabe im Dokument werdenfolgende Makros definiert:

◦ \svnrev Revisionsnummer,◦ \svndate Datum des letzten Check-in,◦ \svnauthor Autor,◦ \svnfilerev Revision der aktuellen Datei, falls dieses einen \svnid oder\svnidlong Befehl enthält oder die entsprechenden Werte der letzten Datei,falls keiner dieser Befehle in der aktuellen Datei enthalten ist.

◦ \svnmainurl und \svnmainfilename geben die URL beziehungsweise denNamen der Hauptdatei aus, wenn diese am Ende der Dokumentenpräambelmit \svnmainfile festgelegt wurde.

Weiterhin nutzt das Paket \svn{Schlüssel} und \svnkw{Schlüssel}, umSubversion-Schlüsselwörter direkt auszugeben. Um auf Datumsinforma-tionen zuzugreifen, stellt das Paket noch eine Reihe weiterer Makrosbereit (die Bedeutung erschließt sich aus dem Namen): \svnfileyear,\svnfilemonth, \svnfileday, \svnfilehour, \svnfileminute, \svnfilesecond,\svnfiletimezone, \svnyear, \svnmonth, \svnday, \svnhour, \svnminute,\svnsecond und \svntimezone.

ZusammenfassungDieser Artikel beschreibt die Installation von Subversion unter Linux undWindows und stellt drei Pakete vor, um Subversion-Informationen in LATEX-

Die TEXnische Komödie 3/2008

Page 47: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Subversion 47

Dokumente zu integrieren. Mehr Informationen findet sich in den Dokumen-tationen der einzelnen Pakete sowie in der Literatur zu Subversion ([10, 13].Ein Feedback zu diesem Artikel, ist jederzeit willkommen, Aktualisierungenund Errata werde ich unter http://www.uweziegenhagen.de/latex/ verfügbarmachen.

Literatur[1] Apache 2 web server ; http://httpd.apache.org.

[2] psvn; http://www.xsteve.at/prg/vc_svn/.

[3] RapidSVN ; http://rapidsvn.tigris.org.

[4] Subversion (Software); http://subversion.tigris.org/.

[5] Svnserve Based Server ; http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-serversetup-svnserve.html.

[6] TortoiseSVN ; http://tortoisesvn.tigris.org.

[7] apachefriends.org: Xampp; http://www.apachefriends.org/.

[8] Paul A. Blaga: PracTeX Journal: Making an Electronic Journal withweb tools, Wiki, and version control; The PracTeX Journal; 2; 2007;http://tug.org/pracjourn/2007-2/blaga/.

[9] Achim D. Brucker: svninfo; http://www.ctan.org/tex-archive/macros/latex/contrib/svninfo/.

[10] Ben Collins-Sussman, Brian W. Fitzpatrick und C. M. Pilato: VersionControl with Subversion. Next Generation Open Source Version Control;O’Reilly; 2004.

[11] Apache Foundation: Apache HTTP Server Version 2.2 Documentation;http://httpd.apache.org/docs/2.0/en/.

[12] Richard Lewis: svn; http://www.ctan.org/tex-archive/macros/latex/contrib/svn/.

[13] Mike Mason: Pragmatic Version Control Using Subversion; PragmaticProgrammers LLC.; 2006.

[14] Martin Scharrer: svn-multi; vormals svnkw.

[15] wikipedia.org: Subversion_(software); in German.

Die TEXnische Komödie 3/2008

Page 48: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

48

Das »große scharfe S« wurde normiert

Markus Kohm

Am Donnerstag, den 26. Juni 2008 war in d.c.t.t. zu lesen: »Soeben wurdedas ›große scharfe S‹ normiert.«

Was lediglich bedeutet, dass es ein solches gibt und es eine Unicode-Positionhat. Damit sind einige technischen Voraussetzungen geschaffen, um ein solchesZeichen darstellen zu können. Die Regeln der Rechtschreibung sehen dieVerwendung aber deshalb noch lange nicht vor und werden das in den nächstenJahren auch nicht. Solange das Zeichen nicht einfach per Shift-ß eingegebenwerden kann, wird es auch kaum eine Abstimmung mit den Fingern inRichtung zur Verwendung des neuen Zeichens geben. Man wird also auchzukünftig wesentlich häufiger ein falsch verwendetes kleines ß im Versalsatzfinden als ein großes.

Die Herausforderung für LATEX ist im übrigen nicht sonderlich groß. LATEXkennt im T1-Encoding nämlich schon lange einen »upcase« für ß:

\documentclass{article}

\usepackage[T1]{fontenc}

\usepackage[ngerman]{babel}

\begin{document}

\pagestyle{empty}

\MakeUppercase{"s} oder \SS\ im Vergleich zu \ss.

\end{document}

Dass die Ausgabe derzeit wie SS aussieht, ist nebensächlich. Bei Zeichensätzen,die ein Versal-ß enthalten, kann man diese Position (optional) sehr gut damitbelegen.

Über gute Formen für Versal-ß diskutieren Typografen schon lange. Es gibtda einige nette Vorschläge. Die Herausforderungen sind für das Zeichen nichtwirklich größer als für andere Zeichen auch.

Die TEXnische Komödie 3/2008

Page 49: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Von fremden Bühnen

Neue Pakete auf CTAN

Jürgen Fenn

Der Beitrag stellt neue Pakete auf CTAN seit April 2008 bis zum Re-daktionsschluss vor. Die Liste folgt der umgekehrten chronologischen Rei-henfolge. Bloße Updates werden nicht aufgeführt. Sie können auf der mo-derierten tex-announce-Mailingliste verfolgt werden, die auch unter http:

//blog.gmane.org/gmane.comp.tex.ctan.announce online verfügbar ist.

lnotes von Alpha Huang ist eine neuechinesische Einführung in (LA)TEX.CTAN:info/lnotes

latex-course von Engelbert Buxbaumist ein kleiner LATEX-Kurs in Formeiner beamer-Präsentation in engli-scher Sprache.CTAN:info/latex-course

lshort-chinese von Zhaopeng Xing istdie chinesische Übersetzung vonlshort-german.CTAN:info/lshort/chinese

polyglossia von François Charette er-setzt babel bei Verwendung vonX ETEX. 54 Sprachen werden unter-stützt.CTAN:macros/xetex/latex/polyglossia

xecjk von Wenchang Sun ist ein CJK-Support für X ETEX.CTAN:macros/xetex/latex/xecjk

inlinedef von Stephen Hicks ist eineErweiterung zur Schachtelung vonDefinitionen mit \def oder \gdef.CTAN:macros/latex/contrib/inlinedef

scrindex aus dem oberdiek-Bundle vonHeiko Oberdiek definiert die Umge-bung theindex aus dem Paket index

neu, wenn eine Klasse aus demKOMA-Script-Bundle geladen wird.Außerdem wird die KOMA-Script-Option idxtotopic unterstützt.CTAN:macros/latex/contrib/oberdiek

tdsfrmath von Yvon Henel ist eineMakro-Sammlung für Mathematik-lehrer an französischen Gymnasien.CTAN:macros/latex/contrib/tdsfrmath

xepersian von Vafa Khalighi dientzum Setzen persischer und arabi-scher Texte mit X ETEX.CTAN:macros/xetex/latex/xepersian

xstring von Christian Telllechea dientzum Bearbeiten und von Strings(Tests auf bestimmte Zeichenfol-

Die TEXnische Komödie 3/2008

Page 50: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

50 Neue Pakete auf CTAN

gen; Extraktion und Ersetzen vonSubstrings; diverse Berechnungen).CTAN:macros/latex/contrib/xstring

biblatex-chem von Joseph Wright sindexperimentelle biblatex-Stile zurVerwendung in der Chemie. Un-terstützt werden Zeitschriften vonACS, RSC- und Wiley.CTAN:macros/latex/exptl/biblatex-

contrib/biblatex-chem

eukdate von Andrew Gilbert Moschougibt das Datum einschließlich Wo-chentag mittels \today im briti-schen Format aus, z. B.: »Saturday,26 June 2008«.CTAN:macros/latex/contrib/eukdate

pgfopts von Joseph Wright setzt aufdem Paket pgfkeys auf und er-möglicht es, Daten, die in einemkey=vaule-Interface vorliegen, alsOptionen in eine LATEX-Klasse zunutzen. Es entspricht damit denPaketen kvoptions und keyval.CTAN:macros/latex/contrib/pgfopts

elsarticle von Simon Pepping ist eineneue LaTeX-Klasse für Artikel desElsevier-Verlags.CTAN:macros/latex/contrib/elsarticle

vwcol von Will Robertson erlaubt dasSetzen von mehrspaltigen Absät-zen mit unterschiedlicher Breite aufeiner Seite.CTAN:macros/latex/contrib/vwcol

blowup von Rolf Niepraschk dient zumHoch- oder Herunterskalieren allerSeiten eines Dokuments. Es ähneltder TEX-Primitive \magnification,ist aber genauer und benutzer-freundlicher.CTAN:macros/latex/contrib/blowup

forarray von Christian Schröppel dientzum Setzen von Listen und Matri-zen. TEX- und LATEX-Befehle kön-nen innerhalb von Matrizen verwen-det werden, die auch geschachteltwerden können.CTAN:macros/latex/contrib/forarray

encxvlna von Zdenek Wagner erzeugtgeschützte Leerzeichen nach be-stimmten, kurzen Präpositionenund Konjunktionen in tschechi-schen und slovakischen Texten.CTAN:macros/generic/encxvlna

ean13isbn von Zdenek Wagner erzeugtEAN13-Strichcode für ISBN-Buch-nummern.CTAN:macros/latex/contrib/ean13isbn

zwgetfdate von Zdenek Wagner liestdie Versionsdaten aus Paketen undDateien, die in ein Dokument ein-gebunden werden, und stellt siezur weiteren Verwendung in Ma-kros bereit, was vor allem praktischist, wenn man nicht doc/docstipverwendet.CTAN:macros/latex/contrib/zwgetfdate

hyph-utf8 von Jonathan Kew, MojcaMiklavec und Arthur Reutenauersind neue Trennmuster in UTF-8-Kodierung, die die alten LATEX-Trennmuster ersetzen sollen.CTAN:language/hyph-utf8

dehyph-exptl von Stephan Hennigsind neue, experimentelle deutscheTrennmuster für die alte und dieneue deutsche Rechtschreibung. Siekönnen mit den Paketen babel undhyphsubst aus dem oberdiek-Bundleverwendet werden.CTAN:language/hyphenation/dehyph-

exptl

Die TEXnische Komödie 3/2008

Page 51: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Neue Pakete auf CTAN 51

xetex-pstricks von Jonathan Kew ent-hält Konfigurationsdateien zur Ver-wendung von PSTricks mit X ETEXund xdvipdfmx.CTAN:graphics/xetex-pstricks

tikz-inet von Marc de Falco erweiterttikz um Makros zum Zeichnen voninteraction nets.CTAN:graphics/pgf/contrib/tikz-inet

xetexfontinfo von Jonathan Kew ent-hält Musterdokumente, die zurDemonstration der verfügbarenFeatures von Fonts mit X ETEX.CTAN:macros/xetex/plain/xetexfontinfo

hyphsubst von Heiko Oberdiek dientzum Ersetzen von Trennmusterndurch andere Muster, die im TEX-Formatfile angegeben sind.CTAN:macros/latex/contrib/oberdiek

letltxmacro von Heiko Oberdiek er-laubt es, den TEX-Befehl \let auchin LATEX-Befehlen zu verwenden,die mit \DeclareRobustCommand defi-niert worden sind oder die optiona-le Argumente haben.CTAN:macros/latex/contrib/oberdiek

fontwrap von Mike »Pomax« Ka-mermans dient zum schnellenUmschalten zwischen Unicode-Fontendcofdings in mehrsprachigenTexten.CTAN:macros/xetex/latex/fontwrap

tufte-latex von Kevin Godby enthältLATEX-Klassen, zu deren Gestal-tung der Autor von den Büchernund Handouts des Informatikersund Grafikdesigners Edward Tuftesinspiriert wurde.CTAN:macros/latex/contrib/tufte-latex

imtekda von Simon Dreher ist die aufKOMA-Script aufbauende Klasse

zum Setzen von wissenschaftlichenArbeiten am Institut für Mikro-systemtechnik (IMTEK) an derUniversität Freiburg.CTAN:latex/macros/contrib/imtekda

dviasm von Jin-Hwan Cho ist einSkript zum Editieren von DVI-Dateien (vgl. http://tug.org/TUGboat/Articles/tb28-2/tb89cho.

pdf).CTAN:dviware/dviasm

javadoc von Jolle Kiesel dient zumDokumentieren (nicht nur) vonJava-Quelltext.CTAN:macros/latex/contrib/javadoc

theoremref von Emil Jerabek dientzum Einfügen von Querverweisenauf mathematische Sätze.CTAN:macros/latex/contrib/theoremref

mpman-ru von Vladimir Lidovski ist dierussische Übersetzung des META-POST-Manuals.CTAN:info/metapost/doc/russian/mpman-

ru

ctantools von Kyanh ist ein Unix-Skript, mit dem man in der Aus-gabe von http://ctan.org/tex-

archive/macros/latex/contrib/

LATEX-Pakete suchen kann. wget,lynx, gawk, wc und sed werden hier-zu benötigt.CTAN:support/ctantools

mathtype von Design Science, Inc. istein mathematischer Formeleditorfür Microsoft Windows (30-TageTestversion).CTAN:support/mathtype

stex von Michael Kohlhase erlaubtes, TEX- und LATEX-Dokumentenach den Regeln des mathematical

Die TEXnische Komödie 3/2008

Page 52: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

52 Neue Pakete auf CTAN

knowledge management (MKM)semantisch auszuzeichnen.CTAN:macros/latex/contrib/stex

cyklop von Janusz Marian Nowackiist ein Font, der in den 20er Jah-ren entworfen wurde. Er steht imType1- und im OpenType-Formatzur Verfügung.CTAN:fonts/cyklop

lshort-slovenian von Bor Plestenjakist die slovenische Übersetzung vonl2kurz.CTAN:info/lshort/slovenian

lcyw von Vladimir Lidovski ist dieLATEX-Unterstützung für die klassi-schen kyrillischen CM-Fonts.CTAN:macros/latex/contrib/lcyw

miktex_update von Josef Kleber ist einBash-Skript für Cygwin zum au-tomatischen Update von MiKTeX,mit dem auch neue Pakete instal-liert werden können.CTAN:support/miktex_update

isonums von Luis Rivera baut aufziffer auf und stellt Zahlen imMathematikmodus gemäß ISO 31-0dar, egal in welchem Format sieeingegeben worden waren.CTAN:macros/latex/contrib/misc/

isonums.sty

edmargin von John Burt bietet Erwei-terungen zum Setzen von Endnotenin textkritischen Ausgaben.CTAN:macros/latex/contrib/edmargin

siunitx von Joseph Wright will dieFeatures aller bisherigen LATEX-Pa-kete zum Setzen von Werten mitden dazugehörigen Einheiten ineinem Paket zusammenfassen.CTAN:macros/latex/exptl/siunitx

varsfromjobname von Uwe Ziegenha-gen erlaubt es, mit Befehlen wie\getonefromjobname auf die mit Bin-destrichen abgetrennten Teile desNamens der tex-Datei zuzugreifen.CTAN:macros/latex/contrib/

varsfromjobname

Die TEXnische Komödie 3/2008

Page 53: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

53

Linuxtag in Berlin

(Fotos: Meike Schmedt und Karlheinz Geyer)

Die TEXnische Komödie 3/2008

Page 54: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

54

(Fotos: Meike Schmedt und Karlheinz Geyer)

Die TEXnische Komödie 3/2008

Page 55: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Spielplan

Termine200820. 8. – 25. 8. 2nd ConTEXt user meeting

Bohinj, Sloveniahttp://meeting.contextgarden.net/2008/

13. 9. Herbsttagungund 39.Mitgliederversammlung von DANTE e.V.Universität Tübingenhttp://www.dante.de/dante/events/mv39/

18. 10. GuiT 2008 meetingPisa, Italienhttp://www.guit.sssup.it/GuITmeeting/2008/2008.en.php/

(Fotos: Meike Schmedt und Karlheinz Geyer)

Die TEXnische Komödie 3/2008

Page 56: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

56 Stammtische

StammtischeIn verschiedenen Städten im Einzugsbereich von DANTE e.V. finden regelmäßigTreffen von TEX-Anwendern statt, die für jeden offen sind. Im WWW gibt es aktuelleInformationen unter http://www.dante.de/events/stammtische/.

AachenTorsten Bronger [email protected]ätte Knossos, Templergraben 28Zweiter Donnerstag im Monat, 19.00Uhr

BerlinRolf NiepraschkTel.: 0 30/3 48 13 [email protected] Universität Berlin,Fachbereich WirtschaftswissenschaftenSpandauer Straße 1Zweiter Donnerstag im Monat, 19.00Uhr

BremenWinfried NeugebauerTel.: 04 21-8 28 65 [email protected] OrtErster Donnerstag im Monat, 18.30Uhr

DarmstadtKarlheinz [email protected] Poseidon, Rheinstraße 4164283 DarmstadtErster Freitag im Monat, ab 19.30Uhr

DresdenCarsten [email protected], Borsbergstraße 34,Dresden, Ortsteil Striesenca. alle 8 Wochen, Mittwoch, 19.00Uhr

DüsseldorfGeorg [email protected]/Café ZickeBöckerstr. 5 a (Ecke Bergerallee)40213 DüsseldorfZweiter Mittwoch in ungeraden Monaten,20.00Uhr

ErlangenWalter Schmidt, Peter [email protected]ätte »Deutsches Haus«Luitpoldstraße 253. Dienstag im Monat, 19.00Uhr

FreiburgHeiko OberdiekTel.: 07 61/4 34 [email protected] OrtDritter Donnerstag im Monat, 19.30Uhr

HamburgLothar Frö[email protected] SchwarzenbergSchwarzenbergstr. 80 – 21073 HHletzter Dienstag im Monat, 19.30Uhr

HannoverMark [email protected] RRZNSchloßwender Straße 5Zweiter Donnerstag im Monat, 18.30Uhr

HeidelbergLuzia DietscheTel.: 0 62 21/54 45 [email protected]»Restaurant Tomato, der Turm«Alte Glockengießerei 9Letzter Mittwoch im Monat, 19.30Uhr

KarlsruheKlaus BrauneTel.: 07 21/6 08 40 [email protected]ät Karlsruhe, RechenzentrumZirkel 2, 3.OG, Raum 316Erster Donnerstag im Monat, 19.30Uhr

Die TEXnische Komödie 3/2008

Page 57: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Stammtische 57

KölnHelmut SiegertInstitut für KristallographieZölpicher Straße 49bLetzter Mittwoch im Monat, 19.30UhrMünchenUwe [email protected]://www.siart.de/typografie/stammtisch.htmlGaststätte »Marktwirt«Heiliggeiststr. 2Erste Woche des Monats an wechselndenTagen, 19.00UhrStuttgartBernd [email protected] e Ristorante »Valle«Geschwister-Scholl-Str. 3Zweiter Dienstag im Monat, 19.30UhrTrierMartin [email protected]

Fetzenkneipe (Haus Fetzenreich)Sichelstraße 36 (beim Sieh-Um-Dich)54290 TrierDritter Montag des Monats, 20.15UhrUlmAdelheid [email protected]://latex.in-ulm.deGaststätte »Peppers Ulm«Deinselsgasse 8Erster Donnerstag im Monat, 19.30UhrWuppertalAndreas SchrellTel.: 02193/53 10 [email protected] Croatia »Haus Johannisberg«Südstraße 10an der Schwimmoper Wuppertal-ElberfeldZweiter Donnerstag im Monat, 19.30UhrWürzburgBastian [email protected] Vereinbarung

Die TEXnische Komödie 3/2008

Page 58: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Adressen

DANTE, Deutschsprachige Anwendervereinigung TEX e.V.Postfach 10 18 4069008 Heidelberg

Tel.: 0 62 21/2 97 66 (Mo., Mi.–Fr., 10.00–12.00Uhr)Fax: 0 62 21/16 79 06E-Mail: [email protected]

Konto: Volksbank Rhein-Neckar eGBLZ 670 900 00Kontonummer 2 310 007IBAN DE67670900000002310007

SWIFT-BIC GENODE61MA2

PräsidiumPräsident: Klaus Höppner [email protected]

Vizepräsident: Volker RW Schaa [email protected]

Schatzmeister: Tobias Sterzl [email protected]

Schriftführer: Manfred Lotz [email protected]

Beisitzer: Günter PartoschBernd RaichleHerbert Voß

Serverftp: ftp.dante.de

WWW: http://www.dante.de/

Die TEXnische Komödie 3/2008

Page 59: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Autoren/Organisatoren 59

Autoren/OrganisatorenWolfgang Engelmann [4][email protected]

Jürgen Fenn [49]Friedensallee 174/2063263 [email protected]

Ulrike Fischer [7]Bismarckstr. 9141061 Mö[email protected]

Klaus Höppner [4]siehe Seite 58

Markus Kohm [48]Freiherr-von-Drais-Straße 6668535 [email protected]

Volker RW Schaa [4]siehe Seite 58Herbert Voß [3]Wasgenstraße 2114129 [email protected]

Uwe Ziegenhagen [36]Humboldt-Universität zu BerlinWirtschaftswissenschaftliche Fakultä[email protected]

Die TEXnische Komödie 3/2008

Page 60: DANTE · T E omödie DANTE Deutschsprachige Anwendervereinigung TEX e.V. 20.Jahrgang Heft3/2008 August2008 3/2008

Die TEXnische Komödie20. Jahrgang Heft 3/2008 August 2008

Impressum

Editorial

Hinter der Bühne4 Grußwort5 Einladung und »Call for Papers« zur Herbsttagung von DANTE e.V.

Bretter, die die Welt bedeuten7 Erste Schritte mit X ELATEX36 Dokumentenmanagement mit LATEX und Subversion48 Das »große scharfe S« wurde normiert

Von fremden Bühnen49 Neue Pakete auf CTAN53 Linuxtag in Berlin

Spielplan55 Termine56 Stammtische

Adressen59 Autoren/Organisatoren