Liege ich mit meiner Vermutung richtig, daß InDesign per GREP mit "\s" nicht wie versprochen "alle Leerräume" findet, sondern nur den normalen Wortzwischenraum und den Tabulator?
Als workaround benutze ich statt "\s" folgenden Ausdruck, um alle Leerräume zu finden: "[~m~>~>~f~|~S~s~<~/~.~3~4~%\s]".
Finde ich damit wirklich alle oder sind jemandem noch weitere bekannt? Eventuell auch ein anderer workaround?
Dann würden bestimmt gleich die andere Fraktion angetigert kommen: Wir hätten gern, dass die Suchabfrage nur alle "normalen" Leerzeichen berücksichtigt!
Oder: Ja, alle Leerräume ist schon oK, aber das Achtelgeviert möchte ich nicht mit auswählen… !
Bei der Vielzahl der möglichen Varianten ist die jetzige Methodik vielleicht nicht die, die Dir am Besten gefällt. Aber es dürfte die flexibelste Lösung sein :-) oder :-( ?
Viele Grüße pixxxelschubser
Was wir wissen, ist ein Tropfen; was wir nicht wissen, ein Ozean. Isaac Newton
Interessante Beobachtung und offenbar ein Bug, denn \s sollte laut Indesign-Hilfe und Peter Kahrels Short Cuts über GREP alle Leerzeichen finden, also neben dem normalen Leerschlag, Tab und Absatzende auch alle anderen Leerräume (Geviert, Halbgeviert usw.).
Übrigens funktioniert im Text-Reiter ^w (das Pendant zu \s im GREP-Reiter) einwandfrei.
Vielleicht kann jemand mit einer englischsprachigen Indesign-Version den Bug verifizieren, oder gilt der Fehler nur für die deutsche Version?
Ein Fall für den Feature request / Bug report. Hast du das dort schon gemeldet?
In my (English) version of Indesign, \s captures all white space, including returns (\r). If you're using it in a script, maybe you forgot to escape the backslash:
...findGrep = "\\s";
If this is in the UI, it would indeed be a bug of the German version.
Peter
(Dieser Beitrag wurde von Peter Kahrel am 14. Nov 2007, 15:52 geändert)
I did try it in the UI with "\s" and in a script with "\\s". But with this expression I couldn't find something like "~>" (thin space).
I have detected this while writing some lines for FindChangeByList.jsx. The following lines should put a thin space between a single or two character(s) followed by a dot followed by a single or two character(s) followed by a dot. (e.g. "e.g." -> "e.|g."; "J.Ch. Peirce" -> "J.|Ch. Peirce", "B. C. E." -> "B.|C.|E.", ...)
As you told that \s captures all white space in the english version of ID, this seems to be a bug in the german version.
Viele Grüße Martin
(Dieser Beitrag wurde von Martin Fischer am 14. Nov 2007, 16:16 geändert)
mein Beispiel, wie ich es versuchte, für FindChangeByList.jsx auszudrücken, siehst Du oben.
Nach Abarbeitung der ersten Zeile kam es vor, daß z.B. aus "J.C.B." das herauskam: "J.|B.C.". Oder aus "J. B. C." das: "J.|B. C."
Im nächsten Durchgang sollte er diese Kombination aus drei Zeichen mit folgendem Punkt und kein Leerzeichen oder irgendeines bearbeiten, so daß aus J.|B.C."und aus "J.|B. C." das wird: "J.|B.|C.".
Viele Grüße Martin
(Dieser Beitrag wurde von Martin Fischer am 14. Nov 2007, 16:20 geändert)
Der GREP-Ausdruck findet also einen Punkt, wenn vorher eine Wortgrenze \b und ein oder zwei Buchstaben [\l\u] stehen (aufgedröselt in zwei Look behind ?<= mit Oder-Verknüpfung |) UND nachher (Look ahead ?=) ein oder zwei Buchstaben [\l\u]{1,2} und ein Punkt \. folgen. Die Gruppe {1,2} funktioniert im Look behind nicht, deshalb die Aufteilung mit «oder».
Bei meinem Test hat’s funktioniert: u.a. z.B. e.g. A.B.C. J.Ch. usw. Bei J.Chr. (drei Buchstaben) müsste der GREP-Ausdruck angepasst werden (zusätzliche ODER-Schleife im Look behind und {1,3} im Look ahead).
Gruss Marco
@Peter: (?<=\u)\.(?=\u\.) works well with uppercase letters only (A.B.C.), but not for u.a., e.g., z.B., J.Ch. etc.
(Dieser Beitrag wurde von Marco Morgenthaler am 14. Nov 2007, 17:16 geändert)
das läuft prima! Habe noch eine kleine Änderung eingefügt: "[ ~s~S~<]?" hinter den ersten Punkt. Manchmal steht zwischen den Abkürzungen kein Leerraum und manchmal ist einer drin.
Eine Sache macht mich noch etwas nervös: der Ändernausdruck ".^<" Verflixt, die Lösung kommt beim Schreiben: im Suchenausdruck ist praktisch alles außer dem Punkt in lookbefore und lookbehind. Das ist ja raffiniert. Ich glaub’, ich lerne GREP. ;-)
Peter, I didn't take time yet to dig me deeper into your ShortCut, as you can see. Sorry about that. :-(
Viele Grüße Martin
(Dieser Beitrag wurde von Martin Fischer am 14. Nov 2007, 21:12 geändert)
FWIW: Auch mit meiner französischen Version von InDesign CS3 dasselbe Problem: Mit "\s" wird nur der normale Leerraum gefunden. Aber nicht Geviert, Halbgeviert usw.
Doch immerhin – wie von Peter erwähnt – ein Return. Und auch: Shift-Return, Tabulator und Zeilenspalter.
Damit wird ein Divis/Bindestrich nach einem Leerzeichen, einer öffnenden Klammer ( oder [ durch einen geschützten Viertelgeviertstrich ersetzt. Dasselbe gibt bei einem Divis vor einem Leerzeichen und einer schließenden Klammer. Ausnahme 1: Vor und nach dem Divis steht ein Leerzeichen (soll kein gesch. Viertelgeviertstrich werden, sondern ein Halbgeviertstrich). Ausnahme 2: Nach dem Divis steht ein Komma - just jetzt fällt mir ein, daß man auch für diesen Fall unterscheiden müßte, ob dem Divis ein Leerzeichen oder ein anderes Zeichen vorangeht; in ersterem Falle wäre es ein Halbgeviertstrich, im anderen ein Viertelgeviertstrich.
Hast Du ne Idee, wie man das in dieser Zeile noch einbinden könnte? ;-)
ist es möglich, daß sich dieser Fehler erst mit dem letzten Bugfix eingeschlichen hat? Ich meine mich dunkel daran zu erinnern, daß es früher mal so funktionierte, wie von Peter beschrieben.
Ich habe für die "Fachhefte grafische Industrie" zwei Artikel über die "regular expressions" von InDesign CS3 geschrieben. Die ersten Nachforschungen dafür machte ich anfangs Juni.
Im ersten Artikel – erschienen in der Nummer 4.2007 – schrieb ich "... währenddem mit dem \s (= alle Leerräume) auch Halbgevierte usw. gefunden werden."
Ich bin sicher, dass ich dieses Verhalten damals getestet hatte. Mit einem deutschen CS3, am Arbeitsplatz. Nur weiss ich die genaue Versionsnummer nicht mehr.
Jetzt habe ich hier auf dem Heimrechner die Partition hochgefahren, auf welcher ein deutsches CS3 installiert ist. Das Update auf 5.01 ist bei diesem noch nicht gemacht. In den Informationen steht CS3(5.0.0.463).
Doch wie beim französischen 5.01 werden Halbgevierte (usw.) nicht mehr gefunden.