[GastForen Programme Print/Bildbearbeitung Adobe InDesign (InDesign CS2) Skript zu Versalien; Differenzierung nach Schriftschnitten möglich?

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

(InDesign CS2) Skript zu Versalien; Differenzierung nach Schriftschnitten möglich?

--silke--
Beiträge gesamt: 27

19. Dez 2007, 08:47
Beitrag # 1 von 5
Bewertung:
(4711 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen, liebe Skripte-Versierte,
kann mir eineR von euch sagen, ob es möglich ist – bzw. ›wie das funktioniert‹ –, das Skript, das Versalien ein bestimmtes Zeichnformat zuweist, dazu zu bringen, nur die Zeichen mit einen bestimmten Schriftschnitt (z.B. normal oder kursiv) zu beachten?
Schöne Grüße
Silke Doepner
X

(InDesign CS2) Skript zu Versalien; Differenzierung nach Schriftschnitten möglich?

zaphodbeeblebroxx
Beiträge gesamt: 408

19. Dez 2007, 16:11
Beitrag # 2 von 5
Beitrag ID: #327889
Bewertung:
(4671 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
 
Hallo Silke,

welches Skript verwendest Du für die Zuweisung eines ZF für Versalien?

im Skript müsste eine Zeile sein, in der die "Suchanweisung" steht. Hier müssten die "app.findPreferences" für die Suche nach einem bestimmten Schriftschnitt (fontStyle:"NameDesSchriftschnittes") ergänzt werden.


Matthias


als Antwort auf: [#327774]

(InDesign CS2) Skript zu Versalien; Differenzierung nach Schriftschnitten möglich?

--silke--
Beiträge gesamt: 27

19. Dez 2007, 16:38
Beitrag # 3 von 5
Beitrag ID: #327890
Bewertung:
(4659 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Mathhias,
das von mir benutzte Skript nennt sich ›ApplyCharacterStyleToCapitals.jsx‹. Die Zeile, die du angibst, kommt 2mal darin vor. Ich kenn mich ja leider nicht aus, aber vermute, dass deine Anmerkung irgendwie eher bei der zweiten Stelle einzufügen wäre (aber: Falls ja, dann wie?).
Ich füge die Zeile und ein wenig DrumHerum ein, und hoffe, du kannst mir (noch-)weiter helfen:
Zitat app.findPreferences = app.changePreferences = null;
// XXX: Assumes search() only returns undefined when aborted.
replacements = app.activeDocument.selection[0].search( match, false, true, undefined, findAttributes, {appliedCharacterStyle: charStyle} );


Grüße
Silke


als Antwort auf: [#327889]

(InDesign CS2) Skript zu Versalien; Differenzierung nach Schriftschnitten möglich?

zaphodbeeblebroxx
Beiträge gesamt: 408

20. Dez 2007, 12:08
Beitrag # 4 von 5
Beitrag ID: #327999
Bewertung:
(4611 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
 
Hallo Silke,

ich habe das Skript "ApplyCharacterStyleToCapitals.js" von der HDS-Skriptsammlung genommen und zwei Zeilen abgeändert (Zeile 131 und Zeile 142). In diesen Zeilen musst Du den genauen Namen des Schriftschnittes eintragen, den Du suchst. Hier bitte die genaue Schreibweise aus dem InDesign-Schriftmenü übernehmen. Ich habe das mal für eine Schrift gemacht, bei der der kursiv-Schnitt "Italic" benannt ist (mit einem Großbuchstaben am Anfang).

Code
// ApplyCharacterStyleToCapitals.js  
/*
Apply character style to capitals

Applies a certain character style to a sequence of capitals,
possibly separated by padding characters. The characters
used can be specified by the user.

Download script source.

(c) 2005 PM. All rights reserved.
This script is licensed under the Artistic License,
see http://csscripting.berlios.de/license/ for details.

Version: 0.2.0
Date: 2005-03-08

More scripts are available at http://csscripting.berlios.de/
*/


if ( app.documents.length < 1 )
exit();

if ( !(app.activeDocument.selection[0] instanceof Text) )
{
alert( "Select text to change." );
exit();
}

var d = app.dialogs.add( {name: "Format capitals"} );
var charStyleDD, dontApplyEG, charactersTEB, paddingCharsEG, paddingCharsTEB, keepLogCB;
var dontApplyCBs = new Array();
with ( d.dialogColumns.add() )
{
with ( dialogRows.add() )
{
dialogColumns.add().staticTexts.add( {staticLabel: "Apply character style"} );
charStyleDD = dialogColumns.add().dropdowns.add( {stringList: [].concat( app.activeDocument.characterStyles.everyItem().name ), selectedIndex: 0} );
}

with ( dialogRows.add() )
{
dialogColumns.add().staticTexts.add( {staticLabel: "Characters"} );
charactersTEB = dialogColumns.add().textEditboxes.add( {editContents: "A-Z", minWidth: 300 } );
}

with ( paddingCharsEG = dialogRows.add().enablingGroups.add( {staticLabel: "Allow padding characters", checkedState: true} ) )
paddingCharsTEB = textEditboxes.add( {editContents: "\\u2000-\\u200D\\u00A0\\u0026\\u00AD", minWidth: 300} );

with ( dontApplyEG = dialogRows.add().enablingGroups.add( {staticLabel: "Don't apply to paragraph styles", checkedState: false} ) )
{
var cols = [dialogColumns.add(), dialogColumns.add()];
for ( var k = 0; k < app.activeDocument.paragraphStyles.length; k++ )
dontApplyCBs.push( cols[k % 2].dialogRows.add().checkboxControls.add( {checkedState: false, staticLabel: app.activeDocument.paragraphStyles.item(k).name} ) );
}

keepLogCB = dialogRows.add().checkboxControls.add( {checkedState: false, staticLabel: "Save log file"} );
}

var re;
for ( ; ; )
{
if ( !d.show() )
{
d.destroy();
exit();
}

if ( charactersTEB.editContents.length < 1 )
{
alert( "Illegal specification of allowed characters." );
continue;
}

if ( paddingCharsEG.checkedState && charactersTEB.editContents.length > 0 )
re = "[" + charactersTEB.editContents.replace( /(?=[\[\]])/g, "\\" ) + "](?:[" + paddingCharsTEB.editContents.replace( /(?=[\[\]])/g, "\\" ) + "]?[" + charactersTEB.editContents.replace( /(?=[\[\]])/g, "\\" ) + "])+";
else
re = "[" + charactersTEB.editContents.replace( /(?=[\[\]])/g, "\\" ) + "]{2,}";

try { re = new RegExp( re, "g" ); }
catch ( e ) { alert( "Failed to compile regular expression: " + e ); continue; }


break;
}

var log, logFile, keepLog;
if ( keepLog = keepLogCB.checkedState )
{
for ( ; ; )
{
if ( logFile = File.saveDialog( "Select where to save log file." ) )
{
logFile = new File( logFile );
if ( logFile.exists && !confirm( 'Warning: "' + logFile.name + '" already exists. Are you sure you want to append to it?' ) )
continue;

if ( !logFile.open( "e", "TEXT", "????" ) )
alert( "Unable to open log file for editing." );
else
break;
}
else
{
d.destroy();
exit();
}
}
}

if ( keepLog ) log( "Searching for matching words..." );
var charStyle = app.activeDocument.characterStyles.item( charStyleDD.selectedIndex );
var txt = app.activeDocument.selection[0].contents;
var match;
var matches = new Object();
while ( match = re.exec( txt ) )
matches[match[0].replace( /\^/g, "^^" )] = 1;

var nmatches = 0;
for ( match in matches )
nmatches++;

if ( keepLog ) log( nmatches + " match(es) found. Abort execution by removing this file." );

var nreplacements = 0;
var start = new Date();

// Using extra search() rather than modifying characters.itemByRange(...) is far faster.
if ( !dontApplyEG.checkedState )
doReplacements( matches, {fontStyle:"Italic"} );
else
{
var n = 0;
for ( var k = 0; k < dontApplyCBs.length; k++ )
if ( !dontApplyCBs[k].checkedState )
n++;

nmatches *= n;
for ( var k = 0; k < dontApplyCBs.length; k++ )
if ( !dontApplyCBs[k].checkedState )
if ( !doReplacements( matches, {appliedParagraphStyle: app.activeDocument.paragraphStyles.item(k), fontStyle:"Italic"} ) )
break;
}

app.findPreferences = app.changePreferences = null;
d.destroy();
if ( keepLog ) log( "Total search time: " + formatDuration( (new Date()).getTime() - start.getTime() ) );

function log ( str )
{
if ( !logFile.exists )
{
if ( confirm( "Log file removed. Abort execution of script?" ) )
{
d.destroy();
exit();
}
}

// Ignore any errors here... (Poor mans flush().)
if ( logFile.open( "e", "TEXT", "????" ) )
try
{
logFile.lineFeed = "unix";
logFile.seek( 0, 2 );
logFile.writeln( str );
logFile.close();
}
catch ( e ) { ; }
else
alert( "failed to open log." );
}

function doReplacements ( matches, findAttributes )
{
var previous = new Date();

if ( findAttributes != undefined && keepLog )
log( 'Starting replacements for paragraph style "' + findAttributes.appliedParagraphStyle.name + '".' );

for ( match in matches )
{
var replacements;
for ( ; ; )
{
app.findPreferences = app.changePreferences = null;
// XXX: Assumes search() only returns undefined when aborted.
replacements = app.activeDocument.selection[0].search( match, false, true, undefined, findAttributes, {appliedCharacterStyle: charStyle} );
if ( replacements != undefined )
break;
else if ( confirm( "Are you sure you want to abort the script?" ) )
return(false);
}

nreplacements++;
if ( keepLog )
{
var current = new Date();
// Note: Each search() takes about the same, number of replacements doesn't matter.
log( '[' + (nreplacements/nmatches * 100).toFixed(0) + '%] Replaced ' + replacements.length + ' occurrence(s) of "' + match + '" in ' + ((current.getTime() - previous.getTime())/1000).toFixed(3) + 's. ETA ' + formatDuration( (current.getTime() - start.getTime()) * (nmatches-nreplacements)/nreplacements ) );
previous = current;
}
}

return(true);
}

function formatDuration ( ms )
{
var s, m, h, d;
s = ms/1000;
s -= (d = Math.floor( s/(60*60*24) )) * 60*60*24;
s -= (h = Math.floor( s/(60*60) )) * 60*60;
s -= (m = Math.floor( s/60 )) * 60;
s = Math.round(s);

if ( d != 0 )
return( d + "d " + h + "h " + m + "m " + s + "s" );
else if ( h != 0 )
return( h + "h " + m + "m " + s + "s" );
else if ( m != 0 )
return( m + "m " + s + "s" );
else
return( s + "s" );
}


Macht das Skript nun das, was Du gerne hättest?


Matthias


als Antwort auf: [#327890]

(InDesign CS2) Skript zu Versalien; Differenzierung nach Schriftschnitten möglich?

--silke--
Beiträge gesamt: 27

20. Dez 2007, 13:39
Beitrag # 5 von 5
Beitrag ID: #328042
Bewertung:
(4587 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Matthias,
das tut es! Und dank deiner verständlichen Anleitung bin ich jetzt auch in der Lage es auf alle möglichen anderen Schriftschnitte anzuwenden – 1000dank!
Und natürlich stolpert mensch immer über neue spannende Sachen, und so ist mir aufgefallen, dass das Skript die Versalien“Wörter“ nicht erfasst, die (erst normal getippt und dann) mit dem Versalisierungsicon ›TT‹ zu Großbuchstaben gemacht wurden. Weißt du – oder sonst jemand der Anwesenden, natürlich –, warum das so ist?
Silke


als Antwort auf: [#327999]
Hier Klicken X

Veranstaltungen

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen. pdf-icon Hier eine kleine Anleitung.

Veranstaltungen
26.09.2018

Hochschuloe der Medien, Stuttgart
Mittwoch, 26. Sept. 2018, 19.00 - 21.00 Uhr

Vertrag

Nur auf den ersten Blick scheint dieses Thema exotisch. Aber eine neue EU-Richtlinie und deren Auswirkungen auf deutsche Gesetze werden dieses Thema auch für Publisher interessant machen. Die EU-Richtlinie "2102 zu Barrierefreiheit" besagt folgendes: Ab dem 23. September 2018 müssen alle öffentlichen Stellen ihre neuen (Office- oder PDF-) Dokumente grundsätzlich barrierefrei veröffentlichen. Im Juni wurde der Gesetzentwurf zur Umsetzung dieser Richtlinie im deutschen Bundestag vom "Ausschuss für Arbeit und Soziales" (19/2728) angenommen. Es wird also ernst für "öffentliche Stellen" und damit auch für deren Dienstleister, die mit der Umsetzung beauftragt werden. Die Richtlinie gilt nämlich nicht nur für Bundes- und Landesbehörden, sondern auch für Verbände, die im Allgemeininteresse liegende Aufgaben erfüllen. Das wären somit auch Gerichte, Polizeistellen, Krankenhäuser, Universitäten, Bibliotheken und einige mehr. Weitere Informationen findest Du hier, hier und hier. Wenn also oben genannte Auftraggeber zu Deinen Kunden zählen, solltest Du Dich vorbereiten. Und da es neben Websites auch um alle downloadbaren Dateien geht sind eben auch PDFs zukünftig barrierefrei zu erstellen. Arbeitet man in InDesign, können dort einige Vorbereitungen getroffen werden. Klaas Posselt ist der ausgewiesene Spezialist im deutschsprachigen Raum für alle Fragen rund um das Thema. Deshalb freuen wir uns, dass er uns in einem Vortrag die Grundlagen dazu vermitteln wird. Wir setzen voraus, dass Du den Umgang mit InDesign gewohnt bist, die Gründe und Vorteile von der Nutzung von Formaten kennst und weißt, wie man lange Dokumente „richtig“ aufbaut. Der Vortrag setzt bewusst DANACH ein. Inhalt des Vortrages ist der Hintergrund von „Barrierefreiheit“ und Möglichkeiten und Grenzen innerhalb von InDesign. Es wird erklärt, welche Bedeutung das kostenpflichtige PlugIn MadeToTag hat und warum und für was man es braucht. Ziel ist es den Rahmen aufzuzeigen, in dem sich das Thema „Barrierefreiheit“ in InDesign abspielt. Du weißt hinterher, wo die „Baustellen“ sind, wo Du weitergehende Infos bekommst und welchen Weg Du einschlagen musst. Am nächsten Tag veranstalten wir zwei Bootcamps, die das Thema praktisch vertiefen. "IDUGS Bootcamp #2" und "IDUGS Bootcamp #3" Klaas Posselt ist studierter Dipl.-Ing. für Druck- und Medientechnik und kam über verschiedene Anfragen zum Thema barrierefreie PDF Dokumente. Seit über 10 Jahren arbeitet er in den Bereichen Medientechnik und Publishing zwischen Medienherstellern, Druckermaschinen und digitalen Ausgabekanälen. Er schult, begleitet und unterstützt Kunden bei der Einführung und Optimierung von Publikationsprozessen und auf dem Weg zu neuen digitalen Ausgabekanälen — egal ob E-Books, barrierefreie PDFs oder Webplattformen. Als Chairman des PDF/UA Competence Center der PDF Association beteiligt er sich an der Weiterentwicklung und Verbreitung des Standards PDF/UA für barrierefreie PDF Dokumente. Diese Veranstaltung kommt nur zu Stande durch die freundliche Unterstützung von "Six Offene Systeme GmbH" -- Enterprise-Content-Management-System und Media-Asset-Management-System.

Nein

Organisator: IDUG Stuttgart

Kontaktinformation: Christoph Steffens, E-Mailchristoph.steffens AT gmail DOT com

https://idug47.eventbrite.de

Veranstaltungen
27.09.2018

Screen IT, Uster
Donnerstag, 27. Sept. 2018, 17.30 - 20.00 Uhr

Infoveranstaltung

Das Angebot an Publishing-Software ist gross. Deshalb empfiehlt sich eine externe Beratung durch unabhängige Software-Experten aus der jeweiligen Branche. Nicht immer muss es eine teure Mietlösung sein, die nach Beendigung der Mietdauer einem nicht einmal gehört. Es gibt sehr gute und auch in der Qualität ausreichende Alternativen, ja sogar kostenlose Freeware. Lassen Sie sich an diesem Abend einmal vor Augen führen, was diese Programme können und wie viel sie kosten.

Ja

Organisator: Screen IT und pre2media

Kontaktinformation: Peter Jäger, E-Mailinfo AT pre2media DOT ch

https://www.pre2media.ch/-1/de/infoanlass/