In gedruckte & 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.

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 & 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.pdf
Es 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.txt
Keine 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 definieren
Oder “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\bsind 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 ;->
Fehler finden
Sobald 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.txt
Und 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.

Noch mehr automatisieren
Etwas 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.txt
Fazit
PDFs 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!
OpenEdition schlägt Ihnen vor, diesen Beitrag wie folgt zu zitieren:
Katrin Leinweber (27. Juni 2016). Korrekturlesen von PDFs mit pdftotxt & grep automatisieren. EDIT. Abgerufen am 26. Juli 2026 von https://doi.org/10.58079/o215
Ich muss also alle Fehler, die ich beim händischen Korrigieren von meinen Arbeiten entdecke in reguläre Ausdrücke verwandeln und dann in meine “fehlermuster.txt”-Datei einfügen, sodass sie beim nächsten Mal gefunden werden.
Habe ich das richtig verstanden?
Nicht unbedingt alle “alle” 😉 Aber z.B. diejenigen, die durch die Rechtschreibkorrektur schlüpfen, irgendwie dir eigen sind, einem generelisierbaren Muster folgen, etc. Formelle Fehler wie doppelte Klammern, Steuerzeichen aus LaTeX und so eignen sich auch, siehe https://github.com/katrinleinweber/PhD-thesis/blob/doctor/CHECKS-PDF (auch oben im Text ergänzt). Viele Grüße!