Connect failed: Connection timed out

[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt GREP: Zahl und Einheit spationieren für Fortgeschrittene (oder Theoretiker)

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

GREP: Zahl und Einheit spationieren für Fortgeschrittene (oder Theoretiker)

Bastian
Beiträge gesamt: 14

24. Nov 2017, 15:46
Beitrag # 1 von 6
Bewertung:
(6659 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Liebe Leser,

ich probiere gerade, eine einigermaßen "sorgenfreie" GREP-Suche zu erstellen, um Zahlen und Einheiten mit einem Achtelgeviert zu spationieren.

Dabei möchte ich diese Abfolgen finden:
100mm
100 mm

aber diese hier nicht (damit ich sie nicht immer und immer wieder finde):
100[achtelgeviert]mm

Vereinfacht sieht das Muster aktuell so aus:

Suchen: (\d+)(?<!~<) ?(?=mm\>)
Ersetzen: $1~<

Also:
– (\d+) such nach einer oder mehr Ziffern (als Suchgruppe)
– (?<!~<) hör auf wenn schon ein Achtelgeviert da ist
– ? ein Space oder keiner
– (?=mm\>) schau ob danach eine Einheit folgt (im Beispiel nur mal die mm drin, sind natürlich mehr als das)
– $1~< ersetze die gefundene Zahl und häng ein Achtelgeviert an

Das funktioniert auch bestens, und ich finde nicht ständig schon "erledigte" Fälle (wie wenn ich nach \s suchen würde).




"Schönheitsfehler" an der Sache ist, dass ich die Zahl mit suche und dann wieder mit sich selbst ersetze.

Schöne fände ich eine dieser Suchstrings:
(?<=\d)(?<!~<) ?(?=mm\>) oder
(?<=\d(?<!~<)) ?(?=mm\>)

Es stellt die Ziffer auch in einen Lookahead, schließt dann (geklammert oder in Serie) ein möglicherweise vorhandenes Achtelgeviert aus und schaue nach ob eine Einheit folgt.

Die Suche funkioniert auch – es findet die Stelle zwischen 100 und mm und markiert diese (also sogar das "nichts" in "100mm"), wenn da ein Space drin ist oder keiner (aber nicht beim Achtelgeviert).
Allerdings klappt das Einfügen nur beim Fall "100 mm", aber nicht bei "100mm" ... d.h. beim Klick auf "Suchen" wird das Nichts zwischen 100mm gefunden, aber beim Klick auf "Ersetzen" wird dann nichts ersetzt.

Gibt's dafür eine Lösung oder kann man einfach nicht "Nichts durch Etwas" in Indesign ersetzen?

Vielen Dank für jede Idee
Bastian
X

GREP: Zahl und Einheit spationieren für Fortgeschrittene (oder Theoretiker)

Kai Rübsamen
Beiträge gesamt: 4684

24. Nov 2017, 19:06
Beitrag # 2 von 6
Beitrag ID: #560984
Bewertung:
(6640 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Gibt's dafür eine Lösung oder kann man einfach nicht "Nichts durch Etwas" in Indesign ersetzen?

Letzteres ist der Fall.


als Antwort auf: [#560969]

GREP: Zahl und Einheit spationieren für Fortgeschrittene (oder Theoretiker)

NEU!
Beiträge gesamt: 180

21. Dez 2017, 17:49
Beitrag # 3 von 6
Beitrag ID: #561563
Bewertung:
(5455 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wie wäre es mit einem GREP, welches das Absatzformat permanent überwacht/korrigiert?

Ich habe grad kein InDesign zu Hand, kanns aber morgen nachreichen, vom Ablauf her:

Finde die Stelle, dreen positives LookAhead "mm" findet und deren positiv LookBehind eine Zahl beliebiger Länge findet. Dieser Leerstelle weist du ein Zeichenformat zu, welches nur die Spationierung enthält.
123mm wird optisch zu 123 mm.

Dazu dann noch ins Absatzformat den Fall: Finde Zahl beliebiger länge mit positivem LookAhead "mm" und wende ZF Spationierung an.

Oder muss das zwingend per Suchen/Ersetzen gemacht werden, weil zB kein Absatzformat verwendet werden kann?


als Antwort auf: [#560984]

GREP: Zahl und Einheit spationieren für Fortgeschrittene (oder Theoretiker)

Uwe Laubender
Beiträge gesamt: 5316

22. Dez 2017, 00:17
Beitrag # 4 von 6
Beitrag ID: #561565
Bewertung:
(5434 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jan,

aus meiner Erinnerung:

Exotische Alternative 1:
Wir hatten mal vor Jahren den Fall, da konnte einem Zeichenformat eine Unterschneidung als Eigenschaft mitgegeben werden. War damals in CS3. Das müsste nach wie vor über ein paar Tricks mit dem Editieren von IDMS-Schnipseln gehen, wird aber seit CS5 nicht mehr von der Benutzeroberfläche unterstützt.

Dann wäre das per GREP-Stil kein Problem. Ganz ohne Skripting.

Hier zwei Fundstellen von 2014:
https://www.hilfdirselbst.ch/..._P523179.html#523179

https://www.hilfdirselbst.ch/..._P523209.html#523209

Exotische Alternative 2:
Eigener Font mit dem Zeichen "m" bauen, das eine große Vorbreite hat. Lizenzrechte am Font vorausgesetzt, wäre das sogar mit der kostenlosen Version von Jongwares/Marc Autrets Skript IndyFont machbar und könnte per GREP-Stil angewendet werden.


als Antwort auf: [#561563]

GREP: Zahl und Einheit spationieren für Fortgeschrittene (oder Theoretiker)

NEU!
Beiträge gesamt: 180

22. Dez 2017, 08:56
Beitrag # 5 von 6
Beitrag ID: #561567
Bewertung:
(5413 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Bastian,

habe es kurz zusammengeklickt und es funzt ganz gut. Leider kann ich dir per PM keine Datei schicken, weil das Limit für Gratisuser unsinnigerweise bei 300kb liegt und ich eine leere InDesign-Datei nicht unter 0.8mb zippen kann, …dann halt ausgeschrieben:

Ein Absatzformat durch folgende zwei GREPS ergänzen:

\d(?=(mm|cm|m))
Zeichenformat: Spationierung+100

(?<=\d) (?=(mm|cm|mm))
Zeichenformat: Spationierung-98


als Antwort auf: [#560969]

GREP: Zahl und Einheit spationieren für Fortgeschrittene (oder Theoretiker)

Bastian
Beiträge gesamt: 14

22. Dez 2017, 10:40
Beitrag # 6 von 6
Beitrag ID: #561569
Bewertung:
(5397 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Besten Dank für die Ideen.

Über eine GREP-Formatierung hatte ich auch schon nachgedacht und (ganz ähnlich wie vorgeschlagen) eingesetzt.

Das Problem dabei ist, dass die Texte aus den Dokumenten um die es geht potentiell dann auch in anderen Sekundär-Dokumenten wiederverwertet werden, und wir haben dort nicht immer die Kontrolle darüber, ob die Formate immer richtig verwendet werden (außer Haus, komplizierte Kunden).
D.h. alles was nicht "in handfesten Zeichen" im Text ist, fliegt potentiell durch Bedienfehler und Unwissen wieder raus und der Kunde beklagt sich dann, dass unsere Lösung "unpraktisch" wäre ...

Wir machen es aktuell als mit Suchen/Ersetzen und Fundgruppen/$#-Ersetzungen, das klappt ja auch.


als Antwort auf: [#561567]
(Dieser Beitrag wurde von Bastian am 22. Dez 2017, 10:41 geändert)
X