[GastForen Programme Print/Bildbearbeitung Adobe InDesign Indexhilfe gewünscht

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

Indexhilfe gewünscht

suppel
Beiträge gesamt: 203

16. Nov 2007, 22:07
Beitrag # 1 von 9
Bewertung:
(12036 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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
X

Indexhilfe gewünscht

Martin Fischer
  
Beiträge gesamt: 12783

16. Nov 2007, 22:19
Beitrag # 2 von 9
Beitrag ID: #322811
Bewertung:
(12016 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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.


als Antwort auf: [#322808]

Indexhilfe gewünscht

suppel
Beiträge gesamt: 203

16. Nov 2007, 22:32
Beitrag # 3 von 9
Beitrag ID: #322812
Bewertung:
(12004 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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]

Indexhilfe gewünscht

Martin Fischer
  
Beiträge gesamt: 12783

16. Nov 2007, 22:58
Beitrag # 4 von 9
Beitrag ID: #322817
Bewertung:
(12000 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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, ' ');



als Antwort auf: [#322812]
(Dieser Beitrag wurde von Martin Fischer am 16. Nov 2007, 23:26 geändert)

Indexhilfe gewünscht

suppel
Beiträge gesamt: 203

16. Nov 2007, 23:28
Beitrag # 5 von 9
Beitrag ID: #322820
Bewertung:
(11991 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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]

Indexhilfe gewünscht

Martin Fischer
  
Beiträge gesamt: 12783

16. Nov 2007, 23:41
Beitrag # 6 von 9
Beitrag ID: #322822
Bewertung:
(11985 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
> 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) {}
}
}



als Antwort auf: [#322820]

Indexhilfe gewünscht

Gursina
Beiträge gesamt: 6

15. Jan 2023, 15:09
Beitrag # 7 von 9
Beitrag ID: #585290
Bewertung:
(2237 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin, hallo restliche Scripting-Könner:innen

Ich bin Anfängerin, was scripting anbelangt und versuche gerade dieses Script zum Laufen zu bringen.
Meine Ausgangslage ist ein Indesign-Buch mit Querverweisen aus Hilfstabellen, welche nicht im Buch enthalten sind. Diese Querverweis-Inhalte möchte ich im Index.

Ich sehe bisher zwei mögliche Wege.
Weg 1. Die Hilfstabellen in eine Konkordanzliste in Word umwandeln, so dass ich dieses Scirpt hier anwenden kann.
Weg 2. Den Index aufgrund von Stilvorlagen erstellen: https://creativepro.com/files/kahrel/indesign/index_independent.html

Weg 1 ist vielleicht etwas umständlicher, aber ich bin optimistischer, dass ich damit zum Ziel kommen kann.
Aber es gibt noch ein paar Stolpersteine:

Der erst Teil funktioniert: Ich kann die Konkordanzliste suchen und wählen.

Danach zeigt es mir die Zeile 37 als Fehlerquelle an:
app.findPreferences = app.changePreferences = null;
mit dem Kommentar: Objekt unterstützt Eigenschaft oder Methode changePreferences nicht.
Dies habe ich zu
app.findGrepPreferences = app.changeGrepPreferences = null;
gewechselt.
Die Fehlermeldung verschwindet, aber bewirkt es auch das Richtige?

Danach kommt eine Fehlermeldung für Zeile 49
var myResult = myDoc.search(oneWord, true, true, undefined);
Kommentar: myDoc.search ist keine Funktion.
Und hier stehe ich nun an, da ich keine Alternative gefunden habe, mit der es keine Fehlermeldung gibt.
Hat mir jemand einen Tipp?

Ich arbeite mit Windows11 und InDesign CS5.5, Version 7.5.3

Viele Grüße
Gaby


als Antwort auf: [#322822]
(Dieser Beitrag wurde von Gursina am 15. Jan 2023, 15:13 geändert)

Indexhilfe gewünscht

Martin Fischer
  
Beiträge gesamt: 12783

15. Jan 2023, 16:21
Beitrag # 8 von 9
Beitrag ID: #585291
Bewertung:
(2191 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gaby,

dieses uralte Skript war für CS3 entwickelt worden und funktioniert in CS5.5 nicht mehr.

Schau Dich in der Skriptsammlung nach einer jüngeren Version um.


als Antwort auf: [#585290]

Indexhilfe gewünscht

Gursina
Beiträge gesamt: 6

15. Jan 2023, 17:00
Beitrag # 9 von 9
Beitrag ID: #585293
Bewertung:
(2168 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin
Danke für deine rasche Antwort.
Ich habe gesucht - und nun nochmals - aber alle Scripts rund um das Thema Index scheinen alt zu sein.
Ich werde es wohl mit IndexMatic2 versuchen.
Viele Grüsse
Gaby


als Antwort auf: [#585291]
X