[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: 977

13. Jun 2014, 19:40
Beitrag # 1 von 14
Bewertung:
(7176 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: 1643

13. Jun 2014, 20:05
Beitrag # 2 von 14
Beitrag ID: #528428
Bewertung:
(7158 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: 977

13. Jun 2014, 20:23
Beitrag # 3 von 14
Beitrag ID: #528429
Bewertung:
(7148 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:
(7057 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: 977

14. Jun 2014, 16:09
Beitrag # 5 von 14
Beitrag ID: #528441
Bewertung:
(7051 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: 977

10. Jul 2014, 19:55
Beitrag # 6 von 14
Beitrag ID: #529603
Bewertung:
(6818 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: 4660

10. Jul 2014, 20:25
Beitrag # 7 von 14
Beitrag ID: #529606
Bewertung:
(6799 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:
(6723 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:
(6721 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: 977

12. Jul 2014, 10:02
Beitrag # 10 von 14
Beitrag ID: #529662
Bewertung:
(6635 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:
(6608 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: 977

12. Jul 2014, 12:53
Beitrag # 12 von 14
Beitrag ID: #529665
Bewertung:
(6601 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: 4660

12. Jul 2014, 15:21
Beitrag # 13 von 14
Beitrag ID: #529669
Bewertung:
(6552 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: 977

14. Jul 2014, 19:25
Beitrag # 14 von 14
Beitrag ID: #529738
Bewertung:
(6414 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
05.02.2021 - 05.11.2021

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Freitag, 05. Feb. 2021, 13.00 Uhr - Freitag, 05. Nov. 2021, 17.00 Uhr

Lehrgang

Bilden Sie sich zum zertifizierten Publishing-Multimedia-Profi aus. Neben Fotografie und Video befassen Sie sich mit der Medienproduktion, digitalen Publikationen und dem Webdesign für Desktop- und mobile Endgeräte.

Preis: CHF 10'500.-
Dauer: 30 Tage (ca. 210 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt

Ja

Organisator: Digicomp Academy AG

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

digicomp.ch/d/9PM

Veranstaltungen
01.03.2021 - 05.03.2021

Persönlichkeitsentwicklung

Online
Montag, 01. März 2021, 00.17 Uhr - Freitag, 05. März 2021, 00.18 Uhr

Webinar

Personal Power Coaching - Um was geht es? ​ Potenzialentfaltung: Potenzial entdecken und entfalten Talente entdecken: Deine Talente und Fähigkeiten erkennen und loslegen Gewohnheiten: schlechte Gewohnheiten durch Positive ersetzen Selbstbewusstsein stärken: Dein Bewusstsein stärken Eigendynamik entwickeln: Mehr Erfolg durch Eigenverantwortung & Disziplin Ängste kontrollieren: Ängste als Antrieb nutzen Entscheidungen treffen: Mit mehr Mut an die Sache ran! Lebensenergie steigern: Deine Lebensenergie steigern und aufrechterhalten Ziele erreichen: Ziele setzen und übertreffen! Motivationssteigerung: Mehr Erfolg durch Selbstmotivation Selbstvertrauen: Selbstvertrauen auf- und ausbauen

Details:
https://www.snfa.ch/swiss-personal-power-birolisik

Ja

Organisator: Birol Isik

Kontaktinformation: Birol Isik, E-Mailinfo AT snfa DOT ch

https://www.snfa.ch/swiss-personal-power-birolisik

Neuste Foreneinträge


Scriptphänomen alle 16 Steps

Objekte in Texten lassen sich nicht mehr mit Maus auswählen, nurnoch als Text mit Cursor

Welches Grafiktablett wofür?

Affinity Designer

Affinity Publisher 1.9

Optimierung doc2pdf-withPresets.jsx

Layout / Bildauflösung druckfertig anlegen

Alternative Acrobat Pro

Affinity Photo

Open CL-Berschleunigung
medienjobs