SeeksTheMoon
31-12-2005, 12:52
Ich habe viele LaTeX-Dateien in denen ich Bilder eingebunden habe. Im Laufe der Zeit sind wegen Bearbeitungen der Texte die Bilder teilweise aus den tex-Dateien verschwunden, existieren aber noch in meinem Bilderverzeichnis. Diese Verwaisten Bilder will ich mit einem Pythonscript aufspühren, was bis auf zwei Macken klappt.
1. Prob: Ich habe ein Problem auskommentierte Zeilen zu behandeln
2. Prob: Einträge die matchen müssten, tun es nicht.
Beispiel was gematcht werden soll:
\includegraphics[scale=0.33]{Bilder/Legende}
Verwendeter Regex-String:
"\\includegraphics.*"+image+"\}"
image ist immer "Bilder/"+Dateiname ohne Endung, das setze ich in einer Schleife ein.
Für obiges Beispiel wäre der Regex also
\\includegraphics.*Bilder/Legende\}
Das ist soweit kein Problem, aber: Steht vor dem \includegraphics irgendwo, irgendwie ein "%" Zeichen, dann darf der Regex nicht matchen.
Ich will vom Zeilenanfang beliebige Zeichen zulassen, dann muss ein % rausgematcht werden und dann können bis zum includegraphics wieder beliebige Zeichen kommen.
Ich beginne den Regex dann mit
^.*(?!%).*\\includegraphics....
aber das klappt nicht, denn folgender Eintrag wird trotzdem gematcht:
%\includegraphics[scale=0.33]{Bilder/Legende}
Zweites Prob:
\includegraphics[scale=0.90]{Bilder/Nadelspitze}
wird nicht gematcht. Dabei sehen alle includes ausnahmslos so aus, z.B. steht
\includegraphics[scale=0.90]{Bilder/Jagdpfeil} direkt darüber und wird gematcht...:confused:
1. Prob: Ich habe ein Problem auskommentierte Zeilen zu behandeln
2. Prob: Einträge die matchen müssten, tun es nicht.
Beispiel was gematcht werden soll:
\includegraphics[scale=0.33]{Bilder/Legende}
Verwendeter Regex-String:
"\\includegraphics.*"+image+"\}"
image ist immer "Bilder/"+Dateiname ohne Endung, das setze ich in einer Schleife ein.
Für obiges Beispiel wäre der Regex also
\\includegraphics.*Bilder/Legende\}
Das ist soweit kein Problem, aber: Steht vor dem \includegraphics irgendwo, irgendwie ein "%" Zeichen, dann darf der Regex nicht matchen.
Ich will vom Zeilenanfang beliebige Zeichen zulassen, dann muss ein % rausgematcht werden und dann können bis zum includegraphics wieder beliebige Zeichen kommen.
Ich beginne den Regex dann mit
^.*(?!%).*\\includegraphics....
aber das klappt nicht, denn folgender Eintrag wird trotzdem gematcht:
%\includegraphics[scale=0.33]{Bilder/Legende}
Zweites Prob:
\includegraphics[scale=0.90]{Bilder/Nadelspitze}
wird nicht gematcht. Dabei sehen alle includes ausnahmslos so aus, z.B. steht
\includegraphics[scale=0.90]{Bilder/Jagdpfeil} direkt darüber und wird gematcht...:confused: