Hiho, hab hier einen Bericht vor mir, der mit recht vielen Zitaten arbeitet. Dummerweise waren manche davon so knackig-schön in mehrfacher Hinsicht und der Bearbeitungszeitraum von stetigen Pausen unterbrochen, dass ich offenbar bestimmte Zitate in verschiedenen Kapiteln, also mehrfach verwendet hab. Das möchte ich nun nicht. Ich habe keinen Knopf zum „Suchen nach Satzdopplungen“ o.ä. gefunden. Gibts so etwas?
Hmmm… Mit einem „Knopf“ wäre es ja nicht getan. Das muss ja zu konfigurieren sein, denn du willst ja nicht jedes Wort markiert haben, das im Text mehrfach vorkommt Was genau suchst du denn als Doppelungen?
So etwas wie:
- Gleiche Wortfolgen von 3 (?) oder mehr Wörtern
- Gleiche Wortfolgen, die in Anführungsstrichen stehen
- Genau gleiche Sätze (Also Wortfolgen von Punkt zu Punkt)
?
Es sind ganze Absätze.
Wenn die Absätze dabei wirklich identisch sind, könntest du den ganzen Text markieren, kopieren, in ein leeres Excel Blatt kopieren - bsp. Zelle A1 anwählen und dann reinkopieren. Dadurch wird jeder Absatz nun in einer eigenen Reihe der Spalte A beginnen - jeder Absatz hat damit seine eigene Zelle und diese kann man nun abgleichen.
Dafür die ganze Spalte A markieren/auswählen, dann über „DATEN“ → „Duplikate entfernen“ alle identischen Absätze entfernen. Das jeweils erste Textvorkommen bleibt dabei erhalten.
Danach wieder alles zurückkopieren.
Ob das in der Praxis funktioniert steht und fällt schon mal damit, ob deine Absätze wirklich (wirklich!) identisch sind - in jedem einzelnen Zeichen… Da darf dann auch kein Leerzeichen mehr drin sein irgendwo oder dergleichen (gerne am Absatzende mal - wobei das dort noch schnell zu „truncaten“ wäre).
Achja. Wichtig:
Egal, was du machst; lege vorher Backups deiner Texte an. Immer. Hier auch.
Ah, spannend. Nein, ich muss nicht das von Excel „vermurkste“ Dokument zurückführen, mir reicht es ja, zu sehen, wo die Dopplungen sind und Excel bietet die Option unter Bedingter Formatierung, doppelte Werte zu markieren. Dankeschön!
Noch einfach: Export nach Word und ein simples Makro drüberlaufen lassen.
Kann dann ein Makro nicht auch für Papyrus geschrieben werden?
Gruß aus MG
Klaus
Du könntest einen dieser Absätze kopieren und per Suchen und Ersetzen markieren und auf einmal löschen. Das klappt aber nur, wenn der Absatz nicht zu lang ist, sonst entgeht dir ein Teil davon und du hast überall Bruchstücke davon übrig.
Edit:
Ansonsten die Fundstellen einzeln anspringen, von Hand markieren und löschen.
Ja das Problem kenn ich - aber viel Hoffnung, dass da programmseitig was kommt, hab ich nicht. Es müsste ja nicht nur die genaue Dopplung erkennen, sondern auch ähnliche. Manche Stellen sind die gleichen, aber da und dort hat man den Satz etwas umgestellt.
Ich hab mir angewöhnt, Textschnipsel zu sammeln, die mir einfach so einfallen und gefallen. Und die ich dann da und dort mal einbauen möchte. Auch hier denke ich, dass ich manches doppelt „verwertet“ habe.
Bisher helfe ich mir beim Korrekturlesen mit „suchen und ersetzen“ ab, wenn ich an so eine Stelle komme, wie auch @JoeySL erwähnt hat. Ich brauch da eigentlich nicht den ganzen Absatz, sondern nur einen Teil eines Satzes oder ein markantes Wort mit Folgewörtern. Die Wahrscheinlichkeit, dass eine solche Wortfolge auch auf 300 Seiten nur zufällig mehrfach vorkommt, ist überraschend gering. Und bei den wenigen Malen, wo es das war, sehe ich dann den Kontext.
Ist ein bisschen Arbeit, aber auch nicht übertrieben viel und funktioniert sehr gut.
Das ist mal ein interessanter Vorschlag.
So in etwa?
Papyrus Autor Python-Skript zum Finden und Markieren doppelter Absätze
import papyrus
def find_and_mark_duplicate_paragraphs():
# Gesamten Text holen
full_text = papyrus.getText()
# Absätze durch Zeilenumbrüche teilen
paragraphs = full_text.split("\n")
# Wörterbuch zur Speicherung der Absätze und deren Vorkommen
paragraph_dict = {}
duplicates = []
for i, paragraph in enumerate(paragraphs):
trimmed_paragraph = paragraph.strip()
if trimmed_paragraph: # Leere Absätze ignorieren
if trimmed_paragraph in paragraph_dict:
duplicates.append(i) # Speichert Index des doppelten Absatzes
else:
paragraph_dict[trimmed_paragraph] = i # Speichert erste Vorkommen
# Doppelte Absätze markieren
if duplicates:
for index in sorted(duplicates, reverse=True): # Rückwärts iterieren, um Indexverschiebungen zu vermeiden
paragraphs[index] = "**[DOPPELTER ABSATZ]** " + paragraphs[index]
# Markierten Text zurück in Papyrus einfügen
updated_text = "\n".join(paragraphs)
papyrus.setText(updated_text)
papyrus.messageBox("Doppelte Absätze wurden markiert.", "Fertig")
else:
papyrus.messageBox("Keine doppelten Absätze gefunden.", "Info")
find_and_mark_duplicate_paragraphs()
Schritte zur Verwendung:r:
- Öffne Papyrus und gehe zu „Dokument > Skripte“.
- Erstelle ein neues Skript und füge den Code ein.
- Speichere das Skript
- Führe es aus
In Python habe ich noch nicht programmiert. Ich komme aus der Mainframe-Welt.
Ist Python ein Interpreter- oder Compilersprache? Für mich als Mac-Nutzer würde sich die Frage stellen, ob dieses Skript Plattformunabgängig ist.
@Almut_Widdershoven Kannt Du damit etwas anfangen?
@writers_headroom Danke für das Script. Bist Du in der IT tätig?
Gruß aus MG
Klaus
Python ist eine Skript (Interpreter) Sprache, daher plattformunabhängig. Funktioniert auf dem Mac genauso wie auf einem Windowsrechner, sofern du keine Plattformspezifischen Dinge umsetzt bzw. Sachen wie Pfad, Verzeichnis etc. mit der entsprechenden Funktion umsetzt.
Dass Papyrus Python Skripte kann lässt es im Wert gleich nochmal steigen. Cool
Mein Papyrus bietet keine Skrypt-Option an der angegebenen Stelle. „Schon wieder“ zu alte Version, tippe ich mal.
Jetzt wo Du es schreibst, habe ich auch nachgeschaut. Weder in der 11er, noch in der 12er Version finde ich den Menüpunkt. Ich arbeite auf dem Mac.
@writers_headroom Ist das Script unter Windows geschrieben?
Gruß aus MG
Klaus
Ich muss das offenbar dringend wieder einfangen, sorry.
Ich fand die Idee von @cdf.klugmann so cool, dass man sowas machen könnte. Das oben ist nur ein „mockup“, wie es aussehen würde, wenn Skripting unterstützt wäre. Insofern ging das eher in Richtung @Ulli . Tut mir leid, wenn ihr jetzt enttäuscht seid.
Enttäuscht würde ich es nicht nennen, eher verwirrt.
Aber nach deiner Klarstellung nicht mehr.
Seit 2022 ist Python auf dem Mac nicht mehr vorab installiert. Um es zu nutzen bzw. darin zu programmieren muss es erst installiert werden. Es gibt dazu einige Artikel im Netz, aber das würde zu weit führen. Progammieren ist auch ein Form von Schreiben, man denke an COBOL, aber hier nicht gemeint.
Gruß aus MG
Klaus
oh my, da erinnere ich mich an echt geschwätzigen Code … ist aber schon Jahrzehnte her.
Bei mit nur kurz im Studium. Es war episch.
Später schrieb ich in Assembler, PL/1, REXX u.a.
Heute nur noch in Papyrus.
Gruß aus MG
Klaus

Später schrieb ich in Assembler, PL/1, REXX u.a.
Und du sprichst bei COBOL von episch? Und dass Python nicht mehr zum Standard gehört wusste ich nicht. Mein jüngster Mac ist von 2013.

Ich muss das offenbar dringend wieder einfangen, sorry.
Jaja, erst Hoffnung schüren und dann das. Phö.
Aber wenn sich die Macher das zu Herzen nähmen, dann wäre damit ja tatsächlich was gewonnen.
Da fällt mir ein: So unrealistisch und nicht machbar ist das ja gar nicht. Ob das Skript nun innerhalb von Papyrus läuft oder eine .txt Datei analysiert macht doch für das Skript kaum einen Unterschied. Ich finde die Idee auf jeden Fall ausbaufähig und sinnvoll. Wenn das in Ordnung ist schnappe ich mir den Code und bastle was.