Dienstag, 25. April 2017

Script für Index (von bis)

Da die Seitenverweise in einem Index oft sehr umfangreich sein können sollte man aufeinanderfolgende Zahlenreihen mit "von-bis" bzw. "f. ff." kennzeichnen. Hier der Script für die automatische Änderung aufeinanderfolgender Zahlen in "von bis". Also aus 1, 2, 10, 11, 12 wird 1-2, 10-12

Hier der Script dazu:

// Gruppierung_von_bis.jsx

//Beschreibung: 1, 2, 10, 11, 12 -> 1-2, 10-12

var s = app.selection[0].parentStory;
app.findGrepPreferences = app.changeGrepPreferences = NothingEnum.nothing;

app.findGrepPreferences.findWhat = '\\d+, ([\\d+, ])+';
var r = s.findGrep();
for ( aLine = r.length-1; aLine >= 0; aLine-- )
r[aLine].contents= checkOneLine ( r[aLine].contents );

function checkOneLine ( aString )
{
var a = aString.split( ', ');
for ( var i = 0; i < aString.length-1; i++ )
{
var k = i +1;
while ( k < aString.length && a[k] == Number( a[k-1] ) + 1)
{
k++;
}
if ( Number(a[k-1]) >  Number( a[i] ) )
{
a[i] = a[i] + '–' + a[k-1];
a.splice( i+1, k-1-i );
}
}
return  a.join( ', ');
}

Keine Kommentare:

Kommentar veröffentlichen