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( ', ');
}
Dienstag, 25. April 2017
Script für Index (f. ff.)
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 "f. ff.". Also aus 1, 2, 10, 11, 12 wird 1f. 10ff.
Script:
// Gruppierungf_ff.jsx
//Beschreibung: aus 1, 2, 10, 11, 12 -> 1f., 10ff.
var s = app.selection[0].parentStory;
app.findGrepPreferences = app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences.findWhat = '\\d+, ([\\d+, ])+';
var r = s.findGrep();
var myMax = r.length;
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;
var k = i +1;
while ( k < aString.length && a[k] == Number( a[k-1] ) + 1)
{
k++;
}
if ( Number(a[k-1]) >= Number( a[i] )+2 )
{
a[i] = a[i] + '\u2009ff.';
a.splice( i+1, k-1-i );
}
else if ( Number(a[k-1]) == Number( a[i] )+1 )
{
a[i] = a[i] + '\u2009f.';
a.splice( i+1, 1 );
}
}
return a.join( ', ');
}
Script:
// Gruppierungf_ff.jsx
//Beschreibung: aus 1, 2, 10, 11, 12 -> 1f., 10ff.
var s = app.selection[0].parentStory;
app.findGrepPreferences = app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences.findWhat = '\\d+, ([\\d+, ])+';
var r = s.findGrep();
var myMax = r.length;
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;
var k = i +1;
while ( k < aString.length && a[k] == Number( a[k-1] ) + 1)
{
k++;
}
if ( Number(a[k-1]) >= Number( a[i] )+2 )
{
a[i] = a[i] + '\u2009ff.';
a.splice( i+1, k-1-i );
}
else if ( Number(a[k-1]) == Number( a[i] )+1 )
{
a[i] = a[i] + '\u2009f.';
a.splice( i+1, 1 );
}
}
return a.join( ', ');
}
Abonnieren
Posts (Atom)