hilfdirselbst.ch
Facebook Twitter gamper-media
chhruschka
Beiträge: 46
25. Sep 2013, 12:55
Beitrag #1 von 3
Bewertung:
(8689 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP suche nach Zeilenende (automatischer Umbruch, nichts manuelles)


Hallo,
ich würde gerne bei Text, der durch eine fette Unterstreichungslinie unterlegt ist, vermeiden, dass der letzte Leerraum auch unterstrichen wird.
Habe hierzu ein Zeichenformat "nicht unterstrichen" angelegt und würde am liebsten per Grep nach "Leerzeichen+Zeilenende" suchen.
Das gibt es aber nicht, oder ich habs nicht gefunden. (eigentlich gibt es doch alles bei Grep...)
Das Problem ist immer, dass bei linksbündigem und zentriertem Text die letzten Zeichen unterstrichen sind, dieser optische Abstand fehlt aber am Zeilenanfang.
Dies Thema bewegt mich schon ewig, weil wir die Unterstreichungsoption gerne mal für Unterlegungen verwenden. Nun will dich dem Problem mit Grep zu Leibe rücken.
Wer kann helfen?
Christian
Top
 
X
Gerald Singelmann  M  p
Beiträge: 6178
25. Sep 2013, 17:39
Beitrag #2 von 3
Beitrag ID: #517761
Bewertung:
(8612 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP suche nach Zeilenende (automatischer Umbruch, nichts manuelles)


grep arbeitet mit dem Inhalt des Textes. Eine Absatzschaltung gehört zum Inhalt. Der Umbruch aber nicht. Ein Zeilenende ist kein Zeichen, nach dem man suchen könnte. Also geht das nicht mit grep.

Ein Script könnte helfen...

Code
#target indesign 
if (app.documents.length != 0){
if (app.selection.length == 1){
var s = app.selection[0].constructor.name;
switch (app.selection[0].constructor.name){
case "Text":
case "InsertionPoint":
case "Character":
case "Word":
case "Line":
case "TextStyleRange":
case "TextColumn":
case "Paragraph":
app.select( app.selection[0].parentTextFrames[0] );
main();
break;
case "TextFrame":
main();
break;
default:
}
}
else{
}
}
else{
}


function main() {
var tf = app.selection[0];
var story = tf.parentStory;
var lines = story.lines.everyItem().getElements();
for ( var n = lines.length-1; n >= 0; n--) {
if (lines[n].characters.lastItem().contents == " ") {
lines[n].characters.lastItem().underline = false;
}
}
}


Es erwartet, dass Text markiert ist und ändert alle Zeilen im Textfluss.

Da ist ne Menge Optimierungsotential, zum Beispiel vorher alle Leerzeichen, die nicht unterstrichen sind, wieder unterstreichen. Damit könnten Umbruchänderungen aufgefangen werden.

Aber zum Test erst mal nur die einfache Version.

--------------------------

InDesign-Wissen und Automatisierung nicht nur rund um die Suite.

http://www.cuppascript.com
als Antwort auf: [#517747] Top
 
chhruschka
Beiträge: 46
26. Sep 2013, 13:43
Beitrag #3 von 3
Beitrag ID: #517792
Bewertung:
(8532 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP suche nach Zeilenende (automatischer Umbruch, nichts manuelles)


Hi Gerald,
ist keine automatische GREP-Geschichte, funktioniert aber auch tadellos, das kann ich ja auf die Schnelle durchlaufen lassen, wenn die Texte stehen.
Dass ein Zeilenende nicht gefunden werden kann hatte ich befürchtet.
Vielen Dank dafür,
Christian
als Antwort auf: [#517761] Top