[GastForen Programme Print/Bildbearbeitung Adobe InDesign Alpha-Liste Abstand vor neuem 1. Buchstaben einfügen

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

Alpha-Liste Abstand vor neuem 1. Buchstaben einfügen

Christian50
Beiträge gesamt: 5

6. Aug 2019, 13:43
Beitrag # 1 von 3
Bewertung:
(1446 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo in die Runde!
Ich suche ein Script oder einer Möglichkeit in einer alphabetisch sortierten Liste (Inhaltsverzeichnis) vor jeder Zeile mit neuem Anfangsbuchstaben einen zusätzlichen Abstand einzufügen:

Axxxx
Axxxx
- Abstand
Bxxxx

usw.

Ich würde mich über einen Tipp freuen.

Viele Grüße und Dank im Voraus
Christian
X

Alpha-Liste Abstand vor neuem 1. Buchstaben einfügen

Hans Haesler
Beiträge gesamt: 5826

6. Aug 2019, 19:56
Beitrag # 2 von 3
Beitrag ID: #571343
Bewertung:
(1402 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christian,

herzlich willkommen im InDesign-Forum auf HilfDirSelbst! :-)

Wenn ich es richtig verstehe, sollen die Absätze eines Textrahmens der Reihe nach geprüft werden.
Sobald der erste Buchstabe anders ist, als jene der vorhergehenden Absätze: Dem aktuellen Absatz einen "Abstand vor" zuweisen.

Mit folgendem Script sollte dies funktionieren. Vor dem Starten des Scripts den Textrahmen auswählen. Es genügt, die Einfügemarke blinken zu lassen.

Code
//Abstand_vor.js 

var spaceVal = 2;

// die Auswahl ...
var curSel = app.selection ;
// ... und deren Typ
if (curSel.length != 0) {
var curType = curSel[0].constructor.name;
}
else {
alert ("Es ist nichts ausgewählt.", "Stop");
exit();
}
// den Textrahmen der Auswahl bestimmen
if (curType == "TextFrame") {
var sourceFrame = curSel[0];
}
else if (curType == "InsertionPoint") {
var sourceFrame = curSel[0].parent.textContainers[0];
}
else if (curSel[0].hasOwnProperty("baseline")) {
var sourceFrame = curSel[0].parent.textContainers[0];
}
else {
alert ("Bitte einen Textrahmen auswählen.", "Stop");
exit();
}

// die Absätze des Textes ...
var allParas = sourceFrame.parentStory.paragraphs;
// ... und deren Anzahl
var nParas = allParas.length;

// die Variable 'oldChar' initialisieren
var oldChar = "Z";

// eine Schleife durch die Absätze
for (var p=0; p<nParas; p++) {
var firstChar = allParas[p].characters[0].contents;
if (p>0) {
if (firstChar != oldChar) {
allParas[p].spaceBefore = spaceVal;
oldChar = firstChar;
}
}
}

// das Ende der Aktion verkünden
var dlog = new Window("palette");
dlog.size = [320,100];
dlog.add("statictext", [80, 100, 320, 116], "Fertig.");
dlog.show();
// eine kleine Pause
$.sleep(999);
// das Fenster schliessen
dlog.close();

Ach ja: Der Wert des Abstandes kann zu Beginn des Scripts in der Zeile ...

Code
var spaceVal = 2; 

... in Millimetern definiert werden.

Gruss, Hans


als Antwort auf: [#571335]

Alpha-Liste Abstand vor neuem 1. Buchstaben einfügen

Christian50
Beiträge gesamt: 5

7. Aug 2019, 16:37
Beitrag # 3 von 3
Beitrag ID: #571368
Bewertung:
(1300 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
das klappt bestens. Genau so wie ich es mir vorgestellt habe.
Vielen Dank!
Christian


als Antwort auf: [#571343]