hilfdirselbst.ch

Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » GREP - Trennstriche kontrollieren

 



Martin Fischer  M  p
Beiträge: 7744

17. Sep 2009, 17:11

Beitrag #1 von 13
Bewertung:

(2118 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP - Trennstriche kontrollieren


Die Ursprungsdiskussion stammt aus dem InDesign-Forum.

Die Ausgangsfrage von Elisa9 lautete:

Zitat von Elisa9 Liebes Forum,

ich habe einen 2-spaltigen Text gelayoutet und möchte nun mit der GREP-Funktion alle getrennten Wörter suchen, um zu kontrollieren, ob sie auch am richtigen Ort getrennt worden sind. (Dort wo es zwei Trennvarianten gibt, möchte ich nur an der neuen Stelle der Neuen Deutschen Rechtschreibung trennen.)

So habe ich mit GREP gesucht:
([\l\u]+)(~-)([\l\u]+)

und dann so ersetzt:
*$1-$3*

Danach wollte ich was zwischen den * steht rauskopieren, was zweimal vorkommt löschen und dann den Rest durchkontrollieren.

Ich habe aber gemerkt, dass ich auf diese Weise nur Wörter zu sehen bekomme, die ich mit Cmd+Shift+- trennen wollte. Auf dem Bildschirm sieht man an diesen Stellen einen horizontalen schwarzen Strich, der durch einen blauen vertikalen "durchgestrichen" ist. Trennungen, die der Computer selber anhand des Wörterbuchs eingesetzt hat, erhalte ich so nicht, und genau um diese geht es mir ja. Gibt es wohl einen Suchbegriff, der mir diese Trennungen findet? Auf dem Bildschirm sieht man einen schwarzen Trennstrich und darüber eine blaue Raute. Ich kann dieses Zeichen auch nicht markieren.

Ich bin froh um jeden Eurer Tipps und danke Euch schon dafür,
Elisa9



Die getrennten Wörter in einem Textabschnitt könntest Du etwa mit folgendem Skript ermitteln:

Code
if (app.selection.length == 0 || !app.selection[0].hasOwnProperty('baseline')) 
exit();

var s = app.selection[0];
var myStory = s.parentStory;
var myWords = new Array;

for ( var i = 0; i < myStory.lines.count(); i++ )
{
if (myStory.lines[i].insertionPoints.lastItem().words.length == 1)
myWords.push(myStory.lines[i].insertionPoints.lastItem().words.firstItem().contents)
}

if (myWords.length > 0)
alert('Getrennte Wörter:\r' + myWords.join('\r'))
else
alert('Keine getrennten Wörter gefunden!');


Platziere vor der Ausführung dieses Skripts den Cursor in dem Textabschnitt, der analysiert werden soll.

Dieses quick & dirty-Script nennt Dir nur die Wörter, die getrennt werden, zeigt aber nicht, wo sie getrennt werden. Das könnte man mit einer kleinen Erweiterung visualisieren.

Martin Fischer


(Dieser Beitrag wurde von Martin Fischer am 18. Sep 2009, 14:22 geändert)
Top

Martin Fischer  M  p
Beiträge: 7744

17. Sep 2009, 17:17

Beitrag #2 von 13
Bewertung:

(2111 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP - Trennstriche kontrollieren


> Das könnte man mit einer kleinen Erweiterung visualisieren.

Etwa so:

Code
if (app.selection.length == 0 || !app.selection[0].hasOwnProperty('baseline')) 
exit();

var s = app.selection[0];
var myStory = s.parentStory;
var myWords = new Array;

for ( var i = 0; i < myStory.lines.count(); i++ )
{
if (myStory.lines[i].insertionPoints.lastItem().words.length == 1)
{
var wordStart = myStory.lines[i].insertionPoints.lastItem().words.firstItem().characters.firstItem().index;
var wordEnd = myStory.lines[i].insertionPoints.lastItem().words.firstItem().characters.lastItem().index;
var hyphenPos = myStory.lines[i].insertionPoints.lastItem().index;
var myHWord = myStory.characters.itemByRange(wordStart, hyphenPos-1).contents + '-' + myStory.characters.itemByRange(hyphenPos, wordEnd).contents
myWords.push(myHWord)
}
}

if (myWords.length > 0)
alert('Getrennte Wörter:\r' + myWords.join('\r'))
else
alert('Keine getrennten Wörter gefunden!');


[edit]
Damit kann man z.B. auch herausfinden, dass auch Wörter im Übersatz getrennt werden (nach welchen Regeln auch immer, haben sie doch keinen begrenzenden Rahmen).
[/edit]


Dies ließe sich noch dahingehend erweitern, dass die gefundenen Begriffe in einer Palette klickbar dargestellt werden, so dass bei einem Klick auf einen Begriff die entsprechende Stelle herangezoomt wird. Aber das ist etwas für langweilige Winterabende. ;-)

Martin Fischer

als Antwort auf: [#408635]

(Dieser Beitrag wurde von Martin Fischer am 17. Sep 2009, 17:39 geändert)
Top

Martin Fischer  M  p
Beiträge: 7744

18. Sep 2009, 08:02

Beitrag #3 von 13
Bewertung:

(2031 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP - Trennstriche kontrollieren


Antwort auf: Dies ließe sich noch dahingehend erweitern, dass die gefundenen Begriffe in einer Palette klickbar dargestellt werden, so dass bei einem Klick auf einen Begriff die entsprechende Stelle herangezoomt wird.


In [CS4 Javascript] Silbentrennungen kontrollieren (Premium-Bereich) habe ich das Ergebnis einer vorläufige Skriptstudie veröffentlicht.

Das Skript findet in einem ausgewählten Textabschnitt (Textrahmen ausgewählt oder Cursor im Text platziert) getrennte Worte (genauer: Worte, die am Zeilenende auf die nächste Zeile umbrechen) und listet diese in einer Palette auf.

Dort sind die Trennstellen mit '-' visualisiert.
Per Klick auf einen Begriff in der Palette wird die Stelle herangezoomt, so dass dort bei Bedarf direkt eingegriffen werden kann. Alternativ kann die nächste/vorherige Stelle durch Pfeilnavigation in der aktiven Palette (hoch oder runter) angesprungen werden, so dass man sich etwa durch alle getrennten Worte navigieren kann.

Die aktuelle Version findet getrennte Worte im Text und in Fußnoten (letztere werden ggf. in einer separaten Spalte dargestellt).
Text in Tabellen wird (noch) nicht berücksichtigt.
Trennungen im Übersatz werden ausdrücklich ignoriert.

Die Palette aktualisiert sich nicht.
D.h. ein korrigierter Begriff wird in der Palette nicht in seiner geänderten Form gespiegelt.
Neue Silbentrennungen infolge von Trennkorrekturen oder Textänderungen werden nicht automatisch aufgenommen. Dazu muss das Skript erneut ausgeführt werden.

Die Palette lässt sich auf dem Monitor verschieben und über den Close-Button links oben schließen.

Martin Fischer

als Antwort auf: [#408640]

(Dieser Beitrag wurde von Martin Fischer am 18. Sep 2009, 08:45 geändert)
Top

Anhang:
hyphenCheck.JPG (167 KB)

Stephan_M p
Beiträge: 302

18. Sep 2009, 11:56

Beitrag #4 von 13
Bewertung:

(1983 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP - Trennstriche kontrollieren


Hi Martin, hallo Elisa

hier ist eine Simpelversion. Das Simpelskript würde es ohne Martin auch nicht geben, der die Logik für mich gelöst hat. Ich poste es hier, weil es Qualitativ nicht an das PremiumSkript von Martin reicht, es aber wohl recht "usable" ist und für einige nützlich genug sein dürfte.

Das Simpelskript springt einfach von der jetzigen Cursorposition zur nächsten Trennstelle und markiert das Wort. Fertig. Auf ein Tastenkürzel gelegt kann man so _klick_klick_klick_ im Text Trennung für Trennung inspizieren und gleich vor Ort korrigieren.

Damit ist auch das Problem gelöst, das eine Korrektur einen Umbruch auslöst und völlig neue Trennungen hervorgerufen werden, die aber weiter problemlos angesprungen werden.

Code
if (app.selection.length == 0 || !app.selection[0].hasOwnProperty('baseline'))  
exit();

var s = app.selection[0];
var myStory = s.parentStory;
var curPos = app.selection[0].index;
if (s.characters.length != 0) var curPos = app.selection[0].characters.lastItem().index;
var myRange = myStory.characters.itemByRange (curPos, myStory.characters.length - 1)

for ( var i = 0; i < myRange.lines.count(); i++ )
{
if (myRange.lines[i].insertionPoints.lastItem().words.length == 1) {
app.layoutWindows.firstItem().select(myRange.lines[i].insertionPoints.lastItem().words.firstItem());
exit();
}
}


Besten Gruß,
Stephan

als Antwort auf: [#408689] Top

Martin Fischer  M  p
Beiträge: 7744

18. Sep 2009, 12:02

Beitrag #5 von 13
Bewertung:

(1978 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP - Trennstriche kontrollieren


Hallo Stephan,

gute Idee und im Skript prima gelöst.
Danke schön.

Martin Fischer

als Antwort auf: [#408713]

(Dieser Beitrag wurde von Martin Fischer am 18. Sep 2009, 12:31 geändert)
Top

Stephan_M p
Beiträge: 302

18. Sep 2009, 13:07

Beitrag #6 von 13
Bewertung:

(1941 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP - Trennstriche kontrollieren


Hier nun etwas dokumentierter. Und es sind zwei Skripte.
Mit den zwei Skripten kann man bequem vor und zurück die Trennungen anspringen. Ich habe sie mir auf STRG-BildAuf (in Text) und STRG-BildAb (in Text) gelegt.

Du hast Recht, Martin, wenn der Treffer auf dem nächsten Druckbogen liegt, zoomt er nicht hin. Habe aber keine Zeit Deinen guten Vorschlag einzubauen. Magst Du nicht?

Gruß,
Stephan

als Antwort auf: [#408714] Top

Anhang:
FindeNaechsteTrennung.jsx (1.64 KB)
  FindeVorherigeTrennung.jsx (1.62 KB)

Martin Fischer  M  p
Beiträge: 7744

18. Sep 2009, 14:04

Beitrag #7 von 13
Bewertung:

(1920 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP - Trennstriche kontrollieren


Hallo Stephan,

nun zögere ich doch etwas.

Spontan fallen mir zwei Möglichkeiten ein:

1. Zoomen bei Druckbogenwechsel
Code
if (s.parentTextFrames[0].parent.parent != app.selection[0].parentTextFrames[0].parent.parent ) 
app.activeWindow.zoomPercentage = app.activeWindow.zoomPercentage;


2. Zoomen bei Textrahmenwechsel
Code
if (s.parentTextFrames[0] != app.selection[0].parentTextFrames[0] ) 
app.activeWindow.zoomPercentage = app.activeWindow.zoomPercentage;


Doch die beste Lösung steht noch aus: Zoomen, wenn die Auswahl außerhalb des Layoutfensters liegt.

Die Position der Auswahl müsste man über die baseline und den horizontalOffset ermitteln und prüfen, ob dieser Teil des Druckbogens noch im Layoutfenster liegt.
Die entsprechende Routine wäre gelegentlich nachzuliefern.

Martin Fischer

als Antwort auf: [#408721] Top

Elisa9 p
Beiträge: 70

18. Sep 2009, 15:57

Beitrag #8 von 13
Bewertung:

(1874 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP - Trennstriche kontrollieren


Lieber Martin, lieber Stephan,

ich traue meinen Augen nicht! Ihr habt Euch so sehr für meine Trennstriche eingesetzt. Danke echt tausendmal!!!
Da ich vom Skripten nicht so viel verstehe, mache ich mich jetzt einfach nochmals hinter Eure Beiträge. Ich hoffe, dass ich da etwas zum Funktionieren bringe und wünsche Euch einen schönen Nachmittag!

Nochmals DANKE!
Elisa

als Antwort auf: [#408727] Top

Martin Fischer  M  p
Beiträge: 7744

18. Sep 2009, 16:02

Beitrag #9 von 13
Bewertung:

(1872 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP - Trennstriche kontrollieren


Elisa,

eine Anleitung zur Installation von Skripten findest Du hier: Skripte installieren.

Martin Fischer

als Antwort auf: [#408749] Top

Elisa9 p
Beiträge: 70

18. Sep 2009, 16:33

Beitrag #10 von 13
Bewertung:

(1858 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP - Trennstriche kontrollieren


Danke Martin!
In der Zwischenzeit habe ich es fertig gebracht, die beiden Skripts von Stephan auszuführen. :)
Mit den Tastaturkürzeln funktioniert die Sache wunderbar.
Einzig die Sache mit dem Zoomen, wenn die Trennung auf der folgenden Seite liegt, ist noch etwas mühsam (wenn man das so sagen darf, ich habs ja dank Euren Skripts schon schön bequem).

LG,
Elisa

als Antwort auf: [#408752] Top

Martin Fischer  M  p
Beiträge: 7744

21. Sep 2009, 11:35

Beitrag #11 von 13
Bewertung:

(1766 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP - Trennstriche kontrollieren


Das Skript listHyphenedWords.jsx für Premium-Member sucht getrennte Worte am Zeilenende und listet diese mit der Trennstelle '-' in einer Palette auf. Die aufgelisteten Worte sind mit ihrer Quelle im Text verknüpft, so dass per Klick auf ein Wort in der Liste die Quelle im Dokument herangezoomt wird.

Martin Fischer

als Antwort auf: [#408756] Top

Martin Fischer  M  p
Beiträge: 7744

21. Jan 2010, 17:17

Beitrag #12 von 13
Bewertung:

(1068 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP - Trennstriche kontrollieren


Peter Kahrel hat mich soeben auf ein Gemeinschaftsprodukt von ihm und Teus de Jong hingewiesen: gethyphens.jsx.
Nicht nur die Geschwindigkeit ist beeindruckend.

Martin Fischer

als Antwort auf: [#408889] Top

Elisa9 p
Beiträge: 70

14. Jul 2010, 19:34

Beitrag #13 von 13
Bewertung:

(325 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

GREP - Trennstriche kontrollieren


Das Script ist super! Wie Martin Fischer schreibt, die Geschwindigkeit ist beeindruckend! Extrem hilfreich sind auch die verschiedenen Darstellungsmöglichkeiten der getrennten Wörter. Einfach genial!

Elisa

als Antwort auf: [#431025] Top


Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » GREP - Trennstriche kontrollieren


^



Google