hilfdirselbst.ch
Facebook Twitter gamper-media

Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign » Indexhilfe gewünscht

 



suppel p
Beiträge: 194

16. Nov 2007, 22:07

Beitrag #1 von 6
Bewertung:

(2902 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Indexhilfe gewünscht


Hallo Forum,
bin gerade dabei einen Index von Buchtiteln zu erstellen. Benutze auch dafür das Java-Script "IndexfromList".
In meiner Liste stehen Begriffe wie "Herr der Ringe"; "Die Simpson";
Als Ergebnis erhalte ich dann aber für jedes Wort die Seitenzahlhinweise.
Also: Herr 1,2,3,4,5
der 1,2,3,4,5,6
Ringe 1,2,3,4,5
Da es sich um eine große Zahl von Titeln handelt, wäre es sehr mühsam, alle aufzusuchen und entsprechend zu makieren.
Gibt es einen Trick, z.B bestimmte Zeilenschaltung in der Textdatei oder einen Workaround um dieses Problem zu lösen?

Danke für Tipps!

gruss suppel
Top

Martin Fischer  M  p
Beiträge: 9696

16. Nov 2007, 22:19

Beitrag #2 von 6
Beitrag ID: #322811

Bewertung:

(2896 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Indexhilfe gewünscht


Hallo Suppel,

ich glaub, der Hans hat mal was gemacht:
http://www.hilfdirselbst.ch/...i?post=200208#200208

Weiß aber nicht, ob das Skript mal veröffentlicht wurde.


Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#322808] Top

suppel p
Beiträge: 194

16. Nov 2007, 22:32

Beitrag #3 von 6
Beitrag ID: #322812

Bewertung:

(2884 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Indexhilfe gewünscht


Hallo Martin,
vielen Dank für die Antwort.
Mir geht es nicht um die Zahlen, sondern vielmehr um die Begriffe bzw Titel.
Weil die Wörter "Herr", "der" oder "Ringe" auch in anderen Kombinationen stehen, ist das resultierende Ergebnis nicht zuverlässig.
Kann ich denn nicht über Greb die Suchbegriffe (Wortkombinationen) mit der Indexmarke markieren?

Gruß suppel

als Antwort auf: [#322811] Top

Martin Fischer  M  p
Beiträge: 9696

16. Nov 2007, 22:58

Beitrag #4 von 6
Beitrag ID: #322817

Bewertung:

(2880 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Indexhilfe gewünscht


Oh Suppel,

sorry!
Ich habe einen Haufen Zahlen gesehen, "Index" gelesen und daraus eine mögliche Frage formuliert, die ich auf dem schnellsten Weg beantworten konnte. Dabei ist mir Deine eigentliche Frage untergegangen. ;-)

In dem Skript findest Du folgende Zeilen:
Code
// löschen von Leerzeichen am Ende der Zeile + löschen von leeren Zeilen  
aText = aText.replace(/ +\n/g, '\n').replace(/\n+/g, '\n');
// ersetzen von mehrfach aufeinander folgende Leerzeichen aller Art und von RETURNs durch RETURNs
aText = aText.replace(/\s+/g, '\n');


Kommentiere die Zeilen, die mit "aText" beginnen, kurzfristig folgendermaßen aus und mach einen Test.
Code
// löschen von Leerzeichen am Ende der Zeile + löschen von leeren Zeilen  
//aText = aText.replace(/ +\n/g, '\n').replace(/\n+/g, '\n');
// ersetzen von mehrfach aufeinander folgende Leerzeichen aller Art und von RETURNs durch RETURNs
//aText = aText.replace(/\s+/g, '\n');


Bei genauerem Hinsehen stelle ich fest, daß der Code für Deinen Zweck besser folgendermaßen angepaßt werden könnte:

Code
// löschen von Leerzeichen am Ende der Zeile + löschen von leeren Zeilen  
aText = aText.replace(/ +\n/g, '\n').replace(/\n+/g, '\n');
// ersetzen von mehrfach aufeinander folgende Leerzeichen aller Art durch ein Leerzeichen
aText = aText.replace(/ +/g, ' ');



Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#322812]

(Dieser Beitrag wurde von Martin Fischer am 16. Nov 2007, 23:26 geändert)
Top

suppel p
Beiträge: 194

16. Nov 2007, 23:28

Beitrag #5 von 6
Beitrag ID: #322820

Bewertung:

(2871 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Indexhilfe gewünscht


Hallo Martin,
no worries,
habe deine Anmerkung schon in anderem Thread gelesen, aber nicht ganz verstanden, warum man die Zeilen auskommentieren muss.
Aber jetzt läuft es prima und Danke für die nächtlich Hilfe.

gruss suppel

als Antwort auf: [#322817] Top

Martin Fischer  M  p
Beiträge: 9696

16. Nov 2007, 23:41

Beitrag #6 von 6
Beitrag ID: #322822

Bewertung:

(2865 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Indexhilfe gewünscht


> aber nicht ganz verstanden, warum man die Zeilen auskommentieren muss.

Diese Zeilen sollten eigentlich einer Fehlerkorrektur dienen.
Das Skript war dazu gedacht, nur einzelne Wörter zu indexieren.
Deshalb wurde nicht nur die Zeilenschaltung als Begriffsgrenze gehandhabt, sondern auch ein Leerzeichen zwischen Wörtern.
Damit sind Peter und ich aber über das Ziel hinausgeschossen.

Richtig ist m.E. die Prüfung und Korrektur von mehreren aufeinanderfolgenden Leerzeichen.
Du bist aber mit der Wortreihe "Herr der Ringe" dem übertriebenen Kontrollbedürfnis eines Skripters mit verwegenen Unterstellungen zum Opfer gefallen. Skripter haben eben ihre eigenen Vorstellungen von den Vorstellungen der Anwender und den möglichen Fehlern, die sie machen könnten. ;-)

Hier das ganze Skript:
Code
// IndexFromList_1.jsx   
//DESCRIPTION: Erzeugt Indexeinträge anhand einer externen Konkordanzdatei, die über einen Dialog ausgewählt wird.

var myDoc = app.activeDocument;
var myList = File.openDialog ("Liste mit Indexbegriffen");
if (!myList) exit();

var myWords = getWords(myList);
proceedWithList(myWords);
alert("Erledigt!");

// Konkordanzliste einlesen
function getWords (aFile) {
if (aFile.exists) {
aFile.open ('r', undefined, undefined);
var aText = aFile.read()+'\n';
// löschen von Leerzeichen am Ende der Zeile + löschen von leeren Zeilen
aText = aText.replace(/ +\n/g, '\n').replace(/\n+/g, '\n');
// ersetzen von zwei und mehr aufeinander folgenden Leerzeichen durch ein Leerzeichen
aText = aText.replace(/ {2,}/g, ' ');

var words = aText.split('\n');
aFile.close();
return words;
}
else {
exit();
}
}

// Begriffsliste abarbeiten
function proceedWithList (w) {
// bei Bedarf wird ein neuer Index erzeugt
if (myDoc.indexes.length == 0)
myDoc.indexes.add();

app.findPreferences = app.changePreferences = null;

for (var i = 0; i < w.length; i++)
if (w[i] != "")
makeEntry(w[i]);

// Aktualisieurng des Index
myDoc.indexes[0].update();
}

// Indexeintrag erzeugen
function makeEntry(oneWord) {
var myResult = myDoc.search(oneWord, true, true, undefined);
for (var oneEntry = myResult.length-1; oneEntry >=0; oneEntry--) {
// Fehler abfangen, z.B. Fußnoten ausnehmen
try {
// Hinzufügen des Themas
myDoc.indexes[0].topics.add(oneWord);
// Hinzufügen der Referenz
myDoc.indexes[0].topics.item(myResult[oneEntry].contents).pageReferences.add(myResult[oneEntry], PageReferenceType.currentPage);
}
catch(e) {}
}
}



Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#322820] Top


Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign » Indexhilfe gewünscht


^