TeXLaTeX Journal

Koch- und Backrezepte sammeln mit KOMAScript

Irgendwann hat man ein paar Dutzend leckere Rezepte gesammelt. Schön wäre es doch, die Rezepte an einem gemeinsamen Ort zu versammeln, die Arbeitsschritte in der richtigen oder sinnvollen Abfolge zu erfassen und sich wichtige Erfahrungen zu notieren.

Lesen Sie mehr…

Rechnungen schreiben mit KOMAScript

Ich habe nach einer flexiblen Lösung für Rechnungen gesucht, die standardisierte Prozesse über Variablen abbilden kann, jedoch auch die Abrech- nung zusätzlicher Leistungen ermöglicht und das Ganze automatisch berechnet – ohne zwischendurch ein Tabellenkalkulationsprogramm benutzen zu müssen. All diese Voraussetzungen erfüllt KOMA-Script

Lesen Sie mehr…

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­si­to­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­si­to­ry auf eine exter­ne Fest­plat­te und zusätz­lich auf dem Webs­pace 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.

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­si­to­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.

Editor VS Code installieren und einrichten

Siehe interne Doku Tipps und Tricks

Lesen Sie mehr…

Lokales Repository mit github verbinden

Siehe interne Doku Tipps und Tricks

Lesen Sie mehr…

All-Inkl Git-Repository einrichten

Siehe interne Doku Tipps und Tricks

Lesen Sie mehr…