[GastForen Programme Print/Bildbearbeitung Adobe InDesign

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste

Flattersatzausgleich

Martin Fischer
  
Beiträge gesamt: 12783

16. Okt 2019, 06:18
Bewertung:

gelesen: 5876

Beitrag als Lesezeichen
Nach einer Nacht drüber schlafen bin ich zu folgendem Ergebnis gekommen, das mir plausibel erscheint:
  • NO_BALANCING = kein Flattersatzausgleich
  • FULLY_BALANCED = Flattersatzausgleich wie "Blocksatz (alle Zeilen)"
  • PYRAMID_SHAPE = Pyramidenform (oben schmalere Textzeilen, unten breitere)
  • VEE_SHAPE = V-Form (oben breitere Textzeilen, unten schmalere)

Die Formen scheinen mir allerdings eher versteckte, grobe Richtlinien für den Zeilenfall als tatsächlich optisch zu erkennende Textgestalten zu sein.
Da liegt noch Potenzial für Flattersatztechniken in späteren InDesign-Versionen drin. ;-)

Da der Flattersatzausgleich nur mit aktivem Absatzsetzer funktioniert, ist im folgenden Code die Umstellung auf den Absatzsetzer implementiert.

Code
// Flattersatzstil.jsx 

if (app.selection.length > 0 && app.selection[0].hasOwnProperty('parentStory'))
{
var result = null,
start = app.selection[0].insertionPoints.firstItem().balanceRaggedLines,
bl_styles = [
BalanceLinesStyle.NO_BALANCING,
BalanceLinesStyle.FULLY_BALANCED,
BalanceLinesStyle.PYRAMID_SHAPE,
BalanceLinesStyle.VEE_SHAPE
],
bl_st_names = [];

bl_st_names = bl_styles.join('#').replace(/_/g,' ').toLowerCase().split('#');

result = get_bl_style(bl_styles, bl_st_names, start);
if (result != null)
{
if (bl_styles[result] != BalanceLinesStyle.NO_BALANCING)
set_composer( app.selection[0].texts.firstItem() ); // Absatzsetzer statt Ein-Zeilen-Setzer
app.selection[0].texts.firstItem().balanceRaggedLines = bl_styles[result];
}

function get_bl_style(bl_styles, bl_st_names, start)
{
var i = 0;
var check = [];
var w = new Window ("dialog", "Flattersatzstil");
w.alignChildren = "left";

for (i = 0; i < bl_st_names.length; i++)
{
check[i] = w.add ("radiobutton", undefined, bl_st_names[i]);
if (bl_styles[i] == start)
check[i].value = true;
};

var b = w.add ("group");
b.alignment = "right";
b.add ("button", undefined, "Cancel", {name: "Cancel"});
b.add ("button", undefined, "OK", {name: "Ok"});

if (w.show() != 2)
{
for (i = 0; i < check.length; i++)
{
if (check[i].value)
return i;
};
return myList.selection.index;
}
else
return null;
}

function set_composer(sel)
{
for (var i = 0; i < sel.paragraphs.length; i++)
{
if (app.findKeyStrings(sel.paragraphs[i].composer) == '$ID/HL Single')
sel.paragraphs[i].composer = '$ID/HL Composer';
else if (app.findKeyStrings(sel.paragraphs[i].composer) == '$ID/HL Single Optyca')
sel.paragraphs[i].composer = '$ID/HL Composer Optyca';
};
}
}


(Dieser Beitrag wurde von Martin Fischer am 16. Okt 2019, 06:31 geändert)
Änderungsverlauf:
Beitrag geändert von Martin Fischer (Moderator) am 16. Okt 2019, 06:20
Beitrag geändert von Martin Fischer (Moderator) am 16. Okt 2019, 06:22
Beitrag geändert von Martin Fischer (Moderator) am 16. Okt 2019, 06:30
Beitrag geändert von Martin Fischer (Moderator) am 16. Okt 2019, 06:31