Ein Workflow für ein Sachbuch

Im Fol­gen­den möch­te ich einen Work­flow für ein Sach­buch beschrei­ben. Es war mein ers­tes Sach­buch, und es gibt natür­lich auch ande­re Wege, so ein Pro­jekt zu bewäl­ti­gen. Ein Sach­buch zu ver­öf­fent­li­chen, braucht ein gutes Pro­jekt­ma­nage­ment. Man­ches war vor­her schon struk­tu­riert, man­ches hat sich erst aus Feh­lern und ite­ra­ti­ven Ver­bes­se­run­gen wäh­rend des Schrei­bens erge­ben.

Das gan­ze Pro­jekt beruh­te auf ehren­amt­li­cher Arbeit von vie­len Betei­lig­ten. An dem Sach­buch waren eine deut­sche Her­aus­ge­be­rin, vier Über­set­ze­rin­nen vom Rus­si­schen ins Deut­sche, bis zu drei Lek­to­ren, ein Buch­de­si­gner und kurz vor Druck noch­mals vier Kor­rek­tur­le­ser betei­ligt. Fotos von pro­fes­sio­nel­len Foto­gra­fen und vie­le Bil­der aus Fami­li­en­ar­chi­ven muss­ten gesich­tet und für das Buch aus­ge­wählt und bear­bei­tet wer­den. Grund­la­ge war eine bela­rus­si­sche Fas­sung, die für die deut­schen Lese­rIn­nen nicht nur über­setzt, son­dern auch edi­tiert und teil­wei­se neu zusam­men­ge­stellt wer­den muss­te. Am Ende wur­de ein Buch im For­mat A5 mit rund 520 Sei­ten, 260 Abbil­dun­gen, davon 140 far­big, in den Druck gege­ben. Ich hat­te die Ehre – und gele­gent­lich die leich­te Über­for­de­rung 😉 – Pro­jekt­ma­na­ger, Kor­rek­tor, Lek­tor, Bild­be­ar­bei­ter und Set­zer zu sein. (Vgl. auch Voß) Sich selbst Pro­jekt-Regeln geben

Mit dem Schrei­ben ver­ständ­li­chen Codes, dem Nach­den­ken über Namens­ge­bung und dem Kom­men­tie­ren ver­hält es sich ein biss­chen wie mit Safer Sex: Jeder erkennt den Nut­zen und ist dafür, und doch wird es sel­ten prak­ti­ziert – ins­be­son­de­re wenn es wirk­lich dar­auf ankommt. Kath­rin Pas­sig

Kath­rin Pas­sig, Johan­nes Jan­der: Weni­ger schlecht pro­gram­mie­ren, O’Reilly, Hei­del­berg, 2013.

Das Projekt sichern

Bevor ein Pro­jekt star­tet, soll­te bereits fest­ge­legt sein, wo und wie das Pro­jekt abge­legt und die ent­ste­hen­den Datei­en gesi­chert wer­den.

Die meis­ten Feh­ler tre­ten auf, wenn man noch schnell etwas ändern will, obwohl man bereits sechs oder mehr Stun­den vor dem Rech­ner geses­sen hat. Oder man bekommt von Pro­jekt­be­tei­lig­ten ver­schie­de­ne Zuar­bei­ten, die man falsch zuord­net, oder schlim­mer noch, bereits vor­han­de­nen Code oder gleich gan­ze Datei­en unwie­der­bring­lich über­schreibt.

Versionskontrolle mit Git

Ich benut­ze als Ver­si­ons­kon­troll­sys­tem Git san­dig und eige­ne Back­up-Regeln heise13,heise16.

Ver­si­ons­kon­trol­le-Sys­te­me sind kei­ne Hexe­rei.

Uwe Zie­gen­ha­gen: »Doku­men­ten­ma­nage­ment mit LATEX und Sub­ver­si­on«, Die TEX­ni­sche Komö­die, 03 (2008), 43–47.

Da pri­va­te Accounts auf git­hub kos­ten­pflich­tig sind und es auch nur eine Per­son gab, die alle Datei­en bear­bei­te­te und ver­wal­te­te, habe ich mich für Git aus­schließ­lich lokal auf mei­ner Fest­plat­te ent­schie­den. In Pro­jek­ten mit meh­re­ren Autoren, die alle am Quell­text arbei­ten, kann ein pri­va­ter Git-Account sicher­lich nütz­lich sein. Es gibt ver­schie­de­ne gra­fi­sche Tools für Git. (Eine Über­sicht fin­det sich hier: https://git-scm.com/downloads/guis).

Die bes­te Ver­si­ons­kon­trol­le nützt jedoch nichts, wenn die­se nicht täg­lich benutzt wird. Des­halb soll­te man vor jedem Arbeits­be­ginn Git auf­ru­fen. So stellt man sicher, dass man das am Abend vor­her nicht ver­ges­sen hat­te. Nach den Mühen eines lan­gen Tages schleicht sich schon mal eine Nach­läs­sig­keit ein: “Ach, das mache ich gleich mor­gen früh.” Das gilt es zu ver­mei­den.

Bei Arbeits­en­de wie­der­um Git star­ten las­sen. Das geht einer­seits per Kom­man­do­zei­le, ande­rer­seits per gra­fi­schem Front­end. In Tower sieht man beim Öff­nen des Repo­sito­ry gleich, was alles geän­dert wur­de und noch in einen Com­mit gesi­chert wer­den muss (Sie­he auch Joa­chim Schlos­ser: Git fürs Ver­sio­nie­ren von LATEX-Doku­men­ten). Mein Lieb­lings­edi­tor Text­Ma­te 2 zeigt mir im Datei-Brow­ser mit ent­spre­chen­den Icons an, wenn eine LaTeX-Datei noch nicht in die Ver­sio­nie­rung auf­ge­nom­men wur­de.

Da Git alle Datei­en in die Ver­sio­nie­rung auf­neh­men kann, kön­nen auch Fotos und Gra­fi­ken in die Ver­sio­nie­rung auf­ge­nom­men wer­den. Daher hat es sich als sehr hilf­reich erwie­sen, vor grö­ße­ren Arbeits­pa­ke­ten – wie zum Bei­spiel der sta­pel­wei­sen Bear­bei­tung von Fotos – eben­falls Git auf­zu­ru­fen und den aktu­el­len Arbeits­stand zu sichern. Mir ist ein­mal beim Export von Fotos ein schlim­mer Feh­ler pas­siert und vie­le bereits bear­bei­te­tet Bil­der wur­den über­schrie­ben. Die vor­he­ri­ge Ver­si­on konn­te fix über Git wie­der her­ge­stellt und der Export der Fotos, nun mit den rich­ti­gen Datei­na­men, wie­der­holt wer­den. Vor jeder gro­ßen Ände­rung, und dazu gehört auch die Bear­bei­tung von meh­re­ren Fotos oder Gra­fi­ken, soll­te man ein­mal sicher­stel­len, dass die Ver­sio­nie­rung tat­säch­lich erfolgt ist, in dem man Git auf der Kom­man­do­zei­le oder per gra­fi­schem Front­end vor­her noch ein­mal auf­ruft – sicher ist sicher.

Backups

Back­ups erfol­gen bei Spei­che­rung einer Datei auf der loka­len Fest­plat­te auto­ma­tisch zugleich in der Cloud (auf einem eige­nen Ser­ver mit einer ähn­li­chen Funk­tio­na­li­tät wie drop­box), täg­lich zusam­men mit dem Git-Repo­sito­ry auf eine exter­ne Fest­plat­te und zusätz­lich auf dem Webspace mei­nes Inter­net-Ser­vice-Pro­vi­ders. Dazu benut­ze ich ein Tool, das zeit­ge­steu­ert das Pro­jekt­ver­zeich­nis mit den exter­nen Lauf­wer­ken syn­chro­ni­siert. Ins­ge­samt liegt das gan­ze Pro­jekt auf vier ver­schie­de­nen phy­si­ka­li­schen Datei-Sys­te­men. Auto­ma­ti­sier­te nächt­li­che Back­ups der gesam­ten loka­len Fest­plat­te sind dar­über­hin­aus selbst­ver­ständ­lich (Vgl. auch Kapi­tel 12 und 21 in Pas­sig).

Datei-Konventionen

Das gan­ze Pro­jekt hat etwa 10 Mona­te gedau­ert. Es hat sich dabei ange­bo­ten, das Pro­jekt nach den Kapi­teln zu struk­tu­rie­ren. Im Lau­fe des Pro­zes­ses kann es zu einer Umstel­lung, Zusam­men­fas­sung oder Tren­nung von Kapi­tel kom­men. Auch dann müs­sen die fol­gen­den eige­nen Regeln kon­se­quent umge­setzt wer­den. Ein Edi­tor, der pro­jekt­über­grei­fen­des Suchen und Erset­zen beherrscht (viel­leicht sogar mit regu­lä­ren Aus­drü­cken, ist dabei von gro­ßem Vor­teil. Jedes Kapi­tel wird in einer eige­nen Datei in einem eige­nen Ver­zeich­nis gespei­chert. Die dazu­ge­hö­ri­gen Bil­der und Gra­fi­ken wer­den hier in einem Unter­ver­zeich­nis nn_fotos abge­legt. Hier befin­den sich zwei wei­te­re Unter­ver­zeich­nis­se: nn_originale für die Bilder/Grafiken in belie­bi­gen Datei-For­ma­ten und nn_bearbeitet für bear­bei­te­te Bilder/Grafiken, die­se nur im For­mat JPG oder PDF. Nur aus die­sem Ver­zeich­nis wird das Bild­ma­te­ri­al in das zuge­hö­ri­ge LaTeX-Doku­ment ein­ge­bun­den.

Die Ver­zeich­nis- und Datei­na­men begin­nen mit füh­ren­der zwei­stel­li­ger Num­mer ent­spre­chend der Kapi­tel­num­mer, Kapi­tel­num­mern klei­ner 10 mit füh­ren­der Null. Die Num­mern 00 und 70–90 sind reser­viert für Vor- und Nach­spann, Buch­um­schlag und druck­fer­ti­ges PDF.

Alle Ver­zeich­nis- und Datei­na­men wer­den aus­schließ­lich klein und ohne Umlau­te geschrie­ben. Zur bes­se­ren Les­bar­keit wird der Unter­strich als Tren­ner in Ver­zeich­nis- und Datei­na­men genutzt. Ziel ist es \enquote{sprechende} Datei­na­men zu haben, um eine gute Über­sicht zu behal­ten.

Inner­halb des \LaTeX-Doku­ments hat es sich als sinn­voll erwie­sen, den ein­zel­nen Glie­de­rungs­ebe­nen ein­deu­ti­ge Prä­fi­xe bei den Labeln zu ver­ge­ben wie bei­spiels­wei­se

  \label{cha:kapitelname} % Kapitel

  \label{sec:abschnitt} %	Abschnitt

  \label{sub:unterabschnitt} % Unterabschnitt	

Das Ende einer Glie­de­rungs­ebe­ne wird eben­so ein­deu­tig gekenn­zeich­net:

  % chapter kapitelname (end)

  % section sectionname (end)

  % subsection:subsectionname (end)

Das erhöht die Über­sicht­lich­keit in lan­gen Datei­en, und Edi­to­ren, die Code­fal­tung beherr­schen, kön­nen dar­auf zurück­grei­fen.

Label für Bilder/Grafiken wer­den eben­falls mit einem Prä­fix für Far­be bzw. schwarz/weiß ver­se­hen (\label{colorfig:} oder \label{swfig:}). Das erleich­tert das Zäh­len der far­bi­gen Abbil­dung für die Berech­nung der maxi­mal zu erwar­ten­den Druck­kos­ten unge­mein – soweit der ver­wen­de­te Edi­tor pro­jekt­über­grei­fen­des Suchen in allen LaTeX-Datei­en ermöglicht.rmf

Der Verzeichnisbaum

Die Pro­jekt­struk­tur lie­ße sich auch in einer ande­ren Ver­zeich­nis­struk­tur abbil­den. Bewährt hat sich jedoch, kon­se­quent bei der Num­me­rie­rung der Kapi­tel­ver­zeich­nis­se und ent­spre­chend der Unter­ver­zeich­nis­se für das Bild­ma­te­ri­al zu blei­ben. Erge­ben sich wäh­rend der Arbeit am Sach­buch neue Rei­hen­fol­gen der Kapi­tel und/oder der Zuord­nung des Bild­ma­te­ri­als, müs­sen die Datei­en, Ver­zeich­nis­se und Refe­ren­zie­rung kon­se­quent ent­spre­chend der neu­en Zuord­nung umbe­nannt wer­den. Auch nur eine kurz­zei­ti­ge Dis­zi­plin­lo­sig­keit kann schnell ins Cha­os füh­ren.

  • pro­jekt­ver­zeich­nis (Haupt­ver­zeich­nis des Pro­jekts)
    • jahr_auflage_mein_sachbuch.tex (Mas­ter­da­tei)
    • titelei.tex (Titelei)
    • typospec.tex (Typo­gra­fi­sche Beson­der­hei­ten)
    • trennungen.tex (beson­de­re Trenn­re­geln)
    • acronyme.tex (Ver­zeich­nis der Akro­ny­me)
    • 00_Vorspann (Ver­zeich­nis)
      • 00_vorwort.tex (Vor­wort)
      • 00_danksagung.tex (Dank­sa­gung)
    • 01_kapitel_name_kurzform (Ver­zeich­nis für Kapi­tel 01)
      • 01_kapitel_langform.tex (Datei für Kapi­tel 01)
      • 01_fotos (Bild­ma­te­ri­al zum Kapi­tel 01)
        • 01_originale (Bild­ma­te­ri­al – Ori­gi­nal, belie­bi­ge For­ma­te)
        • 01_bearbeitet (Bild­ma­te­ri­al – bear­bei­tet, JPG oder PDF)
    • 02_kapitel_name_kurzform (Ver­zeich­nis für Kapi­tel 02)
      • 02_kapitel_langform.tex (Datei für Kapi­tel 02)
      • 02_fotos (Bild­ma­te­ri­al zum Kapi­tel 02)
        • 02_originale (Bild­ma­te­ri­al – Ori­gi­nal, belie­bi­ge For­ma­te)
        • 02_bearbeitet (Bild­ma­te­ri­al – bear­bei­tet, JPG oder PDF)
    • nn_kapitel_name_kurzform (Ver­zeich­nis für Kapi­tel nn)
      • nn_kapitel_langform.tex (Datei für Kapi­tel nn)
      • nn_fotos (Bild­ma­te­ri­al zum Kapi­tel nn)
        • nn_originale (Bild­ma­te­ri­al – Ori­gi­nal, belie­bi­ge For­ma­te)
        • nn_bearbeitet (Bild­ma­te­ri­al – bear­bei­tet, JPG oder PDF)
    • 70_nachspann (Ver­zeich­nis für Nach­spann: Kar­ten, Dank­sa­gung)
      • 70_fotos (Bild­ma­te­ri­al zum Nach­spann)
        • 70_originale (Bild­ma­te­ri­al – Ori­gi­nal, belie­bi­ge For­ma­te)
        • 70_bearbeitet (Bild­ma­te­ri­al – bear­bei­tet, JPG oder PDF)
    • 80_umschlag (Ver­zeich­nis für Buch-Umschlag)
      • 80_fotos (Bild­ma­te­ri­al zum Buch-Umschlag)
        • 80_originale (Bild­ma­te­ri­al – Ori­gi­nal, belie­bi­ge For­ma­te)
        • 80_bearbeitet (Bild­ma­te­ri­al – bear­bei­tet, JPG oder PDF)
    • 90_druck_upload (Ver­zeich­nis für druck­fer­ti­ge PDF)
      • jahr_auflage_mein_sachbuch_JJ_MM_DD.pdf (mit Jahr, Monat, Tag der Druck­frei­ga­be)
      • jahr_auflage_mein_sachbuch_umschlag_JJ_MM_DD.pdf (mit Jahr, Monat, Tag der Druckfreigabe)Uwe Zie­gen­ha­gen­pro­jekt­ver­zeich­nis (Haupt­ver­zeich­nis des Pro­jekts)
    • jahr_auflage_mein_sachbuch.tex (Mas­ter­da­tei)
    • titelei.tex (Titelei)
    • typospec.tex (Typo­gra­fi­sche Beson­der­hei­ten)
    • trennungen.tex (beson­de­re Trenn­re­geln)
    • acronyme.tex (Ver­zeich­nis der Akro­ny­me)
    • 00_Vorspann (Ver­zeich­nis)
      • 00_vorwort.tex (Vor­wort)
      • 00_danksagung.tex (Dank­sa­gung)
    • 01_kapitel_name_kurzform (Ver­zeich­nis für Kapi­tel 01)
      • 01_kapitel_langform.tex (Datei für Kapi­tel 01)
      • 01_fotos (Bild­ma­te­ri­al zum Kapi­tel 01)
        • 01_originale (Bild­ma­te­ri­al – Ori­gi­nal, belie­bi­ge For­ma­te)
        • 01_bearbeitet (Bild­ma­te­ri­al – bear­bei­tet, JPG oder PDF)
    • 02_kapitel_name_kurzform (Ver­zeich­nis für Kapi­tel 02)
      • 02_kapitel_langform.tex (Datei für Kapi­tel 02)
      • 02_fotos (Bild­ma­te­ri­al zum Kapi­tel 02)
        • 02_originale (Bild­ma­te­ri­al – Ori­gi­nal, belie­bi­ge For­ma­te)
        • 02_bearbeitet (Bild­ma­te­ri­al – bear­bei­tet, JPG oder PDF)
    • nn_kapitel_name_kurzform (Ver­zeich­nis für Kapi­tel nn)
      • nn_kapitel_langform.tex (Datei für Kapi­tel nn)
      • nn_fotos (Bild­ma­te­ri­al zum Kapi­tel nn)
        • nn_originale (Bild­ma­te­ri­al – Ori­gi­nal, belie­bi­ge For­ma­te)
        • nn_bearbeitet (Bild­ma­te­ri­al – bear­bei­tet, JPG oder PDF)
    • 70_nachspann (Ver­zeich­nis für Nach­spann: Kar­ten, Dank­sa­gung)
      • 70_fotos (Bild­ma­te­ri­al zum Nach­spann)
        • 70_originale (Bild­ma­te­ri­al – Ori­gi­nal, belie­bi­ge For­ma­te)
        • 70_bearbeitet (Bild­ma­te­ri­al – bear­bei­tet, JPG oder PDF)
    • 80_umschlag (Ver­zeich­nis für Buch-Umschlag)
      • 80_fotos (Bild­ma­te­ri­al zum Buch-Umschlag)
        • 80_originale (Bild­ma­te­ri­al – Ori­gi­nal, belie­bi­ge For­ma­te)
        • 80_bearbeitet (Bild­ma­te­ri­al – bear­bei­tet, JPG oder PDF)
    • 90_druck_upload (Ver­zeich­nis für druck­fer­ti­ge PDF)
      • jahr_auflage_mein_sachbuch_JJ_MM_DD.pdf (mit Jahr, Monat, Tag der Druck­frei­ga­be)
      • jahr_auflage_mein_sachbuch_umschlag_JJ_MM_DD.pdf (mit Jahr, Monat, Tag der Druck­frei­ga­be)

Die Master-Datei

Der Datei­na­me der Mas­ter­da­tei beginnt mit dem Jahr, gefolgt von der Zahl für die Auf­la­ge und dem Kurz­na­men des Sach­buchs (JJJJ_01_mein_sachbuch). Eine wei­te­re, ggf. kor­ri­gier­te oder erwei­ter­te Auf­la­ge soll­te gleich ein­ge­plant wer­den.

Die Titelei (titelei.tex), die typo­gra­fi­schen Grund­ein­stel­lun­gen wie Schrif­ten, Anfüh­rungs­zei­chen für die deut­sche sowie für die benutz­ten Fremd­spra­chen, die Gestal­tung der Bild­un­ter­schrif­ten oder eige­ne Schrift­aus­zeich­nun­gen (typospec.tex), Akro­ny­me (acronym.tex) und Wort­tren­nun­gen (trennungen.tex) wer­den in eige­ne Datei­en aus­ge­la­gert und per \input-Befehl der Prä­am­bel hin­zu­ge­fügt.

In die Datei typospec.tex wird auch die in 1.8 Nr. 4 tabu emp­foh­le­ne “mode­ra­te Anpas­sung der Para­me­ter, die \TeX\ bei der Berech­nung der Zei­len­um­brü­che ver­wen­det” von Axel Rei­chert ein­ge­tra­gen. Die­se Para­me­ter habe ich eher zufäl­lig gefun­den, sind aber für den gesam­ten Umbruch eines Buches von gro­ßem Nut­zen.

Es hat sich bewährt, von vorn­her­ein vor dem \begin{document} den Befehl \inclu­de­on­ly{} auf­zu­neh­men. Damit kön­nen fer­ti­ge Kapi­tel von den Über­set­zungs­läu­fen aus­ge­schlos­sen und nur die Buch­tei­le gesetzt wer­den, an denen man gera­de arbei­tet oder mal wie­der einen Feh­ler sucht. Man spart sich also eine Men­ge Über­set­zungs­zeit. Wenn das Buch schon ein­mal kom­plett über­setzt wur­de, bleibt anhand der Hilfs­da­tei­en die Num­me­rie­rung der Sei­ten im All­ge­mei­nen erhal­ten. Das kann hilf­reich sein, wenn man zu meh­re­ren vor dem Moni­tor sitzt und anhand der frü­he­ren Aus­dru­cke nach den Stel­len sucht, die über­ar­bei­tet wer­den sol­len.

Dann folgt der Auf­bau des eigent­li­chen Doku­ments.

  %\includeonly{
  %}
  \begin{document}
   \frontmatter
   % \listoftodos % siehe Abschnitt Tools in diesem Beitrag
   \pagenumbering{roman} % Befehl für Art der Seitenummerierung, 
   \maketitle
   % Vorwort, Danksagung usw.
   \include{00_vorspann/vorwort}
   \mainmatter
   \pagenumbering{arabic} % Befehl für Art der Seitenummerierung, 
   \include{01_kapitel1_erstes_kapitel}
   % ...
   \include{nn_kapitel\nn_letztes_kapitel}
   \backmatter
   \appendix
   \include{acronyme}
   \printindex 
   % ggf. weitere Register
   \include{70_nachspann\lastpage} % letzte Seite mit Verweisen auf Webadressen o.ä.
   % \listofchanges % siehe Abschnitt Tools
  \end{document}

Tools

Als äußerst hilf­reich hat sich ein Mind­map­ping-Tool erwie­sen. Zum Bei­spiel für alle Betriebs­sys­te­me XMind: https://www.xmind.net/de/ Man gewinnt bei par­al­le­ler Pfle­ge eines Mind­maps einen guten Über­blick nicht nur über das Buch, son­dern auch über das gesam­te Pro­jekt.

Vier LaTeX-Pake­te möch­te ich her­vor­he­ben, die für einen Work­flow für ein Sach­buch sehr hilf­reich sind:

  • draft­water­mark
  • todo­no­tes
  • chan­ges
  • snapshot

Wasserzeichen

Gibt man den aktu­el­len Stand sei­nes Manu­skripts Drit­ten zu lesen, kann es hilf­reich sein, auf der Titel­sei­te oder auf jeder ein­zel­nen Sei­te ein Was­ser­zei­chen anzu­brin­gen. Das Paket draft­water­mark ermög­licht eine indi­vi­du­el­le Gestal­tung des Was­ser­zei­chens, z.B. auch zur Kenn­zeich­nung des aktu­el­len Arbeitstan­des.

ToDo-Listen

Das Paket todo­no­tes bie­tet gute Mög­lich­kei­ten, not­wen­di­ge Auf­ga­ben auch farb­lich unter­schied­lich zu mar­kie­ren und feh­len­de Bil­der aus­zu­wei­sen. Die zu erle­di­gen Auf­ga­ben wer­den als Mar­gi­na­li­en gesetzt. Auf feh­len­de Bil­der kann mit dem Befehl \mis­sing­fi­gu­re prä­gnant bereits in den spä­te­ren Bild­ma­ßen auf­merk­sam gemacht wer­den.

Korrektorat/Lektorat

Das Paket chan­ges bie­tet nicht nur die Mög­lich­keit Strei­chun­gen, Erset­zun­gen und Ergän­zun­gen im Text selbst, son­dern auch als Lis­te aus­zu­ge­ben. Den ver­schie­de­nen Lektoren/Korrektoren kön­nen Namens­kür­zel und jeweils eine eige­ne Far­be zuge­wie­sen wer­den.

Ohne die Pake­te todo­no­tes und chan­ges hät­te die Zusam­men­ar­beit mit den Pro­jekt­part­ner nicht so gut funk­tio­niert. Aktu­el­le Arbeits­stän­de muss­ten als PDF oder aus­ge­druckt aus­ge­lie­fert wer­den, da nur ein Pro­jekt­mit­glied mit \LaTeX\ umge­hen konn­te. Bei­de Pake­te bie­ten die Mög­lich­keit, Lis­ten der Ände­run­gen und der uner­le­dig­ten Auf­ga­ben mit aus­zu­lie­fern. Das erspar­te viel E‑Mail-Ver­kehr. Pro­jekt-Schnapp­schuss

Das letz­te Paket lei­tet bereits in den nächs­ten Abschnitt Auf­räu­men über. Mit snapshot wird ein kom­plet­tes Abbild aller Pake­te und Datei­en in die Datei *.dep geschrie­ben, die man im Kopf sei­ner Prä­am­bel aus­kom­men­tiert ein­fü­gen kann. snapshot lis­tet und die ver­wen­de­ten Klas­sen- und Paket­da­tei­en mit der zuletzt ver­wen­de­ten Ver­si­on auf, eben­so alle Datei­en mit dem voll­stän­di­gen Ver­zeich­nis­pfad. Das Paket snapshot zeigt einem sofort, wenn Bilder/Grafiken in einem Kapi­tel in Wirk­lich­keit aus einem ande­ren Verzeichnis/Kapitel ent­spre­chend dem oben skiz­zier­ten Ver­zeich­nis­baum stam­men. Wer also viel spä­ter das Sach­buch noch ein­mal set­zen oder den Quell­text an einen Drit­ten wei­ter­ge­ben möch­te, hat alle not­wen­di­gen Infor­ma­tio­nen über die voll­stän­di­ge Datei-Struk­tur und die ver­wen­de­ten Klas­sen- und Paket­da­tei­en.

Aufräumen

Code wird ohne Rück­sicht auf spä­te­re Wart­bar­keit (durch einen selbst oder durch ande­re) geschrie­ben. Das liegt in ers­te Linie an man­geln­der Erfah­rung. Erst wenn man oft genug vor einem selbst erzeug­ten undurch­dring­li­chen Coded­schun­gel gestan­den hat, fällt es etwas leich­ter, beim Schrei­ben an den künf­ti­gen Leser zu den­ken.

Kath­rin Pas­sig, Johan­nes Jan­der: Weni­ger schlecht pro­gram­mie­ren, O’Reilly, Hei­del­berg, 2013

Ist man end­lich mit sei­nem Pro­jekt fer­tig und das Buch im Druck, hat man sicher­lich eine Pau­se (und eine Fla­sche Scham­pus) ver­dient. Den­noch war­tet noch ein wich­ti­ges Arbeits­pa­ket – auf­räu­men.

Bevor Sie das Paket snapshot ein­set­zen, ist erst ein­mal auf­räu­men ange­sagt:

  • Wur­den die Datei-Kon­ven­tio­nen ein­ge­hal­ten?
  • Sind bei der Zusam­men­le­gung oder der Auf­tren­nung von Kapi­teln die Ver­zeich­nis- und Datei­na­men ange­passt wor­den?
  • Ver­steht jeder hin­ter­her noch, war­um bestimm­te Pake­te mit bestimm­ten optio­na­len Para­me­tern auf­ge­ru­fen wur­den?

Ich gebe zu, das ist fast der schwie­rigs­te Teil. Gera­de bei einem grö­ße­ren Pro­jekt lernt man viel neu­es zu LaTeX und den vie­len hilf­rei­chen Pake­ten. Man ver­sucht ein Pro­blem wäh­rend des Pro­jekts zu lösen, recher­chiert im Inter­net dazu und fin­det letzt­end­lich eine prak­ti­ka­ble Lösung. Dabei benutzt man ver­schie­de­ne Befeh­le oder Para­me­ter, ohne aus­rei­chend zu kom­men­tie­ren, war­um man das gera­de so gelöst hat. Hilf­reich ist es auch – wenigs­tens nach­träg­lich – einen Link, der zur Lösung des Pro­blems geführt hat, an der betref­fen­den Stel­le im Quell­text in den Kom­men­tar auf­zu­neh­men.

Zum Schluss noch ein­mal Git auf­ru­fen und alles ins Repo­sito­ry schrei­ben. Git bie­tet die Mög­lich­keit über Tags die­sen Arbeits­stand z.B. als Druck­frei­ga­be beson­ders zu mar­kie­ren. Nr. 2.6 git­tags

Der Zeit­druck gegen Ende eines Pro­jekts ist immer groß und die Ent­span­nung nach Abga­be ent­spre­chend tief. Den­noch:

Die Welt wird sicher­lich kein schlech­te­rer Ort dadurch, dass Sie statt­des­sen die all­ge­mei­ne Unzu­läng­lich­keit von fast allem aner­ken­nen und sich damit begnü­gen, Code zu schrei­ben, den Sie selbst nach sechs Mona­ten noch ver­ste­hen kön­nen.

Kath­rin Pas­sig, Johan­nes Jan­der: Weni­ger schlecht pro­gram­mie­ren, O’Reilly, Hei­del­berg, 2013

Projektstand auf DVD brennen

Also auf­räu­men, ggf. neu struk­tu­rie­ren und alles an Kom­men­tie­run­gen nach­ho­len, was man unter Druck und in Zeit­not noch nicht geschrie­ben hat­te. Und dabei sicher­stel­len, dass der Out­put immer noch iden­tisch mit dem abge­ge­be­nen Werk ist.

Um die­sen Arbeits­stand ein­zu­frie­ren, bie­tet es sich an, das gan­ze Pro­jekt auf eine oder meh­re­re DVD zu bren­nen.

Literatur und Software

Her­bert Voß: Das eige­ne Buch: Von der Idee zu »Print on Demand«, Leh­manns Media oder selbst den Ver­trieb über­neh­men, http://www.dante.de/events/Herbst2016/Programm/Vortraege/VossGoettingen2016.pdf (besucht am 14. 06. 2017).

Kath­rin Pas­sig, Johan­nes Jan­der: Weni­ger schlecht pro­gram­mie­ren, O’Reilly, Hei­del­berg, 2013.

Uwe Zie­gen­ha­gen: »Doku­men­ten­ma­nage­ment mit LATEX und Sub­ver­si­on«, Die TEX­ni­sche Komö­die, 03 (2008), 43–47.

Ich benut­ze auf dem Mac die kos­ten­pflich­ti­ge App Tower (https://www.git-tower.com/mac/, auch für Win­dows) Die App ist intui­tiv zu bedie­nen, und es las­sen sich ver­schie­de­ne Repo­si­to­ri­en sehr über­sicht­lich ver­wal­ten.

Joa­chim Schlos­ser: Git fürs Ver­sio­nie­ren von LATEX-Doku­men­ten, https://www.schlosser.info/git-latex-versionieren/ (besucht am 01. 06. 2017).

Rai­ner-Maria Fritsch: »Text­Ma­te 2 – LATEX­ing unter MacOS«, Die TEX­ni­sche Komö­die, 04 (2016), 50–56. (Der freie und quell­of­fe­ne Edi­tor Text­ma­te 2 kann hier https://macromates.com/ her­un­ter gela­den wer­den).

Sync Fol­ders Pro http://www.greenworldsoft.com/sync-folders-pro-help.php, ca. 8 €.

Kath­rin Pas­sig, Johan­nes Jan­der: Weni­ger schlecht pro­gram­mie­ren, O’Reilly, Hei­del­berg, 2013.

Jef­frey E. F. Friedl: Regu­lä­re Aus­drü­cke, O’Reilly, Hei­del­berg, 2007.


Die­ser Bei­trag erschien zuerst in der TeX­ni­schen Komö­die – der Mit­glie­der­zeit­schrift der Deutsch­spra­chi­gen Anwen­der­ver­ei­ni­gung TeX (Dan­te e.V.) in Heft 3/2016.