hilfdirselbst.ch
Facebook Twitter gamper-media

Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign » Einzelne Wörter in Zeile

 



tolgi
Beiträge: 20

25. Jun 2007, 20:42

Beitrag #1 von 15
Bewertung:

(10609 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Einzelne Wörter in Zeile


Hallo,
ich suche eine Methode einzelne Worte in Zeilen zu vermeiden.
Geht wahrscheinlich nicht oder?
Top

Ralf Hobirk p
Beiträge: 4602

25. Jun 2007, 21:29

Beitrag #2 von 15
Beitrag ID: #298806

Bewertung:

(10598 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Einzelne Wörter in Zeile


Vielleicht die Silbentrennung einschalten? Oder den Textrahmen verbreitern?

Oder verstehe ich deine Frage nicht? Spezifiziere dein Problem doch etwas genauer...

---
Sonnige Grüße aus Egypt Cool
Ralf
---
MacPro (1,1) 2x2,66 GHz, 10 GB | MacBook Pro 15" (8,2) 2,0 GHz, 8 GB | MacBook Pro 15" (4,1) 2,5 GHz, 6 GB | alle 10.6.8 | CS5 (ID 7.0.4)
El Gouna - Life as it should be!

als Antwort auf: [#298800] Top

Christoph Steffens  M 
Beiträge: 4599

25. Jun 2007, 21:33

Beitrag #3 von 15
Beitrag ID: #298808

Bewertung:

(10596 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Einzelne Wörter in Zeile


Klar geht das: Schreib noch n paar rein...

Grüßle
Christoph Steffens

http://www.indesignusergroup.com/chapters/stuttgart/

als Antwort auf: [#298800] Top

Jochen Uebel I
Beiträge: 3180

25. Jun 2007, 22:14

Beitrag #4 von 15
Beitrag ID: #298814

Bewertung:

(10579 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Einzelne Wörter in Zeile


Antwort auf [ tolgi ] eine Methode einzelne Worte in Zeilen zu vermeiden.

In was für Zeilen? Flattersatz? Blocksatz? Letzte Zeilen eines Absatzes?

Gruß
Jochen F. Uebel

als Antwort auf: [#298800] Top

Martin Fischer  M  p
Beiträge: 9694

25. Jun 2007, 22:18

Beitrag #5 von 15
Beitrag ID: #298817

Bewertung:

(10575 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Einzelne Wörter in Zeile


Ich vermute, es geht tolgi darum, daß die letzte Zeile eines Absatzes mit mehr als einem Wort gefüllt ist. Und das ist eine durchaus ernstzunehmende Anfrage.

Eine globale Einstellung gibt es dafür nicht.

Manuell könnte man dies so lösen, indem man dem Leerzeichen vor dem letzten (alleinstehenden) Wort das Attribut "Kein Umbruch" zuweist.

Automatisch könnte das etwa mit einem Skript wie folgt gehen:

Code
// noSingleWordInLastLine.jsx 

if (app.selection.length == 0)
exit();
var myStory = app.selection[0].parentStory;
for (i = 0; i< myStory.paragraphs.length; i++)
{
if (myStory.paragraphs[i].lines.length > 1 && myStory.paragraphs[i].lines[-1].words.length == 1)
{
var myIndex = myStory.paragraphs[i].lines[-1].words[0].characters[0].index;
myStory.characters[myIndex-1].noBreak = true;
}
}


Das Skript setzt voraus, daß entweder ein Textrahmen oder Text markiert ist (der Cursor sich innerhalb von Text befindet). Es prüft jeweils Zahl der Wörter in der letzten Zeile jedes Absatzes. Steht ein Wort allein da, wird es über das Attribut "Kein Umbruch" an das vorangehende Wort gekettet.


Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#298808] Top

Peter Kahrel p
Beiträge: 147

25. Jun 2007, 22:48

Beitrag #6 von 15
Beitrag ID: #298823

Bewertung:

(10566 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Einzelne Wörter in Zeile


In CS3 könnte man das mit GREP erreichen:

Suchen: \s(?=[\w[:punct:]]+$)
Ersetzen mit: ~S

Dieser GREP ersetzt das Leerzeichen vor dem letzten Wort in jedem Absatz mit einem 'variable-width non-breaking space'. Martins methode ist vielleicht schöner, denn es affektiert nur die Absatzen die ein einzelnes Wort auf dem letzten Linie haben -- aber das Skript muss wiederhohlt werden wenn etwas geändert wird.

Peter

als Antwort auf: [#298817] Top

Martin Fischer  M  p
Beiträge: 9694

27. Jun 2007, 22:07

Beitrag #7 von 15
Beitrag ID: #299434

Bewertung:

(10454 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Einzelne Wörter in Zeile


Hi Peter,

danke für Deine GREP-Lösung, die funktioniert (sie ersetzt alle Leerzeichen vor dem letzten Wort eines Absatzes durch ein geschütztes Leerzeichen mit variabler Breite) und die zu verstehen ich mich gerade bemühte.

> Suchen: \s(?=[\w[:punct:]]+$)

\s - ein Leerzeichen
(?= - positive lookahead (prüft, was nach dem Zeichen kommt)
[\w[:punct:]] - beliebiges Zeichen oder [:punct:]
+ - Quantifizierer (eins oder mehrere)
$ - Zeilenende

Auf deutsch: ein Leerzeichen, nach dem eins oder merhere beliebige Zeichen oder ein/mehrere Punkte stehen, auf die das Zeilenende folgt.

Was ist "[:punct:]"?
Vermutlich ein Punkt.
Aber wie ist die Notation zu verstehen?


Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#298823] Top

Peter Kahrel p
Beiträge: 147

27. Jun 2007, 22:27

Beitrag #8 von 15
Beitrag ID: #299437

Bewertung:

(10446 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Einzelne Wörter in Zeile


Hallo Martin,

[[:punct:]] ist nicht 'punkt', sondern alle Satzzeichen (punkt, komma, alle Arten strichen, etc.), es ist ein sogenannter Posix, und also aine art Wildcard. Es muss immer wie ein 'character class' geschrieben werden, also wenn mann alle Satzzeichen finden woll, muss man [[:punct:]] benutzen.

Gruss,

Peter

als Antwort auf: [#299434] Top

Martin Fischer  M  p
Beiträge: 9694

27. Jun 2007, 22:35

Beitrag #9 von 15
Beitrag ID: #299439

Bewertung:

(10442 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Einzelne Wörter in Zeile


Ah, das ging aber schnell.

Danke für die erschöpfende Aufklärung.


Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#299437] Top

dima4ka
Beiträge: 51

18. Jun 2009, 20:24

Beitrag #10 von 15
Beitrag ID: #399599

Bewertung:

(6654 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Einzelne Wörter in Zeile


Antwort auf [ Martin Fischer ] Ich vermute, es geht tolgi darum, daß die letzte Zeile eines Absatzes mit mehr als einem Wort gefüllt ist. Und das ist eine durchaus ernstzunehmende Anfrage.

Eine globale Einstellung gibt es dafür nicht.

Manuell könnte man dies so lösen, indem man dem Leerzeichen vor dem letzten (alleinstehenden) Wort das Attribut "Kein Umbruch" zuweist.

Automatisch könnte das etwa mit einem Skript wie folgt gehen:

Code
// noSingleWordInLastLine.jsx 

if (app.selection.length == 0)
exit();
var myStory = app.selection[0].parentStory;
for (i = 0; i< myStory.paragraphs.length; i++)
{
if (myStory.paragraphs[i].lines.length > 1 && myStory.paragraphs[i].lines[-1].words.length == 1)
{
var myIndex = myStory.paragraphs[i].lines[-1].words[0].characters[0].index;
myStory.characters[myIndex-1].noBreak = true;
}
}


Das Skript setzt voraus, daß entweder ein Textrahmen oder Text markiert ist (der Cursor sich innerhalb von Text befindet). Es prüft jeweils Zahl der Wörter in der letzten Zeile jedes Absatzes. Steht ein Wort allein da, wird es über das Attribut "Kein Umbruch" an das vorangehende Wort gekettet.

es wäre super wenn noch die Funktion aktiv wäre, dass das letzte Wort nicht getrennt wird. also silbentrennung deaktivieren.

als Antwort auf: [#298817] Top

dima4ka
Beiträge: 51

18. Jun 2009, 21:07

Beitrag #11 von 15
Beitrag ID: #399603

Bewertung:

(6641 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Einzelne Wörter in Zeile


habe das so gelöst,
weiß aber nicht ob es korrekt ist, habe auch noch nie java gescriptet :)
aber scheint zu passen

Code
// noSingleWordInLastLine.jsx  

if (app.selection.length == 0)
exit();
var myStory = app.selection[0].parentStory;
for (i = 0; i< myStory.paragraphs.length; i++)
{
if (myStory.paragraphs[i].lines.length > 1 && myStory.paragraphs[i].lines[-1].words.length == 1)
{
var myIndex = myStory.paragraphs[i].lines[-1].words[0].characters[0].index;
myStory.characters[myIndex-1].noBreak = true;
}
{
var myIndex = myStory.paragraphs[i].lines[-1].words[0].characters[0].index;
myStory.characters[myIndex-0].hyphenation = false;
}
}



nach mehrmaligem testen, habe ich festgestellt, dass er den ganzen text ohne silbentrennung setzt.


was natürlich die Krönung dieses Scriptes wäre:
dass ich die letzten x-Zeichen (z.B. 10) als noBreak setzten könnte.
das wäre super

als Antwort auf: [#399599]

(Dieser Beitrag wurde von Martin Fischer am 19. Jun 2009, 10:42 geändert)
Top

Marco Morgenthaler p
Beiträge: 2217

19. Jun 2009, 10:41

Beitrag #12 von 15
Beitrag ID: #399659

Bewertung:

(6597 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Einzelne Wörter in Zeile


Hallo Dima

Peter Kahrels GREP lässt sich leicht anpassen, sodass das letzte Wort nicht getrennt wird (keine Silbentrennung), siehe Anhang.

Gruss, Marco
iMac 3.06 GHz | 8 GB RAM | OS X 10.6.8 | Indesign 7.0.4 (CS5 Design Premium)

als Antwort auf: [#399603]

(Dieser Beitrag wurde von Marco Morgenthaler am 19. Jun 2009, 10:41 geändert)
Top

Anhang:
Bild 2.png (51.5 KB)

dima4ka
Beiträge: 51

19. Jun 2009, 11:20

Beitrag #13 von 15
Beitrag ID: #399668

Bewertung:

(6573 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Einzelne Wörter in Zeile


Antwort auf [ Marco Morgenthaler ] Hallo Dima

Peter Kahrels GREP lässt sich leicht anpassen, sodass das letzte Wort nicht getrennt wird (keine Silbentrennung), siehe Anhang.

Gruss, Marco

da ich noch cs3 habe und die Grep nicht in die Absatzformate einbinden kann, wäre mir die scriptlösung besser. aber danke trotzdem!

als Antwort auf: [#399659] Top

Marco Morgenthaler p
Beiträge: 2217

19. Jun 2009, 11:43

Beitrag #14 von 15
Beitrag ID: #399674

Bewertung:

(6561 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Einzelne Wörter in Zeile


Lässt sich ein Skript in ein Absatzformat einbinden? Oder mach doch aus dem GREP ein Skript =;o)

[Edit]: Folgender GREP verhindert die Silbentrennung der letzten 10 Zeichen in einem Absatz (egal ob am Absatzende noch Leerzeichen stehen):

.{10}\s*$

Format ersetzen: Kein Umbruch
iMac 3.06 GHz | 8 GB RAM | OS X 10.6.8 | Indesign 7.0.4 (CS5 Design Premium)

als Antwort auf: [#399668]

(Dieser Beitrag wurde von Marco Morgenthaler am 19. Jun 2009, 11:55 geändert)
Top

dima4ka
Beiträge: 51

19. Jun 2009, 13:09

Beitrag #15 von 15
Beitrag ID: #399698

Bewertung:

(6518 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Einzelne Wörter in Zeile


Antwort auf [ Marco Morgenthaler ] Lässt sich ein Skript in ein Absatzformat einbinden? Oder mach doch aus dem GREP ein Skript =;o)

[Edit]: Folgender GREP verhindert die Silbentrennung der letzten 10 Zeichen in einem Absatz (egal ob am Absatzende noch Leerzeichen stehen):

.{10}\s*$

Format ersetzen: Kein Umbruch

wow danke, das funktioniert ja einwandfrei.

als Antwort auf: [#399674] Top


Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign » Einzelne Wörter in Zeile


^