hilfdirselbst.ch
Facebook Twitter gamper-media

Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign » GREP: Alle Leerräume

 

« « 1 2 » »  


Martin Fischer  M  p
Beiträge: 9696

14. Nov 2007, 09:22

Beitrag #1 von 21
Bewertung:

(12418 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP: Alle Leerräume


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?


Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch
Top

pixxxelschubser S
Beiträge: 1145

14. Nov 2007, 10:16

Beitrag #2 von 21
Beitrag ID: #322283

Bewertung:

(12395 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP: Alle Leerräume


Hallo Martin,

ob dein Ausdruck alles findet - ich weiss es nicht.

Aber er sieht schön aus Sly


[~m~>~>~f~|~S~s~<~/~.~3~4~%\s]


viele Grüße
pixxxelschubser




Was wir wissen, ist ein Tropfen; was wir nicht wissen, ein Ozean.

Isaac Newton



als Antwort auf: [#322270] Top

Martin Fischer  M  p
Beiträge: 9696

14. Nov 2007, 10:33

Beitrag #3 von 21
Beitrag ID: #322288

Bewertung:

(12379 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP: Alle Leerräume


Hans-Jürgen,

so gefällt mir der Ausdruck schon recht gut.
Du hast Dir einige Mühe gegeben:

[red][~m[/red][#ff4400]~>~[/#][#ff6600]>~f[/#][#ff9900]~|[/#][#ffcc00]~S[/#][#ffe900]~s[/#][#ffcc00]~<[/#][#ff9900]~/~[/#][#ff6600].~3[/#][#ff4400]~4~[/#][red]%\s][/red]

;-)


Allerdings würde er mir in der schlichteren Art wie "\#" (= alle Leerräume) noch besser gefallen.


Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#322283] Top

pixxxelschubser S
Beiträge: 1145

14. Nov 2007, 10:46

Beitrag #4 von 21
Beitrag ID: #322291

Bewertung:

(12375 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP: Alle Leerräume


Martin

Antwort auf: Allerdings würde er mir in der schlichteren Art wie "\#" (= alle Leerräume) noch besser gefallen.


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



als Antwort auf: [#322288] Top

Marco Morgenthaler p
Beiträge: 2217

14. Nov 2007, 12:53

Beitrag #5 von 21
Beitrag ID: #322328

Bewertung:

(12347 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP: Alle Leerräume


Hallo Martin

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?

Gruss Marco

PS: Habe den Bug an Adobe weitergeleitet > http://www.adobe.com/...ex.cfm?name=wishform
iMac 3.06 GHz | 8 GB RAM | OS X 10.6.8 | Indesign 7.0.4 (CS5 Design Premium)

als Antwort auf: [#322291]

(Dieser Beitrag wurde von Marco Morgenthaler am 14. Nov 2007, 13:05 geändert)
Top

Marco Morgenthaler p
Beiträge: 2217

14. Nov 2007, 14:30

Beitrag #6 von 21
Beitrag ID: #322347

Bewertung:

(12313 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP: Alle Leerräume


Martin
Zitat Finde ich damit wirklich alle oder sind jemandem noch weitere bekannt?


Nach deinen eigenen Recherchen gibt es doch an die 30 Leerzeichen, vgl. http://www.hilfdirselbst.ch/..._P210345.html#210345

Jetzt bin ich gespant auf deinen neuen GREP-Ausdruck =;o)
iMac 3.06 GHz | 8 GB RAM | OS X 10.6.8 | Indesign 7.0.4 (CS5 Design Premium)

als Antwort auf: [#322270] Top

Martin Fischer  M  p
Beiträge: 9696

14. Nov 2007, 15:08

Beitrag #7 von 21
Beitrag ID: #322363

Bewertung:

(12299 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP: Alle Leerräume


Marco,

danke für Deinen Hinweis.
Du wirst lachen, auf diese Liste bin ich gestern in einem ganz anderen Zusammenhang gestoßen.


> Jetzt bin ich gespant auf deinen neuen GREP-Ausdruck =;o)

Ich glaube, ich laß da lieber mal Adobe ran.
"\s" sollte wirklich alle Leerräume ansprechen.


Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#322347] Top

Peter Kahrel p
Beiträge: 147

14. Nov 2007, 15:50

Beitrag #8 von 21
Beitrag ID: #322386

Bewertung:

(12284 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP: Alle Leerräume


Martin,

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

als Antwort auf: [#322363]

(Dieser Beitrag wurde von Peter Kahrel am 14. Nov 2007, 15:52 geändert)
Top

pixxxelschubser S
Beiträge: 1145

14. Nov 2007, 15:57

Beitrag #9 von 21
Beitrag ID: #322391

Bewertung:

(12280 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP: Alle Leerräume


Hallo Martin,

Zitat Allerdings würde er mir in der schlichteren Art wie "\#" (= alle Leerräume) noch besser gefallen.

Mit dem Suchergebnis könnte man alle Arten von Leerzeichen durch einen Wortabstand ersetzen. Gibt es noch andere Verwendungsmöglichkeiten?


viele Grüße
pixxxelschubser




Was wir wissen, ist ein Tropfen; was wir nicht wissen, ein Ozean.

Isaac Newton



als Antwort auf: [#322288] Top

Martin Fischer  M  p
Beiträge: 9696

14. Nov 2007, 16:10

Beitrag #10 von 21
Beitrag ID: #322398

Bewertung:

(12275 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP: Alle Leerräume


Peter,

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.", ...)

Code
grep	{findWhat:"\\<([\\u\\l]{1,2}\\.)[~m~>~>~f~|~S~s~<~/~.~3~4~%\\s]?([\\u\\l]{1, 2}\\.)"}	{changeTo:"$1~<$2"}	{includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}	z. B. -> z.B.; z. Fs. -> z.Fs. 
grep {findWhat:"(\\u{1,2}\\.)[~m~>~>~f~|~S~s~<~/~.~3~4~%\\s]?([\\u\\l]{1, 2}\\.)[~m~>~>~f~|~S~s~<~/~.~3~4~%\\s]?([\\u\\l]{1, 2}\\.)"} {changeTo:"$1~<$2~<$3"} {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false} H. L. J. -> H.L.J.


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.


Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#322386]

(Dieser Beitrag wurde von Martin Fischer am 14. Nov 2007, 16:16 geändert)
Top

Martin Fischer  M  p
Beiträge: 9696

14. Nov 2007, 16:14

Beitrag #11 von 21
Beitrag ID: #322400

Bewertung:

(12271 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP: Alle Leerräume


Hans-Jürgen,

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.".


Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#322391]

(Dieser Beitrag wurde von Martin Fischer am 14. Nov 2007, 16:20 geändert)
Top

Peter Kahrel p
Beiträge: 147

14. Nov 2007, 16:51

Beitrag #12 von 21
Beitrag ID: #322408

Bewertung:

(12253 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP: Alle Leerräume


Martin,

Maybe I don't understand you properly, but you could insert those spaces with just one expression:

find: (?<=\u)\.(?=\u\.)
replace: .&#8201;~<

Peter

als Antwort auf: [#322400] Top

Martin Fischer  M  p
Beiträge: 9696

14. Nov 2007, 16:57

Beitrag #13 von 21
Beitrag ID: #322410

Bewertung:

(12250 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP: Alle Leerräume


Peter,

oh!
I will give it a try.
But first I have to ride my scooter (thru the snow).

Thanks
Martin

als Antwort auf: [#322408] Top

Peter Kahrel p
Beiträge: 147

14. Nov 2007, 17:01

Beitrag #14 von 21
Beitrag ID: #322413

Bewertung:

(12246 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP: Alle Leerräume


That replace expression should be jus .~< (I don't know where that unicode value came from).

Peter

als Antwort auf: [#322410] Top

Marco Morgenthaler p
Beiträge: 2217

14. Nov 2007, 17:01

Beitrag #15 von 21
Beitrag ID: #322414

Bewertung:

(12244 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP: Alle Leerräume


Hallo Martin

Deine Vorgaben sollten durch folgenden GREP-Ausdruck erfüllt sein:

Suchen nach: ((?<=\b[\l\u])|(?<=\b[\l\u]{2}))\.(?=[\l\u]{1, 2}\.)
Ändern in: .~<

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.
iMac 3.06 GHz | 8 GB RAM | OS X 10.6.8 | Indesign 7.0.4 (CS5 Design Premium)

als Antwort auf: [#322400]

(Dieser Beitrag wurde von Marco Morgenthaler am 14. Nov 2007, 17:16 geändert)
Top
« « 1 2 » »  


Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign » GREP: Alle Leerräume


^