[GastForen Programme Print/Bildbearbeitung Adobe InDesign Suchen & Ersetzen ID 4CS: Klammern zur Kursivierung hinzufügen

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

Suchen & Ersetzen ID 4CS: Klammern zur Kursivierung hinzufügen

doescher
Beiträge gesamt: 34

16. Mär 2011, 12:56
Beitrag # 1 von 6
Bewertung:
(22397 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich habe ein Dokument von ca. 240 Seiten, in dass ich Text mit schon erstellten Kursiv-Stellungen eingeladen habe. Diese sind nun durch eine Zeichenformatvorlage mit Suchen&Ersetzen definiert. Nun ist mir aufgefallen, dass Klammer, die oftmals um den kursiv-gestellten Begriff stehen, in Word nicht kursiv gestellt wurden und somit in ID auch nicht mit der Zeichenformatvorlage kursiv gestellt sind.
Wie kann ich mit einen Script oder mit Suchen & Ersetzen nach diesen Klammer suchen und diese ebenfalls kursiv stellen? Die Begriffe sind natürlich alle unterschiedlich.

Danke für die Hilfe
Jan-Dirk
X

Suchen & Ersetzen ID 4CS: Klammern zur Kursivierung hinzufügen

Martin Fischer
  
Beiträge gesamt: 12888

16. Mär 2011, 13:41
Beitrag # 2 von 6
Beitrag ID: #467144
Bewertung:
(22355 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jan-Dirk,

für die Klammer danach kannst Du das Skript extendCharstyle2Chars.jsx verwenden.

Für davor und danach hier eine erweiterte Version, die es noch zu testen gilt:
Code
  1. // ExtendCharstyle2CharsBeforeAndAfter.jsx
    //DESCRIPTION:Erweitert ein ausgewähltes Zeichenformat auf Zeichen aus einer Liste, die Text mit diesem Zeichenformat vorangehen oder folgen.

    Array.prototype.array_merge = function() {
    for(x=0;x<arguments.length;++x) {
    for(y=0;y<arguments[x].length;++y) {
    this[this.length] = arguments[x][y];
    }
    }
    };


    var myCounter = 0;
    var myDoc = app.documents[0];
    if (app.selection.length > 0)
    var myRange = app.selection[0].parentStory;
    else
    var myRange = myDoc;
    var myBaseStyle = "Italic";
    var myDefaultSymbols = "()";
    var mySymbols = new Array
    var theDialog = myDisplayDialog();
    var myStyle = myDoc.characterStyles.item(theDialog[0]);
    var myNewStyle = checkCS(myStyle.name + "_extended", myStyle);
    var mySymbols = theDialog[1].split("");

    app.findTextPreferences = null; app.changeTextPreferences = null;
    app.findTextPreferences.appliedCharacterStyle = myStyle;
    var myResult = myRange.findText();
    for (oneResult = 0; oneResult < myResult.length; oneResult++)
    {
    try{
    var myIndex = myResult[oneResult].characters[-1].index;
    extendCharStyle(myResult[oneResult].parent.characters[myIndex +1]);
    var myIndex = myResult[oneResult].characters[0].index;
    extendCharStyle(myResult[oneResult].parent.characters[myIndex -1]);
    /*
    if (myResult[oneResult].parent.constructor.name != "Footnote")
    extendCharStyle(myResult[oneResult].parentStory.characters[myIndex +1]);
    else
    extendCharStyle(myResult[oneResult].parent.characters[myIndex +1]);*/
    } catch(e){}
    }
    app.findTextPreferences = app.changeTextPreferences = null;
    alert("Ergebnis:\r" + myCounter + " Ersetzungen");
    // --------------------------------------------------------------------
    // Prüfung des Zeichens danach und ggf. Erweiterung des Zeichenformats
    // --------------------------------------------------------------------
    function extendCharStyle(theCharAfter)
    {
    for (oneSymb = 0; oneSymb < mySymbols.length; oneSymb++)
    {
    try
    {
    if (theCharAfter.contents == mySymbols[oneSymb])
    {
    //theCharAfter.appliedCharacterStyle = myStyle;
    theCharAfter.appliedCharacterStyle = myNewStyle;
    myCounter += 1;
    }
    }
    catch(e){}
    }
    }

    // --------------------------------------------------------------------
    // Dialog zur Auswahl von Zeichenformat und Folgezeichen
    // --------------------------------------------------------------------
    function myDisplayDialog(){
    var myFieldWidth = 80;
    var myCharStyles = myDoc.characterStyles.everyItem().name;
    // Festlegung Vorauswahl
    for (theCSIndex = myCharStyles.length-1; theCSIndex >= 0; theCSIndex--)
    {
    if (myCharStyles[theCSIndex].substr(0,myBaseStyle.length) == myBaseStyle) break;
    }

    var myDialog = app.dialogs.add({name:"Erweitere Zeichenformat"});
    with(myDialog.dialogColumns.add()){
    with(dialogRows.add()){
    with(dialogColumns.add()){
    staticTexts.add({staticLabel:"Zeichenformat:", minWidth:myFieldWidth});
    }
    with(dialogColumns.add()){
    var mySourceDropdown = dropdowns.add({stringList:myCharStyles, selectedIndex:theCSIndex});
    }
    }
    with(dialogRows.add()){
    with(dialogColumns.add()){
    staticTexts.add({staticLabel:"Folgezeichen:", minWidth:myFieldWidth});
    }
    with(dialogColumns.add()){
    var mySymbolsField = textEditboxes.add({editContents:myDefaultSymbols});
    }
    }
    }
    var myResult = myDialog.show();
    if(myResult == true){
    var theCharStyle =myCharStyles[mySourceDropdown.selectedIndex];
    var theSymbolList = mySymbolsField.editContents;
    myDialog.destroy();
    }
    else{
    myDialog.destroy()
    exit();
    }
    return [theCharStyle, theSymbolList] ;
    }


    // -------------------------------------------------------------------------------------
    // Überprüfe Zeichenformat
    // -------------------------------------------------------------------------------------
    function checkCS(oneStyle, myBase){
    try {
    app.activeDocument.characterStyles.item(oneStyle).name;
    }
    catch (e) {
    app.activeDocument.characterStyles.add({name:oneStyle, basedOn:myBase});
    }
    return app.activeDocument.characterStyles.item(oneStyle)
    }



als Antwort auf: [#467138]
(Dieser Beitrag wurde von Martin Fischer am 16. Mär 2011, 13:47 geändert)

Suchen & Ersetzen ID 4CS: Klammern zur Kursivierung hinzufügen

Marco Morgenthaler
Beiträge gesamt: 2474

16. Mär 2011, 14:15
Beitrag # 3 von 6
Beitrag ID: #467147
Bewertung:
(22336 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jan-Dirk

Denkbar wäre auch eine einfache GREP-Lösung.

Suchen nach: \((?!.)|(?<!.)\)
Format: Regular (Grundschrift)

Ändern in:
Format ersetzen: ZF Italic

Der Grep sucht nach öffnender bzw. schliessender Klammer in der Grundschrift, wenn nach bzw. vor der Klammer kein Zeichen in Grundschrift steht. Anders gesagt: Wenn der Text innerhalb der Klammern nicht in Grundschrift ist, werden die Klammern ins gewünschte Zeichenformat geändert.

Gruss, Marco


als Antwort auf: [#467138]

Suchen & Ersetzen ID 4CS: Klammern zur Kursivierung hinzufügen

doescher
Beiträge gesamt: 34

16. Mär 2011, 14:29
Beitrag # 4 von 6
Beitrag ID: #467149
Bewertung:
(22328 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke Marco,

das hat funktioniert, hatte nur vergessen, das Fließtextformat einzustellen.

Danke, nun klappt es.
LG Jan-Dirk


als Antwort auf: [#467147]
(Dieser Beitrag wurde von doescher am 16. Mär 2011, 14:34 geändert)

Suchen & Ersetzen ID 4CS: Klammern zur Kursivierung hinzufügen

Marco Morgenthaler
Beiträge gesamt: 2474

16. Mär 2011, 14:51
Beitrag # 5 von 6
Beitrag ID: #467155
Bewertung:
(22302 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Schön, dass es funktioniert. Man muss sich einfach im Klaren sein, dass der Grep auch Klammern in folgenden Textstellen findet:
(fetter Text)
(Goethes Faust)

Hier wäre dann die Kursivstellung weniger gut …


als Antwort auf: [#467149]

Suchen & Ersetzen ID 4CS: Klammern zur Kursivierung hinzufügen

doescher
Beiträge gesamt: 34

16. Mär 2011, 15:25
Beitrag # 6 von 6
Beitrag ID: #467161
Bewertung:
(22287 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das kommt nicht vor. Aber es geht auch noch einmal der Korrektor über den Text...
Danke bis hierhin
Jan-Dirk


als Antwort auf: [#467155]
X