[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt unicode2charcterstyle (CS6, WIN 7)

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

unicode2charcterstyle (CS6, WIN 7)

cwenet
Beiträge gesamt: 959

29. Jan 2013, 20:13
Beitrag # 1 von 14
Bewertung:
(3437 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Tag,

hiermit würde ich gerne die griechischen Zeichen via Zeichenformat einfrieren.
Nun gibt es ja eine ganze Menge davon.

Wie lässt sich das eleganter lösen, damit nicht die komplette Liste manuell erfasst werden muss?


Code
app.findTextPreferences = app.changeTextPreferences = null;   


se("<0374>","Greek");
se("<0375>","Greek");

usw.


app.findTextPreferences = app.changeTextPreferences = null;

function se(suchenNach, zf_name2) {
app.findTextPreferences.findWhat = suchenNach;

var result = app.activeDocument.findText();
if (app.activeDocument.characterStyles.item(zf_name2) == null) {
if (result.length > 0 ) {
app.activeDocument.characterStyles.add({name:zf_name2} );
}
}
if (result.length > 0 ) {
app.changeTextPreferences.appliedCharacterStyle = zf_name2;
app.activeDocument.changeText();
}
}

alert('Fertig');


Danke und Gruß
Christoph
X

unicode2charcterstyle (CS6, WIN 7)

Martin Fischer
  
Beiträge gesamt: 12361

29. Jan 2013, 20:29
Beitrag # 2 von 14
Beitrag ID: #507508
Bewertung:
(3428 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

schlag den Unicodebereich Deiner griechischen Zeichen nach (z.B. http://www.unicode.org/charts/) und entwickle daraus einen regulären Ausdruck (von - bis).
Teste diesen. Und wenn er funktioniert, baue ihn in Dein Script ein.

An Deinem Skript mußt Du noch etwas rumfeilen,
Überleg nach Deinem Test, wie Du das von Hand am einfachsten erledigen würdest und leite davon Dein Vorgehen per Skript ab.

Viele Grüße
Martin




als Antwort auf: [#507507]
(Dieser Beitrag wurde von Martin Fischer am 29. Jan 2013, 20:33 geändert)

unicode2charcterstyle (CS6, WIN 7)

cwenet
Beiträge gesamt: 959

29. Jan 2013, 21:12
Beitrag # 3 von 14
Beitrag ID: #507510
Bewertung:
(3389 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke Martin,

ich glaube so funktioniert es. Habe es noch etwas erweitert, da ja auch z.B. der fontStyle Bold vorkommen kann.


Code
if( app.activeDocument.characterStyles.item( 'Greek_Bold' ) == null )    
{
app.activeDocument.characterStyles.add( { name : 'Greek_Bold' } );
}

app.findGrepPreferences = NothingEnum.nothing;

app.findGrepPreferences.findWhat = "[\\x{0374}-\\x{1FFE}]";
app.findGrepPreferences.fontStyle = "Bold";
app.changeGrepPreferences.appliedCharacterStyle = "Greek_Bold";
app.activeDocument.changeGrep();

app.findGrepPreferences = NothingEnum.nothing;

alert('Fertig');


Schönen Abend
Christoph


als Antwort auf: [#507508]

unicode2charcterstyle (CS6, WIN 7)

Martin Fischer
  
Beiträge gesamt: 12361

29. Jan 2013, 21:24
Beitrag # 4 von 14
Beitrag ID: #507511
Bewertung:
(3381 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

das sieht gut aus!

Du kannst hinter '[\\x{0374}-\\x{1FFE}]' noch ein '+' ergänzen, dann findet er aufeinanderfolgende griechische Zeichen auf einen Schlag.

Außerdem würde ich in der Vorbereitung auch die GREP-Ersetzeneinstellungen zurückstellen (wahrscheinlich ein Copy & Paste-Problem).

Viele Grüße
Martin




als Antwort auf: [#507510]

unicode2charcterstyle (CS6, WIN 7)

cwenet
Beiträge gesamt: 959

29. Jan 2013, 21:35
Beitrag # 5 von 14
Beitrag ID: #507513
Bewertung:
(3373 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Jetzt muss ich mich nochmals melden.

Das Script sieht jetzt so aus:

Code
var pattern = '[\\x{0374}-\\x{1FFE}]'; 


//unicode2characterstyle (greek)//////////////////////////////BOLD///////////////////////////////////////////////////////
if( app.activeDocument.characterStyles.item( 'Greek_Bold' ) == null )
{
app.activeDocument.characterStyles.add( { name : 'Greek_Bold' } );
}

app.findGrepPreferences = NothingEnum.nothing;

app.findGrepPreferences.findWhat = pattern;
app.findGrepPreferences.fontStyle = "Bold";
app.changeGrepPreferences.appliedCharacterStyle = "Greek_Bold";
app.activeDocument.changeGrep();

app.findGrepPreferences = NothingEnum.nothing;




//unicode2characterstyle (greek)//////////////////////////////BOLD-ITALIC///////////////////////////////////////////////////////
if( app.activeDocument.characterStyles.item( 'Greek_Bold-Italic' ) == null )
{
app.activeDocument.characterStyles.add( { name : 'Greek_Bold-Italic' } );
}

app.findGrepPreferences = NothingEnum.nothing;

app.findGrepPreferences.findWhat = pattern;
app.findGrepPreferences.fontStyle = "Bold Italic";
app.changeGrepPreferences.appliedCharacterStyle = "Greek_Bold-Italic";
app.activeDocument.changeGrep();

app.findGrepPreferences = NothingEnum.nothing;


//unicode2characterstyle (greek)//////////////////////////////ITALIC///////////////////////////////////////////////////////
if( app.activeDocument.characterStyles.item( 'Greek_Italic' ) == null )
{
app.activeDocument.characterStyles.add( { name : 'Greek_Italic' } );
}

app.findGrepPreferences = NothingEnum.nothing;

app.findGrepPreferences.findWhat = pattern;
app.findGrepPreferences.fontStyle = "Italic";
app.changeGrepPreferences.appliedCharacterStyle = "Greek_Italic";
app.activeDocument.changeGrep();

app.findGrepPreferences = NothingEnum.nothing;


//unicode2characterstyle (greek)//////////////////////////////REGULAR///////////////////////////////////////////////////////
if( app.activeDocument.characterStyles.item( 'Greek_Regular' ) == null )
{
app.activeDocument.characterStyles.add( { name : 'Greek_Regular' } );
}

app.findGrepPreferences = NothingEnum.nothing;

app.findGrepPreferences.findWhat = pattern;
app.findGrepPreferences.fontStyle = "Regular";
app.changeGrepPreferences.appliedCharacterStyle = "Greek_Regular";
app.activeDocument.changeGrep();

app.findGrepPreferences = NothingEnum.nothing;



Wie kann ich denn hier sicherstellen, dass das gefundene Zeichen noch kein Zeichenformat hat:
app.findGrepPreferences.appliedCharacterStyle = "[ohne]";

Danke und Gruß
Christoph


als Antwort auf: [#507510]

unicode2charcterstyle (CS6, WIN 7)

cwenet
Beiträge gesamt: 959

29. Jan 2013, 21:41
Beitrag # 6 von 14
Beitrag ID: #507514
Bewertung:
(3359 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

danke fürs nochmal anschauen und den Hinweis.

Gruss
Christoph


als Antwort auf: [#507511]

unicode2charcterstyle (CS6, WIN 7)

Martin Fischer
  
Beiträge gesamt: 12361

29. Jan 2013, 21:42
Beitrag # 7 von 14
Beitrag ID: #507515
Bewertung:
(3359 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Wie kann ich denn hier sicherstellen, dass das gefundene Zeichen noch kein Zeichenformat hat:
app.findGrepPreferences.appliedCharacterStyle = "[ohne]";


Achte auf die Groß-/Kleinschreibung:

Code
app.findGrepPreferences.appliedCharacterStyle =  app.documents.firstItem().characterStyles.itemByName('[Ohne]'); 


Da 'Kein Zeichenformat' (bislang) stets das erste ZF ist, geht auch

Code
app.findGrepPreferences.appliedCharacterStyle =  app.documents.firstItem().characterStyles.firstItem(); 


Viele Grüße
Martin




als Antwort auf: [#507513]

unicode2charcterstyle (CS6, WIN 7)

Martin Fischer
  
Beiträge gesamt: 12361

29. Jan 2013, 21:50
Beitrag # 8 von 14
Beitrag ID: #507516
Bewertung:
(3332 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

Antwort auf: danke fürs nochmal anschauen und den Hinweis.


Ich danke Dir für die Ausführung.
Bisher habe ich das immer mit einem gespeicherten Suchausdruck von Hand erledigt – für jeden Schnitt jeweils extra.
In Zukunft kann ich Dein Skript verwenden. ;-)

Falls Du auch noch die Leerzeichen (und andere Weißräume) zwischen griechischen Zeichen mit dem ZF auszeichnen möchtest, hier ein entsprechender Ausdruck:

Code
(?<=[\\x{0374}-\\x{1FFE}])[[:punct:]]?\\s(?=[\\x{0374}-\\x{1FFE}]) 


Der müsste sich über ein Oder-Zeichen mit Deinem Pattern oben verknüpfen lassen.

Viele Grüße
Martin




als Antwort auf: [#507514]

unicode2charcterstyle (CS6, WIN 7)

cwenet
Beiträge gesamt: 959

29. Jan 2013, 21:53
Beitrag # 9 von 14
Beitrag ID: #507517
Bewertung:
(3330 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen Dank Martin,

so läuft es primstens.

Gruß
Christoph


als Antwort auf: [#507515]

unicode2charcterstyle (CS6, WIN 7)

Martin Fischer
  
Beiträge gesamt: 12361

29. Jan 2013, 22:25
Beitrag # 10 von 14
Beitrag ID: #507518
Bewertung:
(3258 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

ich habe den Code für meine Zwecke noch etwas aufgeräumt und zusammengefasst.
Vielleicht findest Du auch Gefallen daran.

Code
// Greek_unicode2style.jsx 
//DESCRIPTION:Weist griechischen Zeichen (Unicode) Zeichenformate mit den Schriftschnitten 'Bold', 'Bold Italic', 'Italic', 'Regular' zu.

main()

function main()
{
//var _pattern = '[\\x{0374}-\\x{1FFE}]+[[:punct:]]*\\s*';
var _pattern = '[\\x{0374}-\\x{1FFE}]+\\s*';
var _styles = ['Bold', 'Bold Italic', 'Italic', 'Regular'];
app.findGrepPreferences = app.changeGrepPreferences = NothingEnum.nothing;

for (var i = 0; i < _styles.length; i++)
{
var cs_name = 'Greek_' + _styles[i].replace(/ /gi, '_');
var cs = (app.activeDocument.characterStyles.itemByName(cs_name).isValid)
? app.activeDocument.characterStyles.itemByName(cs_name)
: app.activeDocument.characterStyles.add({name: cs_name, fontStyle:_styles[i], appliedFont: 'Minion Pro'});

app.findGrepPreferences.findWhat = _pattern;
app.findGrepPreferences.fontStyle = _styles[i];
app.changeGrepPreferences.appliedCharacterStyle = cs;
app.activeDocument.changeGrep();
}
app.findGrepPreferences = app.changeGrepPreferences = NothingEnum.nothing;
}



Und mit folgender Variante wird Hebräisch auch gleich verarbeitet.

Code
// Hebrew_unicode2style.jsx 
//DESCRIPTION:Weist hebräischen Zeichen (Unicode) Zeichenformate mit den Schriftschnitten 'Bold', 'Bold Italic', 'Italic', 'Regular' zu.

main()

function main()
{
// var _pattern = '[\\x{0590}-\\x{05FF}\\x{FB00}-\\x{FB4F}]+[[:punct:]]*\\s*';
var _pattern = '[\\x{0590}-\\x{05FF}\\x{FB00}-\\x{FB4F}]+\\s*';
var _styles = ['Bold', 'Bold Italic', 'Italic', 'Regular'];
app.findGrepPreferences = app.changeGrepPreferences = NothingEnum.nothing;

for (var i = 0; i < _styles.length; i++)
{
var cs_name = 'Hebrew_' + _styles[i].replace(/ /gi, '_');
var cs = (app.activeDocument.characterStyles.itemByName(cs_name).isValid)
? app.activeDocument.characterStyles.itemByName(cs_name)
: app.activeDocument.characterStyles.add({name: cs_name, fontStyle:_styles[i], appliedFont: 'FrankRuhlMFO'});

app.findGrepPreferences.findWhat = _pattern;
app.findGrepPreferences.fontStyle = _styles[i];
app.changeGrepPreferences.appliedCharacterStyle = cs;
app.activeDocument.changeGrep();
}
app.findGrepPreferences = app.changeGrepPreferences = NothingEnum.nothing;
}


Viele Grüße
Martin




als Antwort auf: [#507517]
(Dieser Beitrag wurde von Martin Fischer am 29. Jan 2013, 22:28 geändert)

unicode2charcterstyle (CS6, WIN 7)

cwenet
Beiträge gesamt: 959

30. Jan 2013, 07:01
Beitrag # 11 von 14
Beitrag ID: #507522
Bewertung:
(3122 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen lieben Dank,

das ist ja 1000mal besser. Hebräisch hatte ich auch bereits in Arbeit.
Aber so ist es natürlich viel pflegeleichter.

Schönen Tag
Christoph


als Antwort auf: [#507518]

unicode2charcterstyle (CS6, WIN 7)

Jabadabadu
Beiträge gesamt: 234

30. Jan 2013, 09:48
Beitrag # 12 von 14
Beitrag ID: #507535
Bewertung:
(3072 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin, hallo Christoph,

klasse, Eure Ideen und Lösungen erleichtern meine Arbeit.

Da ich aber relativ wenig Ahnung von Scripten habe: wie kann ich
Code
(?<=[\\x{0374}-\\x{1FFE}])[[:punct:]]?\\s(?=[\\x{0374}-\\x{1FFE}]) 

einbinden, um auch die Weißräume und Satz-/Sonderzeichen gleich in Greek_Regular etc. zu formatieren?

Mir scheint das Problem bei der griechischen Ellision, dem Apostroph, aufzutauchen, wenn ich im Text die einfachen An- und Abführungszeichen "‹" und "›" (nach französischem Muster) verwende. Diese bleiben mit dem Script unberücksichtigt und tauchen dann im Griechischen z.B. als "all‹" auf – das muss ich also jedes Mal prüfen.

Oder kann man (und wenn ja, wie) auch einzelne Zeichen noch in das Formatierungsscript einbinden?

Danke für's Nachdenken.
Viele Grüße

Jörn aka Jabadabadu

——————————————————————————————————————————
Dr. Jörn Kobes @ www.computus-druck.com
Win 8/Win 10 — Creative Suite 2 – CC 2020
——————————————————————————————————————————


als Antwort auf: [#507522]

unicode2charcterstyle (CS6, WIN 7)

Martin Fischer
  
Beiträge gesamt: 12361

30. Jan 2013, 10:35
Beitrag # 13 von 14
Beitrag ID: #507536
Bewertung:
(3046 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jörn,

Antwort auf: Mir scheint das Problem bei der griechischen Ellision, dem Apostroph, aufzutauchen, wenn ich im Text die einfachen An- und Abführungszeichen "‹" und "›" (nach französischem Muster) verwende. Diese bleiben mit dem Script unberücksichtigt und tauchen dann im Griechischen z.B. als "all‹" auf – das muss ich also jedes Mal prüfen.


Diese Korrektur würde ich vor der Zuweisung der Formate erledigen.
Dennoch würden auch nach der Korrektur die einfachen Anführungszeichen ‚‘ bzw. ‘’ eine Grenze für den GREP bedeuten.

Lösungsvorschlag:
Code
(?<=[\\x{0374}-\\x{1FFE}])[[:punct:]'"]?\\s['"]?(?=[\\x{0374}-\\x{1FFE}]) 


Du kannst diesen Ausdruck auch im GREP-Suchfeld testen, musst aber vorher die doppelten Backslashes durch einfache ersetzen.

Code
(?<=[\x{0374}-\x{1FFE}])[[:punct:]'"]?\s['"]?(?=[\x{0374}-\x{1FFE}]) 


In den roten Markierungen kannst Du weitere optionale Zeichen vor oder nach dem Leerzeichen einfügen.

Ich bin mir nicht sicher, ob InDesign mit dem Ausdruck ['"] alle Anführungszeichen zuverlässig findet. Du kannst ihn bei Problemen durch einen Ausdruck mit allen einzeln aufgeführten Anführungszeichen [‚‘’„“”›‹»«] ersetzen.

Viele Grüße
Martin




als Antwort auf: [#507535]

unicode2charcterstyle (CS6, WIN 7)

Peter Kahrel
Beiträge gesamt: 182

31. Jan 2013, 11:54
Beitrag # 14 von 14
Beitrag ID: #507639
Bewertung:
(2976 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Code
app.documents.firstItem().characterStyles.itemByName('[Ohne]'); 


Ah, Martin, that will work only in German versions of Indesign. Better use
Code
app.documents[0].characterStyles[0]; 


Peter


als Antwort auf: [#507515]
(Dieser Beitrag wurde von Peter Kahrel am 31. Jan 2013, 11:55 geändert)
X

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
01.12.2020 - 03.12.2020

ortsunabhängig
Dienstag, 01. Dez. 2020, 10.00 Uhr - Donnerstag, 03. Dez. 2020, 11.30 Uhr

Online Workshop-Reihe

Sie wollen barrierefreie PDF-Dokumente mit möglichst wenig Aufwand erstellen? Mit ein wenig Grundlagenwissen können Sie dies aus InDesign mit axaio MadeToTag erreichen – ohne manuelle Nacharbeit im PDF! In diesem 3-teiligen, interaktiven Webinar, das wir vom 1. – 3. Dezember 2020 gemeinsam mit unserem Partner und InDesign-Experten Klaas Posselt von einmanncombo organisieren, lernen die Teilnehmenden, wie sie zielführend beim Erstellen von barrierefreien PDF-Dokumenten aus Adobe InDesign vorgehen. Dafür wird zu Beginn vermittelt, was ein barrierefreies PDF ist, und welche Anforderungen an solche Dokumente bestehen. Mit diesem Wissen werden, anhand von Best-Practice-Beispielen, Strategien zum effizienten Erstellen von PDF/UA-konformen Dokumenten und Formularen mit Adobe InDesign und axaio MadeToTag gezeigt. Außerdem werden Lösungen für klassische Probleme vermittelt. Die Teilnehmenden erhalten im Vorfeld eine Liste der notwendigen Software, wie auch vorbereitete Workshop-Daten, an denen alle im Webinar unter Anleitung arbeiten. Während des Webinars haben die Teilnehmenden die Möglichkeit, Fragen zu stellen. Inhalte der einzelnen Webinare: Die Webinar-Serie besteht aus vier Teilen (Inhalte folgend). Diese bauen aufeinander auf, können aber, mit den entsprechenden Vorkenntnissen, auch einzeln besucht werden. Webinar 1 – Grundlagen (1. Dezember 2020, 10.00 - 11.30 Uhr) Fundiertes Grundlagenwissen über barrierefreie PDF-Dokumente bildet die Basis einer erfolgreichen Umsetzung in InDesign, um die dafür notwenigen Werkzeuge richtig einsetzen zu können. â–ª Warum barrierefreies PDF? â–ª Gesetzliche Grundlagen und Richtlinien â–ª Anforderungen an barrierefreie PDF-Dokumente â–ª Basiswissen zur Umsetzung in InDesign â–ª Einordnung axaio MadeToTag Webinar 2 – Einstieg MadeToTag (2. Dezember 2020, 10.00 - 11.30 Uhr) Anhand eines InDesign-Beispieldokumentes wird eine Publikation Schritt für Schritt mit MadeToTag barrierefrei gemacht. â–ª Warum MadeToTag nutzen? â–ª Nützliche Funktionen/Mehrwert gegenüber InDesign â–ª Arbeitsschritte in der Übersicht â–ª Gemeinsam ein Dokument barrierefrei machen, Schritt für Schritt â–ª Ausgabe als barrierefreies PDF/UA Webinar 3 – Spezielle Aufgaben mit MadeToTag meistern (3. Dezember 2020, 10.00 - 11.30 Uhr) Bestimmte Inhalte, wie unpassend erstellte Inhalte (z.B. manuelle Trennungen), komplexe Tabellen oder Formulare, können in einer barrierefreien Umsetzung sehr störend oder gar kniffelig sein. MadeToTag kann hier Hilfestellung leisten. â–ª Probleme finden und beheben â–ª Komplexere und richtig komplexe Tabellen â–ª Formulare â–ª Schneller Arbeiten mit Shortcuts â–ª Vorlagen aufbauen Ziele der Webinar-Serie: â–ª Grundlagen barrierefreier Dokumente kennen â–ª Barrierefreie Dokumente in InDesign mit MadeToTag vorbereiten und ausgeben Teilnahmegebühr: Die Teilnahmegebühr für alle drei Webinare beträgt € 89,- (zzgl. MwSt.) Wir freuen uns auf Ihre Teilnahme! Das axaio-Team

Ja

Organisator: axaio software

Kontaktinformation: Karina Zander, E-Mailk.zander AT axaio DOT com

https://en.xing-events.com/OEBIDIR.html

Erstellung barrierfreier PDF-Dokumente mit InDesign & MadeToTag
Veranstaltungen
07.12.2020 - 08.12.2020

Digicomp Academy AG, Küchengasse 9, 4051 Basel
Montag, 07. Dez. 2020, 08.30 Uhr - Dienstag, 08. Dez. 2020, 17.00 Uhr

Kurs

Dieser Basic-Kurs ist der perfekte Einstieg in die Welt von InDesign, dem vielseitigen Layout-Programm. Sie lernen, wie InDesign aufgebaut ist, wie saubere Dokumente erstellt werden und wie man korrekt mit gelieferten InDesign-Projekten umgeht.

CHF 1'400.-
Dauer: 2 Tage

Nein

Organisator: Digicomp Academy AG

Kontaktinformation: Isil Günalp, E-Mailisil.guenalp AT digicomp DOT ch

https://www.digicomp.ch/weiterbildung/software-anwendungs-trainings/adobe-trainings/desktop-publishing/adobe-indesign-cc/kurs-indesign-cc-basic

Neuste Foreneinträge


Home-Office

Initial mit unterschiedlichem rechten Rand

PPT-Grafik nachbauen

Designer: Stile

Fehlende Bilddarstellung in Mail

Probleme mit dem Strukturbaum Acrobat Pro DC (barrierefrei)

Nach Installation des RAM bleibt das Display über mehrere Minuten dunkel. Was tun?

Indesign CC2021 verliert Speicherpfad von Dateien

Gibt es Audio-USB-Adapter mit STEREO-Mikrofoneingang?

Index-Probleme
medienjobs