Neugierig geworden habe ich dann die Hilfe in Indesign durchgelesen und das verwirrt mich jetzt doch...
1. Die Hilfe schreibt z.B. wenn ich einen Punkt suchen will ist das Zeichen dafür \. damit der Punkt auch als Punkt erkannt wird, aber warum erkennt dann \d kein d sondern ein beliebiges Zeichen? Wo ist die Logik dahinter? Auch wird der Punkt erkannt wenn ich (\d)["."](\d) anstelle von (\d)\.(\d) schreibe?! > das "." ohne ""
2. Worin besteht der Unterschied zwischen den drei Klammern a) [ ] b) ( ) c) { }
Dies wird in der Hilfe leider nicht erklärt, ist aber wahrscheinlich entscheidend für die richtige Suche?!
3. Wie müsste die Abfrage lauten, wenn ich den Punkt gegen ein Komma tauschen will und dem Komma ein Zeichenformat grün gebe?
Denn bei Suche (\d)["."](\d) ersetze durch $1,$2
wird auch das Zeichen vorher und nachher eingefärbt. ...
Dieser GREP ersetzt das Leerzeichen vor dem letzten Wort in jedem Absatz mit einem 'variable-width non-breaking space'. Martins methode ist vielleicht schöner, denn es affektiert nur die Absatzen die ein einzelnes Wort auf dem letzten Linie haben -- aber das Skript muss wiederhohlt werden wenn etwas geändert wird.
scheint zu funktionieren. Erklärung: \b ist eine Wortgrenze [^...] alle Zeichen, die nicht ... sind -\s ein - oder ein beliebiger Leerraum + eins oder mehrere () speichere das Gefundene in $1
Wahrscheinlich kann man das \b auch weglassen.
In meinem Testtext kam auch der Begriff "Die Formate-Paletten" vor. Die Mehrzahl von Palette geht bei der Suche durcheinander. ...
(?<=S\.) -> lookahead nach 'S.' | -> oder (?<=Anm\.) -> lookahead nach 'Anm.' ( ) -> Leerzeichen (geht auch ohne die Klammern) (?=\d) -> lookbehind Ziffer.
Eventuell kann man die Alternative des lookahead ((?<=S\.)|(?<=Anm\.)) noch verkürzen. ...
Ich verstehe diesen letzten Beitrag nicht ganz. Warum plötzlich /i, um die Gross-/Kleinschreibung nicht zu beachten? Es ist doch (?i) und das Gegenteil (?-i).
Eine dritte Variante steht im Bonus-Magazin von «Dirty Tricks»: (?!) für Gross-/Kleinschreibung an, (?-!) für aus. Etwas verwirrend …
Zu deinem GREP: \W hinter t verhindert zwar das Auffinden im Satz: 2007 tummelten sich 20 tolle Kinder mit 40 total genervten Eltern, nicht aber in 2007 mümmelten sich 20 mollige Kinder mit 40 miesgelaunten Eltern ein.
Ich glaube, am einfachsten ist das Problem wieder mit einem negativen Lookahead zu lösen:
wobei (?!\w) ausschliesst, dass nach der Masseinheit ein Wortzeichen folgt.
Noch eine letzte Frage: (?-i) muss am Schluss stehen, sonst ist standardmässig die Gross-/Kleinschreibung in Zukunft immer an? Oder warum steht das am Schluss?
Über das Menü "Abfrage" ist ja bereits ein String "Mehrere Leestellen in einzelne" vorgegeben. Ganz am Ende steht - fast unscheinbar das " ".
Gibt es denn hierfür keinen Buchstaben oder sonstiges Zeichen das man eingeben kann?
Ersetzt wird ja durch \s Also liegt eigentlich die Vermutung nahe, das man doppelte Leerzeichen auch mit \s\s suchen könnte. Bei dieser Suche werden jedoch nicht nur doppelte Leerzeichen gefunden, sondern es wird auch die Absatzmarke miteinbezogen ... ...
Bekanntlich gibt es in Indesign CS3 die Möglichkeit, benutzerdefinierte Abfragen im Suchen/Ersetzen-Fenster unter eigenem Namen abzuspeichern. Eine komplizierte GREP-Abfrage, allenfalls ergänzt mit Formatsuche usw., kann so später einfach wieder hervorgeholt werden.
Schon lange wünschte ich mir ein Skript, dass mehrere dieser gespeicherten Abfragen automatisch ausführt. Heute hat mich Peter Kahrel netterweise darauf hingewiesen, dass im Adobe-Skript-Forum folgendes einfache Skript existiert:
Im obigen Skript müssen query_a bzw. query_b durch entsprechende Suchabfragen ersetzt werden. Diese befinden sich als xml-Dateien in Ordnern «Find-Change Queries» (separate Ordner für vordefinierte und selbst definierte). Im Skript die Namen ohne xml-Endung einfügen (z. B. 'Strich in Halbgeviertstrich').
Das Skript habe ich bei mir als jsx gespeichert, ein Testlauf war erfolgreich.
Vielen Dank an Peter für den Hinweis und natürlich an den Entwickler des Skripts (ich habe allerdings keinen Link auf das Adobe-Skript-Forum).
Der Grep sucht nach öffnender bzw. schliessender Klammer in der Grundschrift, wenn nach bzw. vor der Klammer kein Zeichen in Grundschrift steht. Anders gesagt: Wenn der Text innerhalb der Klammern nicht in Grundschrift ist, werden die Klammern ins gewünschte Zeichenformat geändert.
Da die Aufgabe von allgemeinem Interesse sein könnte (Literaturverzeichnisse), habe ich die Greps noch etwas verfeinert.
Für Namen wie: Hans-Martin Müller Hans-Martin Müller-Meier Hans Martin Müller Hans Martin Müller-Meier Hans M. Müller H. Martin Müller-Meier
gilt folgender Grep: ((\u\. )?[\w-]+( \u\.)?( \u\l+)?) ([\w-]+)
Damit ergeben sich für die 3 Greps (1. Namen nach in: – 2. Namen am Absatzanfang – 3. Namen nach bzw. zwischen Schrägstrichen) folgende Ausdrücke:
Namen nach «in:» («in» als Wort) (?<=\bin: )((\u\. )?[\w-]+( \u\.)?( \u\l+)?) ([\w-]+) $5, $1
Namen am Absatzanfang (gefolgt von (ed.), Schrägstrich oder Doppelpunkt) ^((\u\. )?[\w-]+( \u\.)?( \u\l+)?) ([\w-]+)(?= \(ed.\)|:|/) $5, $1
Namen zwischen Schrägstrichen bzw. nach Schrägstrich und vor «:» oder «(ed./eds.):» (?<=/)((\u\. )?[\w-]+( \u\.)?( \u\l+)?) ([\w-]+)(?= \(eds?.\)|:|/) $5, $1
Für mehrere Ortsangaben mit Schrägstrichen (Wien/New York/London) habe ich auf die Schnelle keine Lösung. Allenfalls könnten in einem ersten Durchgang (per Skript oder manuell: Alles ändern) alle Fundstellen hervorgehoben werden (z. B. Farbe, fett usw.), und zwar ohne Umstellung; nachher visuelle Kontrolle und bei nicht gewünschten Stellen die Formatierung wieder aufheben. In einem zweiten Durchgang werden dann alle formatierten Stellen (Namen) vertauscht und die Formatierung rückgängig gemacht.
Gruss, Marco
Edit: Namenszusätze (Peter von Matt, Thomas de Maizière usw.) können natürlich bei Bedarf noch eingebaut werden, der Basis-Grep lautet dann ((\u\. )?[\w-]+( \u\.)?( \u\l+)?( von)?( de)?) ([\w-]+). Im Ändern-Feld muss dann einfach die Zahl der Klammerausdrücke berücksichtigt werden ($7, $1 usw.). ...
bitte, wie kann ich in der Suche/Ersetze-Maske von InDesign den Binnenstrich gegen ein geschütztes Trennzeichen ersetzen? Wie muss der Suchalgorithmus aussehen, bewusst gesetzte Trennstriche davon ausgenommen bleiben?