[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt automatischer Abstand zwischen 2 aufeinanderfolgenden Absatzformaten

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

automatischer Abstand zwischen 2 aufeinanderfolgenden Absatzformaten

Hans Haesler
  
Beiträge gesamt: 5826

25. Apr 2010, 10:12
Beitrag # 16 von 28
Beitrag ID: #440119
Bewertung:
(33890 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kai,

ja es stimmt halbwegs (d.h. nur der erste Punkt nicht). In der ersten if-Anweisung wird der Name des aktuellen Formates getestet und in der zweiten der Wert der Variablen 'lastOne'.

Das Verwenden dieser Ampel-Variablen (korrekter wäre flag [ = Flagge ]) ist notwendig, damit nicht jedem Aufzählungs-Absatz der "Abstand nach" zugewiesen wird, sondern nur dem letzten jeder Gruppe.

Die Ampel-Variable muss initialisiert sein, bevor es in die for-Schleife geht. Doch das ist streng genommen nur notwendig, wenn der letzte Absatz der Textkette eine Aufzählung ist. Aber weil man das nicht wissen kann, ist es besser diese Vorkehrung zu treffen.

Dabei kann der Wert entweder true oder false sein. Ich habe mich für true entschieden. Das bedeutet: die Ampel steht auf grün. Kommt ein Aufzählungs-Absatz, dann ist er der letzte, der Abstand wird zugewiesen und die Ampel auf rot geschaltet.

Wird beim nächsten Umgang auch ein Aufzählungs-Absatz gefunden, dann wird beim zweiten if-Test festgetellt, dass der Wert von 'lastOne' aktuell false ist und das Zuweisen des Abstandes wird unterlassen.

Wenn dann ein Fliesstext-Absatz drankommt, dann wird in der else-Anweisung die Ampel auf grün gestellt. Kommt anschliessend nochmals ein Fliesstext-Absatz wird der Wert erneut auf true gesetzt. Das könnte vermieden werden, indem mit einer if-Anweisung der Zustand von 'lastOne' geprüft wird. Aber das muss nicht sein, weil das Nicht-notwendige-Zuweisen nichts kostet.

Gruss, Hans


als Antwort auf: [#440115]
X

automatischer Abstand zwischen 2 aufeinanderfolgenden Absatzformaten

Kai Rübsamen
Beiträge gesamt: 4684

25. Apr 2010, 10:36
Beitrag # 17 von 28
Beitrag ID: #440120
Bewertung:
(33882 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wo nehmt ihr Skripter nur immer diese Logik her ;-)

Hans, klasse Skript. Besonders gefällt mir als Anfänger, dass im zweiten, größeren Skript die wichtigen Zeilen alle einen Kommentar haben. Das hilft beim lernen sehr :) Danke.

@ Martin: Wie schaffst du deinen Grep in zwei Durchläufen?
> Ich brauche leider drei:
1. S: \r + Format E: $0### (im nachfolgenden Absatz 3# einfügen)
2. S: ### E: leer + Format (dem Absatz mit 3# ein Format ohne Einzug zuweisen)
3. S: ### E: leer (die 3# wieder löschen)


als Antwort auf: [#440119]
(Dieser Beitrag wurde von Kai Rübsamen am 25. Apr 2010, 10:40 geändert)

automatischer Abstand zwischen 2 aufeinanderfolgenden Absatzformaten

Martin Fischer
  
Beiträge gesamt: 12783

26. Apr 2010, 08:11
Beitrag # 18 von 28
Beitrag ID: #440139
Bewertung:
(33817 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Rübi,

Antwort auf: @ Martin: Wie schaffst du deinen Grep in zwei Durchläufen?


Du hast recht.
Ich habe mich oben verschrieben.
Es braucht tatsächlich mindestens drei Durchläufe:
1. Markierung (S: \r + Format E: $0###)
2. Formatierung (S: ### E: leer + Format)
3. Aufräumen (S: ### E: leer)


In der Regel noch mehr, da Markierungsdurchlauf und Formatierungsdurchlauf für mehrere Überschriftenformate zu erledigen sind.

Du hast die notwendigen Suche/Ersetze-Einstellungen gut dokumentiert.


als Antwort auf: [#440120]

automatischer Abstand zwischen 2 aufeinanderfolgenden Absatzformaten

Quarz
Beiträge gesamt: 3555

26. Apr 2010, 11:55
Beitrag # 19 von 28
Beitrag ID: #440165
Bewertung: ||
(33786 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kai und Martin,

ich habe gestestet
und komme mit 2 Durchgängen aus.

1. S: \r + Format E: $0###
2. S: ###(\w) E: $1+ Format

Oder liege ich da irgendwo falsch?


Gruß Quarz

--------------------------------------------
InDesign CS4 ver6.04 | WinXP SP3



als Antwort auf: [#440139]

automatischer Abstand zwischen 2 aufeinanderfolgenden Absatzformaten

Kai Rübsamen
Beiträge gesamt: 4684

26. Apr 2010, 17:41
Beitrag # 20 von 28
Beitrag ID: #440201
Bewertung:
(33765 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ursula,

ich habe keine Ahnung was ich da bisher immer gemacht habe, aber: Du liegst goldrichtig :)

Ich kann es mir nur so erklären, dass ich bisher immer mit $0 im 2. Lauf ersetzt habe und da bleiben die ### stehen, weil der Unterausdruck ignoriert wird und alles in "Ändern in" landet.

Danke.


als Antwort auf: [#440165]
(Dieser Beitrag wurde von Kai Rübsamen am 26. Apr 2010, 17:42 geändert)

automatischer Abstand zwischen 2 aufeinanderfolgenden Absatzformaten

Hans Haesler
  
Beiträge gesamt: 5826

29. Apr 2010, 23:12
Beitrag # 21 von 28
Beitrag ID: #440684
Bewertung:
(33685 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Anita,

und hier ist die von Dir (per PM) gewünschte Version, welche bei einem Grossbuchstaben prüft, ob sich dieser am Absatzanfang oder mitten in einem Satz befindet.

Nach wie vor wird der Einzug aufgehoben, wenn ein Kleinbuchstabe an erster Stelle nach einer Aufzählung steht. Das ist zuverlässiger, als das Prüfen einer eventuell vorhandenen Interpunktion (Punkt, Ausrufezeichen, Fragezeichen).

Nur wenn ein Absatz mit einem Grossbuchstaben beginnt, wird bei der letzten Zeile vor der Aufzählung das letzte Zeichen vor dem Return geprüft. Ist es ein Zwischenraum, dann wird das drittletzte Zeichen untersucht. Wenn dies weder ein Punkt noch ein Ausrufezeichen noch ein Fragezeichen ist, dann wird weiter unten (nach der Aufzählung) der Einzug aufgehoben.

Code
//AbstandNach_403d.js 
//DESCRIPTION:Jeden letzten Aufzählungsabsatz mit "Abstand nach" versehen und die Einzüge des folgenden Absatzes aufheben

// die Variablen für die Anfangsbuchstaben der Formate
var psn1 = "02 GT";
var psn2 = "03 GT";
// der Wert für den "Abstand nach"
var spa = "0c3";

// vorsichtshalber die Dialoge einschalten
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;

// testen, ob ein Dokument geöffnet ist
if (app.documents.length == 0) {
alert ("Ein Dokument öffnen.", "Achtung");
exit();
}

// die Auswahl speichern und testen
var curSel = app.selection;
if (curSel.length == 0) {
alert ("Es ist nichts ausgewählt.", "Stop");
exit();
}

if (curSel[0].constructor.name != "InsertionPoint") {
alert ("Den Cursor in den Textfluss setzen.", "Stop");
exit();
}

// die Textkette und deren Absätze speichern
var curStory = curSel[0].parent;
var allParas = curStory.paragraphs;
// die Anzahl Absätze feststellen
var nParas = allParas.length;

// die Variable 'checkPunctuation' dient zum Bestimmen, ob die Interpunktion
// am Ende der letzten Zeile vor einer Aufzählung zu prüfen ist
var checkPunctuation = false;

// die Variable 'lastOne' dient als Ampel
var lastOne = true; // 'true' = 'wahr' = 'grün'
// eine Rückwärts-Schleife durch die Textkette
for (var p=nParas-1; p>-1; p--) {
// den Namen des aktuellen Absatzformates speichern
curParaStyle = allParas[p].appliedParagraphStyle.name;
// die ersten fünf Zeichen holen
curChars = curParaStyle.slice(0, 5);
// wenn diese Zeichen mit den Anfangsbuchstaben übereinstimmen ...
if (curChars == psn1 || curChars == psn2) {
// ... und die Ampel auf "grün" steht ...
if (lastOne) {
// ... den "Abstand nach" zuweisen ...
allParas[p].spaceAfter = spa;
// ... und die Ampel auf "rot" schalten
lastOne = false;
// prüfen, ob der Einzug aufgehoben werden muss
try {
// den ersten Buchstben des Folgeabsatzes speichern ...
var firstChar = allParas[p+1].characters[0].contents;
// und in einen Grossbuchstaben umwandeln
var testChar = firstChar.toUpperCase();
// wenn die beiden Zeichen ungleich sind, den Einzug aufheben
if (firstChar != testChar) {
allParas[p+1].firstLineIndent = 0;
}
// sonst ...
else {
// ... die Nummer des aktuellen Absatzes speichern
nextPara = p+1;
checkPunctuation = true;
// ( Anmerkung: wenn die Prüfung der Interpunktion des Absatz-Endes vor
// der Aufzählung ergeben wird, dass der Satz "aufzählungsübergreifend" ist,
// kann dank dieser Nummer der Einzug nachträglich aufgehoben werden )
}
}
catch (e) {
}
}
}
// sonst ...
else {
// ... die Ampel auf "grün" stellen
lastOne = true;
// wenn die Interpunktion geprüft werden muss ...
if (checkPunctuation) {
// ... das vorletzte Zeichen speichern (letztes = Return)
curPunct = allParas[p].characters.item(-2).contents;
// wenn dieses Zeichen ein Zwischenraum ist ...
if (curPunct == " ") {
// das drittletzte Zeichen speichern
curPunct = allParas[p].characters.item(-3).contents;
}
// wenn das gespeicherte Zeichen weder ein Punkt noch ein Ausrufezeichen
// noch ein Fragezeichen ist, dann "hinunterlangen" und den Einzug
// des Absatzes aufheben, dessen Index gespeichert wurde
if (curPunct != "." && curPunct != "!" && curPunct != "?") {
allParas[nextPara].firstLineIndent = 0;
}
checkPunctuation = false;
}
}
}

//das Ende der Aktion melden
var dlog = new Window("palette");
dlog.size = [200,100];
dlog.add("statictext", [80, 80, 200, 96], "Fertig.");
dlog.show();
// eine kleine Pause
$.sleep(1200);
// den Dialog schliessen
dlog.close();

Doch eine optische Prüfung wird auf jeden Fall erfolgen müssen. Denn es kommt vor, dass ein Satz mit einer Aufzählung beendet wird.

Gruss, Hans


als Antwort auf: [#440201]

automatischer Abstand zwischen 2 aufeinanderfolgenden Absatzformaten

Martin Fischer
  
Beiträge gesamt: 12783

30. Apr 2010, 17:33
Beitrag # 22 von 28
Beitrag ID: #440795
Bewertung:
(33632 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Quarz,

Antwort auf [ Quarz ] 1. S: \r + Format E: $0###
2. S: ###(\w) E: $1+ Format


Hab's jetzt erst aus gegebenem Anlass in der Praxis getestet.
Funktioniert tadellos.
Guter Trick mit der Mitnahme eines Zeichens nach ### über die Gruppenklammer.

Sicherheitshalber verwende ich
2. S: ^###(\w) E: $1+ Format

Aber das ist im Normalfall nicht nötig (es sei denn, der Autor verwendet ### mitten im Absatz z.B. als Blockade für Querverweise o.ä. und man hat's selbst noch nicht bemerkt).


als Antwort auf: [#440165]
(Dieser Beitrag wurde von Martin Fischer am 30. Apr 2010, 17:39 geändert)

automatischer Abstand zwischen 2 aufeinanderfolgenden Absatzformaten

cwenet
Beiträge gesamt: 1139

21. Mai 2010, 11:21
Beitrag # 23 von 28
Beitrag ID: #442669
Bewertung:
(33382 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Lieber Hans,

ich habe nochmal probiert, aber irgendwie gelingt es mir nicht:
Code
var psn = "U1";   
var spa = "0";

// vorsichtshalber die Dialoge einschalten
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;

// testen, ob ein Dokument geöffnet ist
if (app.documents.length == 0) {
alert ("Ein Dokument öffnen.", "Achtung");
exit();
}

// die Auswahl speichern und testen
var curSel = app.selection;
if (curSel.length == 0) {
alert ("Es ist nichts ausgewählt.", "Stop");
exit();
}

if (curSel[0].constructor.name != "InsertionPoint") {
alert ("Den Cursor in den Textfluss setzen.", "Stop");
exit();
}

// die Textkette und deren Absätze speichern
var curStory = curSel[0].parent;
var allParas = curStory.paragraphs;
// die Anzahl Absätze feststellen
var nParas = allParas.length;

var lastOne = true;
// eine Rückwärts-Schleife durch die Textkette
for (var p=nParas-1; p>-1; p--) {
curParaStyle = allParas[p].appliedParagraphStyle.name;
if (curParaStyle == psn) {
if (lastOne) {
if (allParas[p+1] ="normal"){
allParas[p+1].firstLineIndent = spa;// Einzug erste Zeile = null
}
lastOne = false;
}
}
else {
lastOne = true;
}
}

Ich möchte nach Überschriften den Absatz, der mit "normal" formatiert wurde, bearbeiten. Hier soll z.B. Der Erstzeileneinzug entfernt werden. Im Moment wird trotzdem der Einzug entfernt auch wenn ein anderes Absatzformat nach U1 eingestellt wurde.
Und:
Wie kann ich mehrere Paare in 1 Script bearbeiten?
Also U1 + normal, U2 + normal, usw.

Über Hilfe freue ich mich,

Gruss
Christoph


als Antwort auf: [#440082]

automatischer Abstand zwischen 2 aufeinanderfolgenden Absatzformaten

Hans Haesler
  
Beiträge gesamt: 5826

21. Mai 2010, 15:30
Beitrag # 24 von 28
Beitrag ID: #442703
Bewertung:
(33359 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

ich habe Deine Anfrage erst jetzt bemerkt, weil die Benachrichtigung nicht funktioniert.

Also ... allParas[p+1] ist "nur" der nachfolgende Absatz. Deshalb muss Name des verwendeten Absatzformates eingefügt werden.

Die Zeile ...

Code
if (allParas[p+1] ="normal"){ 

... so ergänzen:

Code
if (allParas[p+1].appliedParagraphStyle.name == "normal"){ 


Also .appliedParagraphStyle.name, aber auch das Gleichheitszeichen verdoppeln. Und: ist der Name "normal"? Oder doch eher "Normal"?

Wie kann mehr als ein Format berücksichtigt werden? Das wird in meinem Beitrag vom 29. April demonstriert. Versuche bitte mal, den Code für Deine Zwecke abzuändern. Das schaffst Du schon. :-)

Gruss, Hans


als Antwort auf: [#442669]

automatischer Abstand zwischen 2 aufeinanderfolgenden Absatzformaten

cwenet
Beiträge gesamt: 1139

21. Mai 2010, 16:46
Beitrag # 25 von 28
Beitrag ID: #442706
Bewertung:
(33341 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen Dank Hans,

den 29. April habe ich mir jetzt angeschaut und das Script angepasst.
Dabei habe ich die Abfrage, ob ein Zeichen Gross ist, entfernt. Komischerweise wird der Zeileneinzug jetzt nur bei U2 gemacht. Kann aber nicht nachvollziehen warum.

Code
//AbstandNach_403d.js  
//DESCRIPTION:Jeden letzten Aufzählungsabsatz mit "Abstand nach" versehen und die Einzüge des folgenden Absatzes aufheben

// die Variablen für die Anfangsbuchstaben der Formate
var psn1 = "U1";
var psn2 = "U2";
var psn3 = "U3";
var psn4 = "U4";
var psn5 = "U5";
var psn6 = "U6";


// vorsichtshalber die Dialoge einschalten
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;

// testen, ob ein Dokument geöffnet ist
if (app.documents.length == 0) {
alert ("Ein Dokument öffnen.", "Achtung");
exit();
}

// die Auswahl speichern und testen
var curSel = app.selection;
if (curSel.length == 0) {
alert ("Es ist nichts ausgewählt.", "Stop");
exit();
}

if (curSel[0].constructor.name != "InsertionPoint") {
alert ("Den Cursor in den Textfluss setzen.", "Stop");
exit();
}

// die Textkette und deren Absätze speichern
var curStory = curSel[0].parent;
var allParas = curStory.paragraphs;
// die Anzahl Absätze feststellen
var nParas = allParas.length;

// die Variable 'checkPunctuation' dient zum Bestimmen, ob die Interpunktion
// am Ende der letzten Zeile vor einer Aufzählung zu prüfen ist
var checkPunctuation = false;

// die Variable 'lastOne' dient als Ampel
var lastOne = true; // 'true' = 'wahr' = 'grün'
// eine Rückwärts-Schleife durch die Textkette
for (var p=nParas-1; p>-1; p--) {
// den Namen des aktuellen Absatzformates speichern
curParaStyle = allParas[p].appliedParagraphStyle.name;
// die ersten fünf Zeichen holen
curChars = curParaStyle.slice(0, 5);
// wenn diese Zeichen mit den Anfangsbuchstaben übereinstimmen ...
if (curChars == psn1 || curChars == psn2 || curChars == psn3 || curChars == psn4 || curChars == psn5 || curChars == psn6) {
// ... und die Ampel auf "grün" steht ...
if (lastOne) {
// ... Einzug aufheben ...
allParas[p+1].firstLineIndent = 0;
// ... und die Ampel auf "rot" schalten
lastOne = false;
}
}
}
//das Ende der Aktion melden
var dlog = new Window("palette");
dlog.size = [200,100];
dlog.add("statictext", [80, 80, 200, 96], "Fertig.");
dlog.show();
// eine kleine Pause
$.sleep(1200);
// den Dialog schliessen
dlog.close();


Die Absätze sind aber alle richtig benannt.
Hast du eine Idee?

Gruss
Christoph


als Antwort auf: [#442703]

automatischer Abstand zwischen 2 aufeinanderfolgenden Absatzformaten

Hans Haesler
  
Beiträge gesamt: 5826

21. Mai 2010, 17:30
Beitrag # 26 von 28
Beitrag ID: #442709
Bewertung:
(33322 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

das muss ich mir näher anschauen. Das heisst, versuchen ein Dokument zu erstellen, mit welchem ich das Problem nachvollziehen kann.

Es sei denn ... würdest Du mir bitte ein Testdokument zustellen? Dann könnte ich Zeit sparen und die Bedingungen würden sofort dieselben sein.

Ich werde aber jetzt gleich die Maschine herunterfahren und erst im Laufe des Abends die Sache prüfen.

Vorab nur dies: Die Verwendung der Ampel-Variablen scheint mir nicht notwendig. Die Voraussetzungen in Anitas Dokument machten es notwendig, damit bei mehreren aufeinanderfolgen Absätzen nur der letzte berücksichtigt wird.

Gruss, Hans


als Antwort auf: [#442706]

automatischer Abstand zwischen 2 aufeinanderfolgenden Absatzformaten

Hans Haesler
  
Beiträge gesamt: 5826

21. Mai 2010, 23:15
Beitrag # 27 von 28
Beitrag ID: #442717
Bewertung:
(33285 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

ich bedanke mich für das Testdokument.

Wie schon gesagt: die Ampelvariable braucht es nicht. Und wenn man den Test if (lastOne) { weglässt, dann werden die Einzüge wie gewünscht aufgehoben.

Weil Deine Formatnamen nur zwei Zeichen umfassen, sollte das Holen der ersten fünf Zeichen eigentlich einen Fehler verursachen:

Code
curChars = curParaStyle.slice(0, 5); 

Aber JavaScript kann nachsichtig sein und liefert brav nur die beiden vorhandenen Zeichen.

Doch man könnte eigentlich den ganzen Namen zum Test heranziehen:

Code
var psn = allParas[p].appliedParagraphStyle.name; 
// wenn der Name mit einem der Absatzformat-Namen übereinstimmt ...
if (psn == psn1 || psn == psn2 || psn == psn3 || psn == psn4 || psn == psn5 || psn == psn6) {

Nachstehend der geänderte Code (Scriptname und Beschreibung ebenfalls):

Code
//EinzugWeg_401d.js 
//DESCRIPTION:Den Einzug aufheben, wenn der Absatz nach einem Untertitel mit "normal" formatiert ist

// die Variablen für die Namen der Formate
var psn1 = "U1";
var psn2 = "U2";
var psn3 = "U3";
var psn4 = "U4";
var psn5 = "U5";
var psn6 = "U6";

// vorsichtshalber die Dialoge einschalten
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;

// testen, ob ein Dokument geöffnet ist
if (app.documents.length == 0) {
alert ("Ein Dokument öffnen.", "Achtung");
exit();
}

// die Auswahl speichern und testen
var curSel = app.selection;
if (curSel.length == 0) {
alert ("Es ist nichts ausgewählt.", "Stop");
exit();
}

if (curSel[0].constructor.name != "InsertionPoint") {
alert ("Den Cursor in den Textfluss setzen.", "Stop");
exit();
}

// die Textkette und deren Absätze speichern
var curStory = curSel[0].parent;
var allParas = curStory.paragraphs;
// die Anzahl Absätze feststellen
var nParas = allParas.length;

// eine Schleife durch die Textkette
for (var p=0; p<nParas; p++) {
// den Namen des aktuellen Absatzformates speichern
var psn = allParas[p].appliedParagraphStyle.name;
// wenn der Name mit einem der Absatzformat-Namen übereinstimmt ...
if (psn == psn1 || psn == psn2 || psn == psn3 || psn == psn4 || psn == psn5 || psn == psn6) {
// ... und der nächste Absatz mit "normal" formatiert ist ...
if (allParas[p+1].appliedParagraphStyle.name == "normal") {
// ... dessen Einzug aufheben
allParas[p+1].firstLineIndent = 0;
}
}
}

//das Ende der Aktion melden
var dlog = new Window("palette");
dlog.size = [200,100];
dlog.add("statictext", [80, 80, 200, 96], "Fertig.");
dlog.show();
// eine kleine Pause
$.sleep(1200);
// den Dialog schliessen
dlog.close();

Die Schleife läuft nun vorwärts, und der Test des Absatzformat-Namens des Absatzes nach dem Unteritel ist eingefügt.

Weil alle Untertitelnamen mit "U" beginnen, könnte man nur diesen ersten Buchstaben prüfen. Hier ein Auszug des Scripts (nur die Schleife):

Code
// eine Schleife durch die Textkette 
for (var p=0; p<nParas; p++) {
// das erste Zeichen des Namens des aktuellen Absatzformates speichern
var firstChar = allParas[p].appliedParagraphStyle.name[0];
// wenn dieser Buchstabe ein "U" ist ...
if (firstChar == "U") {
// ... und der nächste Absatz mit "normal" formatiert ist ...
if (allParas[p+1].appliedParagraphStyle.name == "normal") {
// ... dessen Einzug aufheben
allParas[p+1].firstLineIndent = 0;
}
}
}

Die eingangs definierten Formatnamen-Variablen braucht es dann nicht mehr. Das funktioniert aber nur, wenn kein anderer Formatname mit "U" beginnt.

Gruss, Hans


als Antwort auf: [#442709]

automatischer Abstand zwischen 2 aufeinanderfolgenden Absatzformaten

cwenet
Beiträge gesamt: 1139

22. Mai 2010, 10:03
Beitrag # 28 von 28
Beitrag ID: #442720
Bewertung:
(33249 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Lieber Hans,

vielen Dank für Dein Script und auch die ausführlichen Erläuterungen. So klappt es wunderbar.

Schöne Grüße
Christohp


als Antwort auf: [#442717]
X

Aktuell

InDesign / Illustrator
MTT_300x300_11_2022

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
18.06.2024

Online
Dienstag, 18. Juni 2024, 10.00 - 10.30 Uhr

Webinar

In diesen beiden kostenlose Webinaren erfahren Sie, wie Sie mit Hilfe von Enfocus Griffin und dem Impressed Workflow Server Ihren LFP-Workflows optimieren können. 18.06.2024: So optimieren Sie Ihre Prozesse mit Enfocus Griffin 02.07.2024: So sparen Sie Zeit und Geld mit Impressed Workflow Server in der LFP-Edition Griffin: Griffin ist das leistungsstarke Kraftpaket für das automatische Nesting im Großformatdruck. Dank eines ausgeklügelten, KI-basierten Nesting-Algorithmus können Sie mit Griffin Vorlagen schnell und effizient vernutzen – und das klappt auch mit unregelmäßigen Formen perfekt. Das spart Ihnen unzählige Stunden, die Sie bisher mit dem manuellen Nesting und Ausschießen verbracht haben. Einige wichtige Funktionen ≡ Anlage von Beschnittzugaben ≡ Automatische Erzeugung der Schnittkontur ≡ Erstellung von Strichcodes, Textmarkierungen und Registrierungen IWS LFP Edition: 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? Mit dem IWS LFP Edition automatisieren Sie Ihre Produktion von der Übernahme der Daten aus dem ERP-System bis zur Erzeugung der verschachtelten Druckform und der Übergabe an den RIP. Phoenix Core ist eine hochentwickelte KI-Technologie für die Planung und das Nesting von Druckerzeugnissen. Anders als herkömmliche Ausschießlösungen arbeitet Phoenix nicht auf Basis von Vorlagen, sondern erzeugt entsprechend der Maschinen- und Produktionsanforderungen druckfertige Layouts „on-the-fly“.

kostenlos

Ja

Organisator: Impressed GmbH

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

So optimieren Sie Ihren LFP-Workflow
Veranstaltungen
02.07.2024

Online
Dienstag, 02. Juli 2024, 10.00 - 10.30 Uhr

Webinar

In diesen beiden kostenlose Webinaren erfahren Sie, wie Sie mit Hilfe von Enfocus Griffin und dem Impressed Workflow Server Ihren LFP-Workflows optimieren können. 18.06.2024: So optimieren Sie Ihre Prozesse mit Enfocus Griffin 02.07.2024: So sparen Sie Zeit und Geld mit Impressed Workflow Server in der LFP-Edition Griffin: Griffin ist das leistungsstarke Kraftpaket für das automatische Nesting im Großformatdruck. Dank eines ausgeklügelten, KI-basierten Nesting-Algorithmus können Sie mit Griffin Vorlagen schnell und effizient vernutzen – und das klappt auch mit unregelmäßigen Formen perfekt. Das spart Ihnen unzählige Stunden, die Sie bisher mit dem manuellen Nesting und Ausschießen verbracht haben. Einige wichtige Funktionen ≡ Anlage von Beschnittzugaben ≡ Automatische Erzeugung der Schnittkontur ≡ Erstellung von Strichcodes, Textmarkierungen und Registrierungen IWS LFP Edition: 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? Mit dem IWS LFP Edition automatisieren Sie Ihre Produktion von der Übernahme der Daten aus dem ERP-System bis zur Erzeugung der verschachtelten Druckform und der Übergabe an den RIP. Phoenix Core ist eine hochentwickelte KI-Technologie für die Planung und das Nesting von Druckerzeugnissen. Anders als herkömmliche Ausschießlösungen arbeitet Phoenix nicht auf Basis von Vorlagen, sondern erzeugt entsprechend der Maschinen- und Produktionsanforderungen druckfertige Layouts „on-the-fly“.

kostenlos

Ja

Organisator: Impressed GmbH

Kontaktinformation: E-Mailschulungen AT impressed DOT de

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

So optimieren Sie Ihren LFP-Workflow