[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:
(20903 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: 12691

16. Mär 2011, 13:41
Beitrag # 2 von 6
Beitrag ID: #467144
Bewertung:
(20861 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
// 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:
(20842 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:
(20834 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:
(20808 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:
(20793 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