[GastForen Programme Print/Bildbearbeitung Adobe InDesign VERSAL-Buchstaben

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

VERSAL-Buchstaben

Wolfgang J. Kremer
Beiträge gesamt: 68

14. Dez 2005, 14:21
Beitrag # 1 von 9
Bewertung:
(17586 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo InDesign-User, hallo Script-Profis !

Ich habe immer wieder Bücher, bei denen ich die im Text vorkommenden VERSALIEN markiere, eine Zeichenvorlage zuweise und dann über verschiedene Einstellungen modifiziere. Sinn dieser ganzen Sache ist, dass mir Anhäufungen von Versal-Buchstaben (zwei oder mehr - z.B. AEG, US, CE etc.) zu massiv erscheinen und den Lesefluss behindern. Diese Buchstaben-Kombinationen werden von mir dann etwas kleiner gesetzt und gesperrt, evtl. lege ich auch schon einmal eine Kontur darum, damit die Strichstärke wieder besser zum Rest des Textes passt.
Das Heraussuchen und Markieren mache ich "zu Fuß", will heißen, es dauert ziemlich lange, und leider übersieht man schon einmal Buchstabenpaare.
Diese Arbeit könnte doch der Computer übernehmen. Man müsste ein Script schreiben, in dem man definiert, welche Buchstaben gesucht werden sollen (also jeweils mehr als zwei Versalbuchstaben in Folge aus der Zeichenreihe A-Z,ÄÖÜ usw.) und diesen dann eine Zeichenvorlage zuweisen.
Leider komme ich mit Javascript und den vielen InDesign-Referenzen überhaupt nicht zurecht. Das hier im Forum schon veröffentlichte Script "TextCleanup.jsx" leistet schon ernorm viel. Kann ich dieses Script nicht etwas modifizieren?

Vielen Dank schon einmal für eure Überlegungen
Wolfgang
X

VERSAL-Buchstaben

Martin Fischer
  
Beiträge gesamt: 12783

14. Dez 2005, 15:07
Beitrag # 2 von 9
Beitrag ID: #200691
Bewertung:
(17565 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Wolfgang,

interessant, diese Arbeit lade ich mir seit ein paar Wochen auch auf.
Versalien im Verbund tragen schon etwas dick auf.
Ich habe bei der MT Baskerville z.B. ein Zeichenformat "Versalien" angelegt mit horizontaler und vertikaler Skalierung von 95%; Laufweite: 75.

Zum Zuweisen reicht eine Abwandlung von TextCleanup.js nicht aus.
Leider kann InDesign nur allgemein Buchstaben (^$) oder Zahlen (^9) suchen, jedoch ohne Unterscheidung von Groß- und Kleinschreibung.

Ich glaube, ich hatte mal eine Skript-Lösung mit regulären Ausdrücken gesehen, die aber auf lange Texte recht mühsam war.

Mein Notbehelf ist ein Skript, das nach dem markierten Wort (und nur WORT!) sucht und dieses durch das Zeichenformat ersetzt. Damit spart man sich zumindest Copy & Paste des zu suchenden Worts.

Ersetze inder ersten Zeile den Namen "Versalien" durch Deinen Zeichenformatnamen. Wenn das Format nicht vorhanden ist, dann meckert jemand.

Code
// applyStyle2Capitals.js 
//
myStyleName = "Versalien";
mySel = app.selection[0];
if (mySel.constructor.name == "Word"){
myStyle = app.documents[0].characterStyles.item(myStyleName);
app.findPreferences = null; app.changePreferences = null;
try{
myStyle.name;
app.documents[0].search(mySel.contents, true, true, undefined, {},{appliedCharacterStyle:myStyle})
}
catch (e){
alert("Zeichenformat \""+ myStyleName + "\" nicht vorhanden!")
}
}



als Antwort auf: [#200666]

VERSAL-Buchstaben

Quarz
Beiträge gesamt: 3555

14. Dez 2005, 15:25
Beitrag # 3 von 9
Beitrag ID: #200697
Bewertung:
(17556 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

danke für das Script. Ich werde es gleich mal ausprobieren.
(Wenn du an den Anfang des Scripts Deinen Namen und das Datum schreibst, dann brauche ich das nicht zu tun. Ich meine, dass sollte da schon stehen.)

Ich ersetze die VERSALIEN immer durch Gemeine der SmallCaps.

Gruß
Quarz


als Antwort auf: [#200691]

VERSAL-Buchstaben

Martin Fischer
  
Beiträge gesamt: 12783

14. Dez 2005, 15:28
Beitrag # 4 von 9
Beitrag ID: #200699
Bewertung:
(17553 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
> Ich ersetze die VERSALIEN immer durch Gemeine der SmallCaps.

Sind die dann nicht etwas zu klein?
Vielleicht könnten die dann ein Zeichenformat mit Skalierung auf 105% brauchen. ;-)


als Antwort auf: [#200697]

VERSAL-Buchstaben

Quarz
Beiträge gesamt: 3555

14. Dez 2005, 15:34
Beitrag # 5 von 9
Beitrag ID: #200703
Bewertung:
(17539 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

also ich finde das so sehr schön. Die Kundschaft hat sich auch noch nicht beschwert.
Ich vermeide es nach Möglichkeit eine Schrift zu Skalieren.
Ich werde das mal ausprobieren und mir anschauen.

Gruß
Quarz


als Antwort auf: [#200699]

VERSAL-Buchstaben

Wolfgang J. Kremer
Beiträge gesamt: 68

14. Dez 2005, 16:21
Beitrag # 6 von 9
Beitrag ID: #200717
Bewertung:
(17513 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin !

Das ging ja wieder wahnsinnig schnell. Das Script ist zwar noch nicht das, was ich mir vorgestellt habe – aber trotzdem, es funktioniert tadellos und superschnell. Vielen Dank für die schnelle Hilfe.

Übrigens nehme ich diese kleineren Versalien natürlich nur bei Schriften, bei denen ich keine Original-Minuskeln habe.

Noch eine Bitte: Schau dir einmal die InDesign-Referenzen unter dem folgenden Link an.

http://wjk.serveftp.net/...CharactersMethod.pdf


Kommt man damit nicht weiter?

Erstmal jedoch vielen Dank für deine schnelle Hilfe

Viele Grüße
Wolfgang


als Antwort auf: [#200691]

VERSAL-Buchstaben

Martin Fischer
  
Beiträge gesamt: 12783

14. Dez 2005, 16:59
Beitrag # 7 von 9
Beitrag ID: #200732
Bewertung:
(17492 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Wolfgang,

> Das ging ja wieder wahnsinnig schnell.
War ja gewissermaßen noch schreibfrisch.

> Noch eine Bitte: Schau dir einmal die InDesign-Referenzen unter dem folgenden Link an.
Da steckt keine Lösung drin.
Das ist lediglich eine Kopie aus dem Referenzhandbuch mit einer Auflistung der Methoden, die Du auf Zeichen (Plural) anwenden kannst. Du kannst das erste Zeichen herauslesen, oder das letzte oder die Zeichen innerhalb eines bestimmten Bereichs.

Hat aber mit Deinem Versalienproblem gar nix zu tun.

Aber warte mal, soeben habe ich das Script, an das ich mich dunkel erinnerte gefunden. Es ist wieder ein Script dieses namenlosen Scripters, dessen Website (http://csscripting.berlios.de/license/) nicht mehr erreichtbar ist.

Hab's auf die Schnelle in InDesign CS2 getestet.
Es scheint zu funktionieren.

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, undefined );
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)} ) )
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" );
}



als Antwort auf: [#200717]
(Dieser Beitrag wurde von MartinF am 14. Dez 2005, 17:12 geändert)

VERSAL-Buchstaben

Wolfgang J. Kremer
Beiträge gesamt: 68

14. Dez 2005, 18:28
Beitrag # 8 von 9
Beitrag ID: #200755
Bewertung:
(17481 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin !

Dieses Script ist genau das, was ich gesucht habe. Vielen Dank.
Dein Script werde ich aber trotzdem verstärkt einsetzen. Es ist ja leicht abgewandelt sehr vielfältig nutzbar.

Vielleicht kannst du mir bei Gelegenheit mal etwas unter die Arme greifen mit einer Einweisung in Java-Script. Eventuell verstehe ich es dann ja doch noch mal. Bis bald.

Wolfgang


PS: Deine Beiträge erscheinen auf meinem Rechner in einem zu breiten Rahmen und werden dann stellenweise von Werbung verdeckt. Ist das nur bei mir so?


als Antwort auf: [#200732]
(Dieser Beitrag wurde von Wolfgang J. Kremer am 14. Dez 2005, 18:32 geändert)

VERSAL-Buchstaben

Martin Fischer
  
Beiträge gesamt: 12783

14. Dez 2005, 18:40
Beitrag # 9 von 9
Beitrag ID: #200759
Bewertung:
(17477 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
> Dein Script werde ich aber trotzdem verstärkt einsetzen.
> Es ist ja leicht abgewandelt sehr vielfältig nutzbar.

Stimmt.
Vielleicht sollte man das Skript ausbauen und Formatierungen über eine Dialogbox zuweisen können (z.B. Auflistung aller Zeichenformate).

Ich hatte es schon mal für die Zuweisung von einem Autorenformat (Kapitälchen) verwendet (Autor ausgewählt und schon war er über's Dokument mit dem Zeichenformat ausgezeichnet). Mit der Dialogbox ist halt nochmal eine lästige Bestätigung erforderlich. Und das Skript ist ja gemacht, um schnell erledigen zu können, was man sonst über die Suche-Palette durch x Klicks bewältigen muß.

> Vielleicht kannst du mir bei Gelegenheit mal etwas unter die Arme greifen mit einer
> Einweisung in Java-Script. Eventuell verstehe ich es dann ja doch noch mal. Bis bald.

Gerne.

>PS: Deine Beiträge erscheinen auf meinem Rechner in einem zu breiten Rahmen
> und werden dann stellenweise von Werbung verdeckt. Ist das nur bei mir so?

Nein, das liegt an der CODE-Formatierung, die ein Umbruch der Skriptzeilen verhindert.
Wenn eine lange Linie im Skript steht, dann definiert sie die Breite des Textrahmens (Alternative: Skriptzeile wird abgeschnitten).

Die Skripts könnten auch ohne CODE verschickt werden, dann ist die Struktur aber nicht so deutlich zu erkennen.


als Antwort auf: [#200755]
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
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

https://www.impressed.de/schulung.php?c=sDetail&sid=327

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!