[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Doppelte Leerzeichen ersetzen (CS6, Win7)

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

Doppelte Leerzeichen ersetzen (CS6, Win7)

cwenet
Beiträge gesamt: 966

13. Jun 2014, 19:40
Beitrag # 1 von 14
Bewertung:
(7163 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Tag,

ich möchte doppelte Leerzeichen durch ein einzelnes Leerzeichen ersetzen.

Das habe ich bisher immer mit findchangebylist gemacht:
Code
grep	{findWhat:"  +"}	{changeTo:" "} 
grep {findWhat:"\\x{20}+$"} {changeTo:""} //Leerzeichen am Absatzende. Hier befindliche Indexmarken gehen auch verloren


Das Problem:
Wenn sich zwischen den beiden Leerzeichen eine Indexmarke befindet, wird diese ebenfalls gelöscht. Das ist natürlich gefährlich. Indesign darf doch diese Zeichenfolge [Leer][Indexmarke][Leer] bei einer Suche nach [Leer][Leer] nicht einfach löschen?

Nun suche ich einen Weg per eigenem Suchen und Ersetzen Script diese Indexmarken zu berücksichtigt.

Über Hilfe freue ich mich.
Kleines Demo-Dok anbei.

Gruss
Christoph

Anhang:
leerzeichen.idml (29.7 KB)
X

Doppelte Leerzeichen ersetzen (CS6, Win7)

pixxxelschubser
Beiträge gesamt: 1634

13. Jun 2014, 20:05
Beitrag # 2 von 14
Beitrag ID: #528428
Bewertung:
(7145 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
IMHO sind Indexmarker etc. nicht so einfach und umfassend per Grep greifbar (das funktioniert ausnahmsweise wesentlich einfacher und besser mit der Textsuche).

Deshalb würde ich in deinem Fall vielleicht eher findText ^w^w versuchen. Das sollte eigentlich die Indexmarker und ähnliche Zeichen unangetastet lassen.

Und falls du die Marker mit finden möchtest, dann funktioniert ^w<FEFF>^w genausogut. Nur mit dem Ersetzen wird dann wieder eine „Zweischritttechnik“ nötig. (Und wirf mal hier die Forensuche nach FEFF an, vielleicht bekommst du dann noch andere Alternativen.)



Wink
Viele Grüße
pixxxelschubser




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

Isaac Newton




als Antwort auf: [#528426]

Doppelte Leerzeichen ersetzen (CS6, Win7)

cwenet
Beiträge gesamt: 966

13. Jun 2014, 20:23
Beitrag # 3 von 14
Beitrag ID: #528429
Bewertung:
(7135 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo pixxxelschubser,

danke fürs antworten.

Der Suchstring ^w^w findet leider auch dieses Vorkommen [leer][index][leer] und löscht dann den Index mit.

Ich bin wieter auf der Suche nach einer "Zweischritttechnik".

Grüße
Christoph


als Antwort auf: [#528428]

Doppelte Leerzeichen ersetzen (CS6, Win7)

gfellenz
Beiträge gesamt: 119

14. Jun 2014, 15:56
Beitrag # 4 von 14
Beitrag ID: #528439
Bewertung:
(7044 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich habe mal 2010 in meinem Blog darüber einen längeren Beitrag gehabt.

http://www.indesignblog.com/...ace-serachreplace-2/

Das dort vorgestellte Skript ist aber nicht mehr ganz aktuell. Habe zufällig auf der Pubkon heute das gleiche Problem angesprochen. Das Skript von der Pubkon ist hier zu finden:

http://www.publishingx.de/...d/TextBereinigen.jsx
--
Grüße aus Köln,
Gregor Fellenz
http://www.indesignblog.com


als Antwort auf: [#528429]

Doppelte Leerzeichen ersetzen (CS6, Win7)

cwenet
Beiträge gesamt: 966

14. Jun 2014, 16:09
Beitrag # 5 von 14
Beitrag ID: #528441
Bewertung:
(7038 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Lieber Gregor Fellenz,

vielen Dank für das Script und den Beitrag dazu.

So klappt es prima.

Grüße
Christoph


als Antwort auf: [#528439]

Doppelte Leerzeichen ersetzen (CS6, Win7)

cwenet
Beiträge gesamt: 966

10. Jul 2014, 19:55
Beitrag # 6 von 14
Beitrag ID: #529603
Bewertung:
(6805 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Tag,

ich muss nochmals nachfragen bezüglich diesen Zeilen:

Code
	// Leerzeichen am Zeilenende löschen 
app.findGrepPreferences.findWhat = " +$";
if (replaceObject.characters.length > 0) fixHSpace(replaceObject.findGrep(true));
else return;
// Leerzeichen am Zeilenanfang löschen
app.findGrepPreferences.findWhat = "^ +";
if (replaceObject.characters.length > 0) fixHSpace(replaceObject.findGrep(true));
else return;



Die Indexmarke bleibt erhalten. Das ist gut.
Es bleibt dennoch ein einziges Leerzeichen übrig.
Am Absatzende wäre es nicht so schlimm, aber am Absatzanfang ist es störend.

Der Suchstring "^ +" manuell angewendet (STRG+F) bereinigt alle Leerzeichen.
Dummerweise aber auch die Indexmarke.

Muss ich den Suchstring noch irgendwie anpassen?

Bitte um Hilfe.
Gruss
Christoph


als Antwort auf: [#528441]

Doppelte Leerzeichen ersetzen (CS6, Win7)

Kai Rübsamen
Beiträge gesamt: 4659

10. Jul 2014, 20:25
Beitrag # 7 von 14
Beitrag ID: #529606
Bewertung:
(6786 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

bei mir werden nur mehrere Leerstellen zu einer Leerstelle mit dem Skript zusammengefügt. Ich verstehe leider da nicht, was Gregor da zaubert.

Am besten schreibst du ihm eine PM und schilderst dein Problem direkt.

Gruß Kai Rübsamen


als Antwort auf: [#529603]

Doppelte Leerzeichen ersetzen (CS6, Win7)

gfellenz
Beiträge gesamt: 119

11. Jul 2014, 16:09
Beitrag # 8 von 14
Beitrag ID: #529648
Bewertung:
(6710 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wenigstens einer testet mal die Skripte :-)

Den Suchstring kann man nicht anpassen. Das Problem beim normalen Ersetzen in InDesign ist ja genau dass z.B. die Indexmarken stillschweigend rausgelöscht werden. Daher auch die Motivation für das Skript.

Das Zeichen blieb übrig, weil die Funktion fixHSpace() ursrprünglich mal dazu gedacht war Textstellen mit mehreren Leerräumen zu einer zu vereinheitlichen.

Ich habe es mal angepasst.

http://www.publishingx.de/download/TextBereinigen.jsx

Ein schönes Wochenende.
--
Grüße aus Köln,
Gregor Fellenz
http://www.indesignblog.com


als Antwort auf: [#529603]

Doppelte Leerzeichen ersetzen (CS6, Win7)

gfellenz
Beiträge gesamt: 119

11. Jul 2014, 16:11
Beitrag # 9 von 14
Beitrag ID: #529649
Bewertung:
(6708 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kai,

der Trick bei dem Skript ist, dass die komplette Suchstelle Zeichen für Zeichen analysiert wird. Indexmarken und andere von der Suche ignorierten Steuerzeichen werden ignoriert und das Zeichen mit der höchsten Wertigkeit (meine persönliche Einschätzung) bleibt erhalten.

Performance ist leider bescheiden, aber ich sehe keine andere Möglichkeit.
--
Grüße aus Köln,
Gregor Fellenz
http://www.indesignblog.com


als Antwort auf: [#529606]

Doppelte Leerzeichen ersetzen (CS6, Win7)

cwenet
Beiträge gesamt: 966

12. Jul 2014, 10:02
Beitrag # 10 von 14
Beitrag ID: #529662
Bewertung:
(6622 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen lieben Dank Gregor,

so klappt es mit den Leerzeichen am Anfnag und Ende eines Absatzes.

Was mir nicht gelingen will, ist das Abschalten für mehrfache Tabulatoren:

Code
    // Mehrfach gesetzte Tabulatoren löschen 
app.findGrepPreferences.findWhat = "(?<=\\t)\\t+";
if (replaceObject.characters.length > 0) fixHSpace(replaceObject.findGrep(false), false);
else return;


Ich habe hier versucht beide Schalter auf "false" zu setzen.
Aber leider werden aller Tabulatoren auf 1 reduziert.

Wo muss ich hier eingreifen, dass Tabulatoren unberührt bleiben?

Danke und Gruß
Christoph


als Antwort auf: [#529649]

Doppelte Leerzeichen ersetzen (CS6, Win7)

gfellenz
Beiträge gesamt: 119

12. Jul 2014, 12:29
Beitrag # 11 von 14
Beitrag ID: #529663
Bewertung:
(6595 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Einfach die betreffenden Zeilen auskommentieren!
--
Grüße aus Köln,
Gregor Fellenz
http://www.indesignblog.com


als Antwort auf: [#529662]

Doppelte Leerzeichen ersetzen (CS6, Win7)

cwenet
Beiträge gesamt: 966

12. Jul 2014, 12:53
Beitrag # 12 von 14
Beitrag ID: #529665
Bewertung:
(6588 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
ich merke gerade, dass dieser Grep verantwortlich für die Tabulatoren ist:

Code
app.findGrepPreferences.findWhat = "\\h{2,}"; 


Hiermit müsste es gehen:

Code
app.findGrepPreferences.findWhat = "  +"; 


Grüße
Christoph


als Antwort auf: [#529663]

Doppelte Leerzeichen ersetzen (CS6, Win7)

Kai Rübsamen
Beiträge gesamt: 4659

12. Jul 2014, 15:21
Beitrag # 13 von 14
Beitrag ID: #529669
Bewertung:
(6539 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Gregor,

danke fürs Anpassen und die Erklärung. Das mit der Performance fällt mir als Grafiker zumindest bei einer Seite nicht auf. Wenn das die einzigste Möglichkeit ist, ist das halt so.

Ich habe das Skript jetzt so verstanden, das in in der Funktion cleanHorizontalSpace() die eigentlichen Whitespacezeichen gesucht werden, um sie dann mit fixHSpace() noch mal genauer unter die Lupe zu nehmen.

@ Christoph:

Tabulatoren werden 2x gefunden:
app.findGrepPreferences.findWhat = "\\h{2,}"; und
app.findGrepPreferences.findWhat = "(?<=\\t)\\t+";

Ich würde den letzten auskommentieren und dann statt \\h eher \\x20 verwenden. Damit findest du dann aber auch keine doppelten geschützten Leerräume mehr.

Gruß Kai Rübsamen


als Antwort auf: [#529665]

Doppelte Leerzeichen ersetzen (CS6, Win7)

cwenet
Beiträge gesamt: 966

14. Jul 2014, 19:25
Beitrag # 14 von 14
Beitrag ID: #529738
Bewertung:
(6401 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen Dank,

so ist es prima.

Schönen Abend
Christoph


als Antwort auf: [#529669]
X

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
27.01.2021 - 28.01.2021

Digicomp Academy AG, Bern oder Basel
Mittwoch, 27. Jan. 2021, 08.30 Uhr - Donnerstag, 28. Jan. 2021, 17.00 Uhr

Kurs

Mit After Effects können Sie visuelle Effekte und Animationen für Video, Web, DVD und Blu-Ray erzeugen. In diesem Kurs lernen Sie die Grundlagen kennen und sehen inspirierende Anwendungsbeispiele, die Ihnen helfen, Ihre eigenen Ideen umzusetzen.

Preis: CHF 1'700.-
Dauer: 2 Tage

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/AFT

Veranstaltungen
01.02.2021 - 02.02.2021

Digicomp Academy AG, Zürich oder virtuell
Montag, 01. Feb. 2021, 08.30 Uhr - Dienstag, 02. Feb. 2021, 17.00 Uhr

Kurs

In diesem Basic-Kurs lernen Sie das Wichtigste über den Aufbau und die Funktionsweise von Photoshop. Zusammen mit den notwendigen Grundlagen von Farbenlehre bis Bildauflösung lernen Sie zudem die kreativen Möglichkeiten von Photoshop kennen.

Dauer: 2 Tage
Preis: CHF 1'400.–

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/PHOTM1

Neuste Foreneinträge


Summewenn Funktion in Filemaker

Videos ausschneiden/zusammenfügen

Hyperlink aus PDF werden nicht erkannt

Feld in Acrobat vor Berechnung leer lassen

Gleich Große Icons erstellen

InDesign Datei mit Kurzgeschichten in einem Rahmen auf mehrere Dateien aufteilen

Text- oder Grafikrahmen nach Position und Größe suchen und ändern

Absätze vor/nach AF suchen

Laser Drucker druckt schwarze Flecken Links und Rechts von Blatt

PSD CS6 (!) Mac: Dialog "Dateiinformationen" Fenster leer und Sackgasse
medienjobs