hilfdirselbst.ch
Facebook Twitter gamper-media
Forenindex -- Lesezeichen

3 Lesezeichen für querverweise

InDesign-Querverweise automatisch erstellen lassen z.B. aus Excel-Liste?
Hallo zusammen,

ich bin am erstellen von Büchern und habe hier mittlerweile Indexeinträge, mit denen ich im Buch dann das Index-Verzeichnis erstelle.
Jetzt sollen hier noch einfache Querverweise eingefügt werden. Also Wörter, die im Buch (noch) nicht vorkommen, sollen als Querverweis auf entsprechende Wörter die im Buch vorkommen, ins Indexverzeichnis mit integriert werden.
Das würde ich am liebsten über die InDesign-Querverweis-Funktion machen.
Nur ist es relativ umständlich, alle solchen Querverweise manuell im InDesign über die Index-Funktion ein zu arbeiten. (Seitenzahlen-Angaben sind in meinem Fall zunächst nicht notwendig)

Daher meine Frage:
Gibt es dafür eine Script-Lösung die, z.B. ein Excel-Liste als Basis nimmt, in der zuerst der Begriff und dann der entsprechende Begriff auf den verwiesen wird steht, und das daraus dann automatisch die Querverweise im InDesign anlegt?
Dann müsste nicht ein Grafiker manuell die Arbeit von Hand machen, was ja auch immer eine gewisse Fehlerquelle birgt,
sondern dann könnte ein Redakteur/Autor die Liste vorbereiten und man könnte diese automatisch integrieren.

Bin mal gespannt, ob das Problem schonmal jemand hatte und ich bloß zu dumm zum finden war, oder ob so eine Lösung nicht möglich ist?

Viel Grüße,

Thiemo
...
ThiemoW.
20. Feb 2013, 14:14
ID CS5 und CS5.5: Deutsche Wörterbücher in alten Dateien aus CS3
Hallo,

abschließend eine Zusammenfassung, wie das Problem gelöst wurde. Ich bin dem Vorschlag von Martin aus #35 gefolgt:

1. neue (leere) CS5-Datei mit gewünschtem Größe anlegen, neue Musterseite einrichten (Satzspiegel, Kopf-/Fußzeile); die Datei sollte nur die Absatz- und Zeichenformate enthalten, die tatsächlich in der Vorlage benötigt werden, Rest ggf. löschen!
Script „SpracheWechseln“ mit Einstellung „Rechtschreibung 2006“ laufen lassen
2. (leere) Vorlage-Datei mehrfach duplizieren
3. jeweils eine korrupte Datei und eine Vorlage-Datei (= neues Dokument) öffnen
4. in der korrupten Datei in der Seitenpalette alle Seiten markieren
5. Seitenpalette > Seiten verschieben. neues Dokument auswählen > die Seiten werden in das neue Dokument kopiert
6. korrupte Datei schließen
7. im neuen Dokument alte Mustervorlage löschen (eingeschleppt beim Seiten verschieben) und den Seiten die neue Mustervorlage zuweisen
8. Script „SpracheWechseln“ mit Einstellung „Rechtschreibung 2006“ laufen lassen
9. aus den Einzeldateien neues Buch zusammenstellen
10. händisch nachpflegen:
  • Querverweise: Querverweise zwischen zwei Dokumenten müssen aktualisiert werden, Querverweise innerhalb eines Dokuments bleiben korrekt erhalten

  • Index: Indexeinträge gehen nicht verloren außer Querverweise mit „siehe“ bzw. „siehe auch“, diese müssen neu angelegt werden; Index neu generieren

  • IHV: Vorgaben für Erstellung IHV müssen neu eingerichtet werden; IHV neu generieren

Die Fehlermeldung taucht nicht mehr auf. Die Performance in dem neuen Buch ist nach wie vor nicht gut, aber wenigstens akzeptabel. Wobei man differenzieren muss: Änderungen in den Dateien werden in brauchbarem Tempo umgesetzt. Im Hintergrund automatisch ablaufende (?) und manuell veranlasste Speichervorgänge (Strg+S) bremsen die Bearbeitung aus.
Manchmal habe ich den Verdacht, ID sucht noch immer heimlich nach dem ollen Wörterbuch …

Gruß
Silke
...
silkeF
4. Nov 2011, 10:49
Seitenumfang in bibliographischen Angaben eines Testabschnitts
Antwort auf: FCBL fügt am Ende des Artikels das Wörtchen 'Ende' mit
einem AF ein, sodaß ich mich beim Querverweis darauf beziehen kann.


Und dann?
Geht das 'Ende' so – sichtbar – auch in Druck?
Ein Textanker wäre ein unsichtbares Ende.
Über den Druck hinaus. ;-)

So etwa könnte man von einem ausgewählten Text (Autorenname) den Anker ans Ende des Textabschnitts werfen. Der Anker bekommt den Inhalt des ausgewählten Text zum Namen (oder bei Konflikten einen einzugebenden alternativen Namen).

Code
if (app.selection.length == 0 || !app.selection[0].hasOwnProperty('baseline')) 
exit();

var d = app.activeDocument;
var s = app.selection[0];
try
{
var myName = (app.selection[0].constructor.name == 'InsertionPoint')
? s.words.firstItem().contents
: s.contents;
}
catch(e)
{
var myName = 'Irgendwas'
}

while ( myName == '' || d.hyperlinkTextDestinations.itemByName(myName).isValid)
{
myName = prompt('Alternativer Name für Quellenziel', myName+= '_');
if (myName == null)
exit();
}
var hl_destination = d.hyperlinkTextDestinations.add({destinationText:s.parentStory.insertionPoints.lastItem(), name:myName});

alert('Querverweisziel \r»' + myName + '« am Ende des Textabschnitts erstellt.')


Das Gegenstück dazu (Querverweis von ausgewählter Quelle zum ausgewählten Ziel):
Code
if (app.selection.length == 0 || !app.selection[0].hasOwnProperty('baseline')) 
exit();

var doc = app.activeDocument;
var cr_name = 'Seitenverweis';
var myHLdest = myDisplayDialog(doc);
var sel = app.selection[0];

// Prüfung Vorhandensein von Querverweisformat
var cr_format = doc.crossReferenceFormats.itemByName(cr_name);
if (cr_format == null)
{

cr_format = doc.crossReferenceFormats.add({name:cr_name});
// cr_format.buildingBlocks.add({blockType:BuildingBlockTypes.CUSTOM_STRING_BUILDING_BLOCK, customText: '–'});
cr_format.buildingBlocks.add({blockType:BuildingBlockTypes.PAGE_NUMBER_BUILDING_BLOCK});
}

// Quelle des Querverweises hinzufügen
var cr_source = doc.crossReferenceSources.add({sourceText: sel.insertionPoints.firstItem(), appliedFormat: cr_format});

// Querverweis von Quelle zu Ziel hinzufügen
app.documents.firstItem().hyperlinks.add(cr_source, myHLdest);


function myDisplayDialog(doc){
var myFieldWidth = 120;
var hl_destinations = doc.hyperlinkTextDestinations.everyItem().name;
var myDialog = app.dialogs.add({name:"Querverweise"});
with(myDialog.dialogColumns.add()){
with(dialogRows.add()){
with(dialogColumns.add()){
staticTexts.add({staticLabel:"Hyperlinkziel:", minWidth:myFieldWidth});
}
with(dialogColumns.add()){
var mySourceDropdown = dropdowns.add({stringList:hl_destinations, selectedIndex:hl_destinations.length-1});
}
}
}
var myResult = myDialog.show();
if(myResult == true){
var the_hldest =doc.hyperlinkTextDestinations.item(mySourceDropdown.selectedIndex);
myDialog.destroy();
}
else{
myDialog.destroy()
exit();
}
return the_hldest;
}


Oder, um automatische Seitenzahl und Querverweis zum ausgewählten Textanker einzugeben (z.B. '1–10'):
Code
if (app.selection.length == 0 || !app.selection[0].hasOwnProperty('baseline')) 
exit();

var doc = app.activeDocument;
var cr_name = 'Seitenverweis';
var myHLdest = myDisplayDialog(doc);
var sel = app.selection[0];

// Prüfung Vorhandensein von Querverweisformat
var cr_format = doc.crossReferenceFormats.itemByName(cr_name);
if (cr_format == null)
{

cr_format = doc.crossReferenceFormats.add({name:cr_name});
// cr_format.buildingBlocks.add({blockType:BuildingBlockTypes.CUSTOM_STRING_BUILDING_BLOCK, customText: '–'});
cr_format.buildingBlocks.add({blockType:BuildingBlockTypes.PAGE_NUMBER_BUILDING_BLOCK});
}

// Quelle des Querverweises hinzufügen
var cr_source = doc.crossReferenceSources.add({sourceText: sel.insertionPoints.firstItem(), appliedFormat: cr_format});

// Querverweis von Quelle zu Ziel hinzufügen
app.documents.firstItem().hyperlinks.add(cr_source, myHLdest);

// aktuelle Seitenzahl
sel.insertionPoints.firstItem().contents = "–";
sel.insertionPoints.firstItem().contents = SpecialCharacters.AUTO_PAGE_NUMBER;


function myDisplayDialog(doc){
var myFieldWidth = 120;
var hl_destinations = doc.hyperlinkTextDestinations.everyItem().name;
var myDialog = app.dialogs.add({name:"Querverweise"});
with(myDialog.dialogColumns.add()){
with(dialogRows.add()){
with(dialogColumns.add()){
staticTexts.add({staticLabel:"Hyperlinkziel:", minWidth:myFieldWidth});
}
with(dialogColumns.add()){
var mySourceDropdown = dropdowns.add({stringList:hl_destinations, selectedIndex:hl_destinations.length-1});
}
}
}
var myResult = myDialog.show();
if(myResult == true){
var the_hldest =doc.hyperlinkTextDestinations.item(mySourceDropdown.selectedIndex);
myDialog.destroy();
}
else{
myDialog.destroy()
exit();
}
return the_hldest;
}

...
Martin Fischer
14. Dez 2009, 23:16