[GastForen Programme Print/Bildbearbeitung Adobe InDesign Formatauszeichnung per Script

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

Formatauszeichnung per Script

URo
Beiträge gesamt: 353

10. Feb 2006, 23:42
Beitrag # 1 von 3
Bewertung:
(4176 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin 8-)

Verwöhnt, wie ich inzwischen bin durch die vielen hervorragenden Scripte hier im Forum, überlege ich an einer weiteren Arbeitserleichterung aus meiner Alttagsproduktion herum - die ich natürlich wieder mal nicht selbst scripten kann. Ist es möglich, ab der Schreibmarke den Text rechts davon rechtsbündig auszurichten und ihn dabei gleichzeitig mit einem Zeichenformat zu versehen? Es geht konkret den Autorenhinweise bei Bildunterzeilen.

Beispiel:

...und Mittelstürmer Gerd Müller. Foto: Hans Eierkuchen

Händisch also: Schreibmarke vor "Foto" platzieren, mit Shift+Tab das Austreiben-Zeichen einfügen, den Namen ab "Foto" markieren und dann das Zeichenformat zuweisen.

Die Schreibmarke vor "Foto" positionieren und einen Shortcut zu drücken wäre natürlich einfacher 8-))

Es gibt sicher Wichtigeres, doch wenn Du oder jemand anderes Lust hat, das zu scripten, fände ich das sehr nett.

Schönes Wochenende!
X

Formatauszeichnung per Script

MSchmitz
Beiträge gesamt: 545

11. Feb 2006, 00:44
Beitrag # 2 von 3
Beitrag ID: #210966
Bewertung:
(4158 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo uwe,

ich würde das mit einem verschachtelten format lösen. erst per s&e das austreibezeichen einfügen. und dann bis zum austreibezeichen "kein zeichenformat" zuweisen, ab dem austreibezeichen das zeichenformat für "foto: ..." zuweisen.

ist das verschachtelte format erst einmal erstellt, bedarf's nur noch des s&e-befehls (ggfls. auch über mehrere dokumente). müßte meines erachtens genauso schnell gehen wie ein script.

viel glück

markus schmitz


als Antwort auf: [#210963]

Formatauszeichnung per Script

Martin Fischer
  
Beiträge gesamt: 12891

11. Feb 2006, 08:29
Beitrag # 3 von 3
Beitrag ID: #210970
Bewertung:
(4144 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe und Markus,

über verschachtelte Formate geht es auch schnell.
Aber über Skirpt geht es auch. ;-)

Das folgende Skript sucht dokumentweit nach dem Vorkommen eines bestimmten Worts (Zeichenfolge; myString) in Absätzen mit einem bestimmten Absatzformat (myPStyleName). Es fügt vor den gefundenen Wörtern (Zeichenfolgen) einen Tabulator für Einzug rechts ein und weist dem Rest des Absatzes das Zeichenformat myCStyleName zu.

Ist das angegebene Zeichenformat im Dokument nicht vorhanden, wird es neu angelegt.
Ist das angegebene Absatzformat im Dokument nicht vorhanden, erscheint eine Fehlermeldung und das Skript bricht ab.
Treffer in Fußnoten, die über das Absatzformat ohnehin so gut wie ausgeschlossen sein dürften, werden nicht berücksichtigt.

Uwe, Du hattest Dir eine Auszeichnung ab dem gesuchten Wort bis zum Ende der Zeile gewünscht. Im Moment ist eine Auszeichnung ab dem gesuchten Wort bis zum Ende des Absatzes aktiv (falls die Zeile umbricht). Du kannst es leicht durch die Auskommentierung der Zeile mit myEnd auf die Zeile umstellen (Zeilenende als Ende der Auszeichnung).

Code
// applyingFormat2Authors.jsx 
//DESCRIPTION: Autorenformatierung (Rechtsausrichtung und Zuweisung eines Zeichenformats)
//Fügt vor bestimmten Wörtern mit einem bestimmten Zeichenformat in einem Absatz mit einem bestimmte
//einenTabulator für Einzug rechts ein und weist dem Rest des Absatzes ein definiertes Zeichenformat zu.

if (app.documents.length != 0)
{
myDoc = app.documents[0];
myPStyleName = "BU"; // Absatzformat der Absätze in dem das gesuchte Wort enthalten ist
myCStyleName = "BU-Autor"; // Zeichenformat für die Auszeichnung
myString = "Foto:"; // gesuchtes Wort
myCStyle = checkCharStyle(myCStyleName);
myPStyle = checkParaStyle(myPStyleName);

app.findPreferences = null; app.changePreferences = null;
myResult = myDoc.search(myString, false, true, undefined, {appliedParagraphStyle:myDoc.paragraphStyles.item(myPStyleName)});
for (oneResult= myResult.length-1; oneResult >= 0; oneResult--)
{
if (!inFN(myResult[oneResult])) // Treffer darf nicht in Fußnote sein
{
myResult[oneResult].insertionPoints[0].contents = String.fromCharCode(0x8); // Tabulator für Einzug rechts
myStart = myResult[oneResult].insertionPoints[0].index+1; // Anfang der Auszeichnung
myEnd = myResult[oneResult].insertionPoints[0].paragraphs[0].insertionPoints[-2].index; // Absatzende als Ende der Auszeichnung
//myEnd = myResult[oneResult].insertionPoints[0].lines[0].insertionPoints[-2].index; // Zeilenende als Ende der Auszeichnung
myResult[oneResult].parentStory.characters.itemByRange(myStart, myEnd).appliedCharacterStyle = myCStyle;
}
}
}
else
{
exit();
}

// Überprüfung des Zeichenformats
// Wenn nicht vorhanden, dann wird ein neues ZF mit dem angegebenen Namen angelegt
function checkCharStyle(oneStyle){
try {
myCharStyle = app.documents[0].characterStyles.item(oneStyle);
myCharStyle.name;
}
catch (e) {
myCharStyle = app.documents[0].characterStyles.add({name:oneStyle});
}
return myCharStyle;
}

// Überprüfung des Absatzformats
// Wenn nicht vorhanden, erscheint eine Fehlermeldung; anschließend Abbruch des Skripts
function checkParaStyle(oneStyle){
try {
// prüfe, ob Absatzformat oneStyle vorhanden ist
myParaStyle = myDoc.paragraphStyles.item(oneStyle);
myParaStyle.name;
}
catch (e) {
alert("Error!\rParagraphStyle \"" + oneStyle + "\" is not available in \"" + myDoc.name + "\"");
exit();
}
return myParaStyle;
}


function inFN(aString)
{
theResult = false
try
{
eval(aString.parent)
}
catch (e)
{
theResult = true
}
return theResult
}

Mich hat skripttechnisch vor allen Dingen die Auszeichnung ab einem gesuchten String bis zum Ende des Absatzes interessiert.


als Antwort auf: [#210966]