{"word_count": 572, "character_count": 4581}
In gedruckte &#38; gebundene Abschlussarbeiten guckt man lieber nicht nochmal rein, oder? Der eine oder andere Tippfehler schleicht sich immer durch! Aber mit zwei Kommandozeilenzeilenprogrammen, kann man verhindern, dass sich die gleichen Fehler wiederholen.[caption id="attachment_406" align="aligncenter" width="500"] Fehler per Auge finden:  Das ist auf Dauer weder erquicklich, noch ergiebig.[/caption]Diese Anleitung eignet sich vor allem für eigene Texte, die man nach dem Schreiben schon gefühlt auswendig kann, sowie für LaTeX-Quelltexte, die aufgrund vieler Befehls- und Sonderzeichen unübersichtlich sind. Die Fehler in den schon druckreifen PDFs sollen doch bitteschön automatisch gefunden werden! Also los: basteln wir uns eine persönliche Ergänzung zu Wörterbuch und Rechtschreibkorrektur des jeweiligen Schreibprogramms oder LaTeX-Editors! Einziger Haken: Man muss die Fehler(typen) kennen. Doch dazu später.Die Werkzeuge &#38; Kommandos"pdftotext" ist ein Kommandozeilenwerkzeug zum (der Name sagt's schon) Extrahieren der Textdaten aus PDF-Dateien. "grep" wiederum durchsucht Textdaten nach definierbaren Worten oder Mustern. Beide sind für Linux, Mac OS X und Windows verfügbar (Installationsanweisungen bitte googlen), und lassen sich leicht zu einem feinen Korrekturlesehelferlein verknüpfen.Das erste Kommando lautet einfach (angenommen Du bist schon im gewünschten Ordner, wenn nicht, siehe):pdftotext Name-der-Datei.pdfEs speichert den PDF-Text als gleichnamige TXT-Datei im selben Ordner ab. Nun zur Fehlersuche:grep --color --extended-regexp --ignore-case --file=Fehlermuster.txt Name-der-Datei.txtKeine Angst vor der Fehlermeldung! Alleine kann dieses Kommando noch nix, denn Fehlermuster.txt fehlt noch. Dazu wird diese Datei einfach mit einem Texteditor im selben Ordner angelegt und mit einem Fehlermuster pro Zeile befüllt (siehe Beispiel). Der Dateiname ist im Prinzip auch egal. Hauptsache, sie ist genauso benannt, wie im Parameter --file= angegeben.Fehlermuster definierenOder "Musterfehler"? Hm! Um dies zu tun , wagen wir uns nun in die wunderbare Welt der "regulären Ausdrücke" vor (auf Englisch "regular expressions", "RegExp", etc.). grep wird durch den Parameter --extended-regexp verklickert, dass hier Profis am Werk sind ;-)   Wie oben angemerkt, sind es genau diese RegExps, die man kennen oder sich zusammenbasteln muss, um vom konkreten Tippfehler (die sollte die Rechtschreibkorrektur finden) auf Fehlertypen zu generalisieren. Beispiele für solche RegExps sind: \{ und \{, die in einem aus LaTeX kompilierten PDF tendenziell kaputte LaTeX-Befehle anzeigen. _\d{4} bspw. zeigt (zumindest bei Verwendung des Zotero-BibTeX-Exports) an, dass Zitatschlüssel nicht aufgelöst wurden (siehe Fehlersuchbild oben; Auflösung unten). Auch kompliziertere Fehlermuster wie z.B. (\b\S+\b)\s+\b\1\b sind möglich (siehe Fehlersuchbild oben; Auflösung unten). Skurrilerweise kann Word standardmäßig gerade solche Fehler finden, und dafür vermissen LaTeX-Nutzer es auch heimlich ;-&#62;Fehler findenSobald Fehlermuster.txt erstellt ist, bitte den ganzen Befehl auf der Kommandozeile wiederholen (z.B. via Pfeiltaste-hoch):grep --color --extended-regexp --ignore-case --file=Fehlermuster.txt Name-der-Datei.txtUnd die Fundstellen erscheinen farblich markiert in der Kommandozeile. Da die Fehlerstellen im Kontext angezeigt werden, sind sie schnell im (LaTeX-)Quelldokument, aus dem das PDF erzeugt wurde, gefunden und korrigiert.[caption id="attachment_407" align="aligncenter" width="500"] Fehler per pdftotext &#38; grep gefunden.[/caption]Noch mehr automatisierenEtwas eleganter geht es noch ohne Zwischenspeicherung des extrahierten Textes mittels sog. Pipe. Das unscheinbare Zeichen | "pumpt" den mittels - in die Kommandozeile umgelenkten PDF-Text direkt in die Suchfunktion:pdftotext Name-der-Datei.pdf - | grep --color --extended-regexp --ignore-case --file=Fehlermuster.txtFazitPDFs automatisiert nach bekannten Fehler(type)n durchsuchen zu können, ermöglicht das Arbeiten nach der Devise: Aus Fehlern sofort lernen, und sie nicht noch einmal machen! Wie bei automatischen Softwaretests. Wenn beim  Korrekturlesen per Auge ein Fehler gefunden wird, ihn schnell in Fehlermuster.txt eintragen, sodass er zukünftig automatisch gefunden wird. Noch eleganter geht's mittels makefile, z.B. um die PDFs automatisch nach dem Kompilieren der LaTeX-Quellen zu prüfen (und letztere auch gleich, aber mit einem separaten Satz Fehlermustern).Mit so einem Korrektursystem an der Hand, kann es getrost heißen: Nach der Schreibarbeit ist vor der Schreibarbeit!