[GastForen Programme Print/Bildbearbeitung Adobe InDesign Indexmarken beziehen sich nicht auf die Seite des Worts, sondern auf die des Textrahmens

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

Indexmarken beziehen sich nicht auf die Seite des Worts, sondern auf die des Textrahmens

mdomino
Beiträge gesamt: 76

9. Apr 2015, 15:03
Beitrag # 1 von 14
Bewertung:
(4185 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen!
Ich will gerade zum ersten mal einen Index mit der dafür vorgesehenen InDesign-Funktion erstellen und bin dabei auf ein Problem gestoßen:

Ich habe Textrahmen, die um 90° rotiert sind und dann von einer Seite auf die die andere Seite einer Doppelseite rüberlaufen. Wenn ich nun einen Index für ein Wort zum Beispiel auf Seite 3 anlege, geht InDesign davon aus, dass dieser Index auf Seite zwei liegt und legt das entsprechend an.

Nach weiteren Nachforschungen habe ich dann gemerkt, dass InDesign die Index-Marke immer auf die Seite bezieht, auf der der Textrahmen liegt. Schiebt man den Textrahmen weiter nach rechts, bekommen alle Marken die Seitenzahl der rechten Seite und umgekehrt.

Gibt es irgendeine Möglichkeit dieses Verhalten zu unterbinden? Dass also das Wort, das ich indizieren will auch die korrekte Seite herausrückt?
Oder gibt es eine Möglichkeit die Seitenzahl als Seitenzahl + 1 festzulegen o.Ä.?
Lässt sich so etwas vielleicht per Skript bewerkstelligen.

Danke und Grüße,
mdomino
X

Indexmarken beziehen sich nicht auf die Seite des Worts, sondern auf die des Textrahmens

JohanneS.
Beiträge gesamt: 1065

9. Apr 2015, 16:22
Beitrag # 2 von 14
Beitrag ID: #538630
Bewertung:
(4133 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin mdomino,

spricht etwas dagegen, aus dem einen gedrehten Textrahmen zwei verkette zu machen?
Außer der unhandlichen Verkettungsfunktion, meine ich.

Grüße
Johannes


als Antwort auf: [#538629]

Indexmarken beziehen sich nicht auf die Seite des Worts, sondern auf die des Textrahmens

mdomino
Beiträge gesamt: 76

9. Apr 2015, 16:39
Beitrag # 3 von 14
Beitrag ID: #538632
Bewertung:
(4111 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ JohanneS. ] Moin mdomino,

spricht etwas dagegen, aus dem einen gedrehten Textrahmen zwei verkette zu machen?
Außer der unhandlichen Verkettungsfunktion, meine ich.

Grüße
Johannes


Hallo Johannes,
dagegen spricht, dass das gesamte Buch fertig gesetzt ist und das damit ein ziemlicher Aufwand wäre. Zumal der Schriftsatz hier wirklich sehr aufwendig gestaltet ist und es daher zu keinen Verschiebungen kommen dürfte. Das Unterfangen erinnert mich an die vielzitierte Operation am offenen Herzen. ;)

Kurz: Mir wäre es lieber, wenn sich das Problem über die Index-Funtion lösen ließe.

Grüße, md


als Antwort auf: [#538630]

Indexmarken beziehen sich nicht auf die Seite des Worts, sondern auf die des Textrahmens

Kai Rübsamen
  
Beiträge gesamt: 4684

9. Apr 2015, 18:37
Beitrag # 4 von 14
Beitrag ID: #538633
Bewertung:
(4036 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo!

Ich kann mir momentan nur halb vorstellen, was du da vorhast. Viell. geht es Anderen auch so?!

Ein Bild von deiner Situation oder eine Testdatei wären sicherlich hilfreich.

Zur Frage "Auf welcher Seite liegt der Textrahmen": Ausschlaggeben ob links oder rechts ist der Mittelpunkt deines Textrahmens. Liegt der Mittelpunkt auf der linken Seite, liegt auch dein Rahmen auf dieser Seite usw.

Wenn jetzt ein über beide Seiten gehender Rahmen um z.B. 0,01 mm verschoben wird, ändert sich auch die Seitenzahl (zumindest bei der Seitennummerierung)


als Antwort auf: [#538632]
(Dieser Beitrag wurde von Kai Rübsamen am 9. Apr 2015, 18:42 geändert)

Indexmarken beziehen sich nicht auf die Seite des Worts, sondern auf die des Textrahmens

kurtnau
Beiträge gesamt: 2170

9. Apr 2015, 18:43
Beitrag # 5 von 14
Beitrag ID: #538634
Bewertung:
(4033 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo mdomino,

sollte in einem Textrahmen zwei Wörter sein (also ein Wort z.B. Seite2 das andere Seite 3), die indeziert werden sollen, geht das nur über das Trennen der Textrahmen.
Sollte es aber "nur" auf der zweiten Seite sein, vergrößere den Textrahmen, bis der Mittelpunkt des Rahmens auf der zweiten Seite liegt.

Gruß Kurt

p.s. zu lange gewartet mit der Antwort ;-) Man sollte nicht zwei Dinge auf einmal machen.


als Antwort auf: [#538632]
(Dieser Beitrag wurde von kurtnau am 9. Apr 2015, 18:44 geändert)

Indexmarken beziehen sich nicht auf die Seite des Worts, sondern auf die des Textrahmens

Uwe Laubender
Beiträge gesamt: 5318

9. Apr 2015, 20:56
Beitrag # 6 von 14
Beitrag ID: #538636
Bewertung:
(3979 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, md!

Meiner Ansicht nach ist das Kind bereits einigermaßen in den Brunnen gefallen.

Du bräuchtest jetzt ein Script das:

A. Jede indizierte Textstelle in der Tabelle auf seine "wirkliche" Seitenposition untersucht und den (bereits bestehenden?) Index abgelicht.

B. Oder ein Script, das die Tabellen zunächst auf jeder Doppelseite vereinzelt, also aus dem Textfluß löst und dann je Seite sauber aufteilt, sodass der Index korrekt neu erstellt werden kann.

Die Frage ist, was vom Aufwand her günstiger kommt. Vor allem, wenn man bedenkt, ob nicht noch ein Update oder mehrere Updates des Inhaltes vorgenommen werden oder vorgenommen werden können, wenn's zu einer Nachauflage des Werkes kommt.

Machbar ist vieles…
Aber uns fehlt die Übersicht. Und ein Beispieldokument zum Untersuchen des Problems.


als Antwort auf: [#538632]

Indexmarken beziehen sich nicht auf die Seite des Worts, sondern auf die des Textrahmens

mdomino
Beiträge gesamt: 76

9. Apr 2015, 22:33
Beitrag # 7 von 14
Beitrag ID: #538639
Bewertung:
(3937 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
zunächst einmal vielen Dank für eure Überlegungen.

Zum besseren Verständnis hier ein Screenshot, der meine Situation ziemlich genau nachbildet. [Edit: Link zur CS6-InDesign-Datei ist jetzt auch angefügt, wer damit rumspielen will.] Wie man sieht gibt es zwei Index-Wörter, aber nur das Index-Wort auf der linken Druckbogenseite ist zur richtigen Seitenzahl zugeordnet.
Wie man sieht habe ich zudem durch ein Textumfluss-Rechteck die Zeilen aus dem Bund verdrängt, es kann also nicht zum Problem kommen, dass ein Wort auf beiden Seiten steht.

Uwe, ich befürchte auch, es läuft auf eine dieser beiden Optionen hinaus. Allerdings weiß ich bei deiner Variante A nicht mal, wie man einem Index eine eigene Seitenzahl zuordnet (also ich weiß es nicht mal über die Benutzeroberfläche).

Variante B werde ich mir näher anschauen, gibt es da eventuell schon vorhandene Skripte, die ich mir zum Modifizieren anschauen könnte?

Update des Inhalts sollte es eigentlich nicht geben …

Aber wenn man bei sowas schon ein „eigentlich“ einbaut … ;)
Nein, ist jedenfalls ein (sehr umfangreiches) Studienprojekt, deshalb gehe ich nicht von einer Neuauflage aus, aber man weiß ja nie.

Vielen Dank und Grüße, md

Screenshot: https://dl.dropboxusercontent.com/...s/IndexProblem01.jpg

Indd: https://dl.dropboxusercontent.com/...exProblem01.indd.zip


als Antwort auf: [#538636]
(Dieser Beitrag wurde von mdomino am 9. Apr 2015, 22:47 geändert)

Indexmarken beziehen sich nicht auf die Seite des Worts, sondern auf die des Textrahmens

Uwe Laubender
Beiträge gesamt: 5318

10. Apr 2015, 08:56
Beitrag # 8 von 14
Beitrag ID: #538644
Bewertung:
(3814 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo md,
Ein paar Fragen hätte ich noch zum Problem:

Enthält der Textfluss, der die gedrehten Textrahmen enthält ausschließlich Textrahmen, die:

1. gedreht sind?
2. die gleiche Größe besitzen?
3. deren Schrift immer den gleichen Zeilenabstand besitzt?


Dann könnte ich mir ein Skript vorstellen, das:

1. Den Textrahmen auf der Doppelseite dupliziert => D
2. Den Inhalt von D leert.
3. Den Rahmen von D von links nach rechts auf den Bund verkürzt.
Eine zuzügliche Verkürzung vornimmt, die in deinem Beispiel exakt 6 mm beträgt, um die ursprüngliche Position der ersten Textzeile auf der rechten Seite vorzubereiten und sicherzustellen.

4. Den verketteten Textrahmen auf der linken Seite bis zum Bund hin verkürzt.
5. D mit dem verketteten Textrahmen verknüpft und so in den Textfluss einfügt.

All das ist natürlich auch per Hand möglich, wenn meine drei Fragen von oben positiv ausfallen. Wieviele Doppelseiten sind betroffen?

PS. Ich hatte in meiner ersten Antwort etwas von "Tabelle" geschrieben. Ist Unsinn, von Tabelle war nie die Rede. Hatte wohl zu flüchtig gelesen.


als Antwort auf: [#538639]

Indexmarken beziehen sich nicht auf die Seite des Worts, sondern auf die des Textrahmens

WernerPerplies
Beiträge gesamt: 2762

10. Apr 2015, 09:17
Beitrag # 9 von 14
Beitrag ID: #538646
Bewertung:
(3801 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen Uwe,

ich kann das gerade nicht ausprobieren, wie verhält es sich mit Texten in verankerten Textrahmen, die in diesen Rahmen positioniert werden, hätten Indexmarken-Verweise die richtige Seitennummer?
Wenn ja, hätte ich vielleicht eine vollautomatische Lösung.

Ein wenig von hinten durch den Kopf, aber wenn es klappt, hoch effektiv.


als Antwort auf: [#538644]

Indexmarken beziehen sich nicht auf die Seite des Worts, sondern auf die des Textrahmens

Uwe Laubender
Beiträge gesamt: 5318

10. Apr 2015, 10:06
Beitrag # 10 von 14
Beitrag ID: #538647
Bewertung:
(3779 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, Werner!

Ich dachte eher an eine "minimal-invasive" Methode ;-)

Zumindest geben verankerte Textrahmen im Textfluss den korrekten documentOffset-Wert zurück. Aber frei verankerte Textrahmen scheinen sich etwas seltsam in gedrehten Textrahmen zu verhalten. Habe aber gerade keine Zeit dem näher nachzugehen.

Falls meine drei Fragen von weiter oben positiv beantwortet werden, gibt's auch eine vereinfachte Lösung. Einer der Knackpunkte ist die Position der ersten Textzeile auf jeder rechten Seite. Falls natürlich noch andere Elemente im Spiel sind wie textverdrängende Objekte auf den Seiten, dann wird's mit deiner angedeuteten Methode möglicherweise auch problematisch.

Das bisher gelieferte Beispiel gibt einfach zu wenig her. Je konkreter das Beispiel, desto konkreter und einfacher die Lösung. Aber das kennst du ja bestimmt…


als Antwort auf: [#538646]

Indexmarken beziehen sich nicht auf die Seite des Worts, sondern auf die des Textrahmens

WernerPerplies
Beiträge gesamt: 2762

10. Apr 2015, 10:21
Beitrag # 11 von 14
Beitrag ID: #538649
Bewertung:
(3754 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen Uwe,
Zitat Ich dachte eher an eine "minimal-invasive" Methode ;-)

Ich auch!

WpsCreateAnchoredFrames
müsste eigentlich alle Zutaten haben, den Job zu erledigen.


als Antwort auf: [#538647]

Indexmarken beziehen sich nicht auf die Seite des Worts, sondern auf die des Textrahmens

Uwe Laubender
Beiträge gesamt: 5318

10. Apr 2015, 11:03
Beitrag # 12 von 14
Beitrag ID: #538651
Bewertung:
(3718 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Also gut, da ich gerade ein paar Minuten Zeit hatte, hier eine Lösung, die mit dem geposteten Beispiel funktioniert.

Voraussetzungen:

1. Kein Übersatz.
2. Beginn der Textrahmenkette auf einer linken Seite.
3. Position und Größe der verketteten Textrahmen immer gleich.
4. Typografie durchgehend wie im geposteten Beispiel.

Textrahmen der Kette auswählen und Skript im Skripte-Panel doppelklicken.
Das Ergebnis kann in einem Rutsch rückgängig gemacht werden.
Code
//TextrahmenBearbeiten_AUSWAHL-TEXTRAHMEN.jsx 
//Uwe Laubender

/**
* @@@BUILDINFO@@@ TextrahmenBearbeiten_AUSWAHL-TEXTRAHMEN.jsx !Version! Fri Apr 10 2015 10:59:18 GMT+0200
*/


app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;

app.doScript
(

doIt,
ScriptLanguage.JAVASCRIPT,
[],
UndoModes.ENTIRE_SCRIPT,
"doIt | SCRIPT"

);

function doIt(){

//Ausgehend vom Anwählen eines Textrahmens des Textflusses:

if(app.selection.length === 0){
alert("FEHLER:\rEs ist kein Textrahmen ausgewählt.");
return;
};
if(app.selection.length > 1 || app.selection[0].constructor.name !== "TextFrame"){
alert("FEHLER:\rEs ist kein Textrahmen ausgewählt.");
return;
};
var myStory = app.selection[0].parentStory;

var myTextFramesArray = myStory.textContainers;

if(myTextFramesArray[myTextFramesArray.length-1].overflows){
alert("FEHLER:\rDer letzte Textrahmen im Textfluss hat Übersatz. Diesen beseitigen, dann noch mal probieren.");
return;
};


//Einige Voraussetzungen schaffen:

var myProperties = {
horizontalMeasurementUnits : MeasurementUnits.MILLIMETERS,
verticalMeasurementUnits : MeasurementUnits.MILLIMETERS,
rulerOrigin : RulerOrigin.SPREAD_ORIGIN
};

app.documents[0].viewPreferences.properties = myProperties;
app.documents[0].zeroPoint = [0,0];

app.documents[0].layers.everyItem().locked = false;



var pB = app.documents[0].pages[0].bounds;
var myWidth = pB[3]-pB[1];

var seitenBreite = myWidth;


//******** WIRD NOCH NICHT BENÖTIGT ******************************************************
/*
VORBEREITEND. DIE ERGEBNISSE WERDEN IN DIESEM SKRIPT NICHT BENUTZT:
Ermitteln aller Positionen der ersten Zeile auf der rechten Seite.

Ermittelung der ersten Zeile auf der rechten Seite im Bereich 213 bis 225 mm
(ausgehend vom linken Rand des Druckbogens)

Gegebenenfalls muss der Bereich angepasst werden!
*/

var myFirstLinesPositionsRightPageIndexes = [];
var myLinesArray = myStory.texts[0].lines.everyItem().getElements();

for(var n=0;n<myLinesArray.length;n++){
if(myLinesArray[n].horizontalOffset >seitenBreite+3 && myLinesArray[n].horizontalOffset < seitenBreite+15){
myFirstLinesPositionsRightPageIndexes.push([n,myLinesArray[n].horizontalOffset]);
};
};


//*****************************************************************************************

//Test, ob alle Textrahmen der Textkette die gleiche Position, Größe, Drehwinkel haben:
//HIER NICHT AUSGEFÜHRT => VEREINFACHTE VERSION DES SKRIPTS

//SCHRITT 1:

/*

Textrahmen duplizieren, Größe anpassen.
Die Verkürzung ist mit Seitenbreite plus 6 eingetragen.
Für das gelieferte Beispiel gibt sie den korrekten Wert.

Kann im konkreten Beispiel falsch sein.
Dann müsste sich mit den weiter oben ermittelten Werten für die Position der ersten Zeile
auf der rechten Seite herantasten, bis die Position wieder stimmt.

*/

var myDupArray = [];

for(var n=0;n<myTextFramesArray.length;n++){
myTextFramesArray[n].locked = false;
var dup = myTextFramesArray[n].duplicate();
var dupGB = dup.geometricBounds;
dup.geometricBounds = [dupGB[0],seitenBreite+6,dupGB[2],dupGB[3]];
myDupArray.push(dup);

//Gleich hier den Inhalt des Duplikats zu löschen, gelingt nicht.
//Egal. Machen wir halt noch 'ne Schleife danach.

};

//SCHRITT 2:

//Löschen des Inhalts der duplizierten Textrahmen:

for(var n=0;n<myDupArray.length;n++){
var myTextFrame = myDupArray[n].getElements()[0];
myTextFrame.texts[0].parentStory.texts[0].contents = "";
};

//SCHRITT 3:

//Geometrie der Textrahmen in der Kette anpassen
//Duplikat verknüpfen und in die Textkette einfügen:

for(var n=0;n<myTextFramesArray.length;n++){
var myGB = myTextFramesArray[n].geometricBounds;
myTextFramesArray[n].geometricBounds = [myGB[0],myGB[1],myGB[2],seitenBreite];
myTextFramesArray[n].nextTextFrame = myDupArray[n];
};

};



als Antwort auf: [#538649]

Indexmarken beziehen sich nicht auf die Seite des Worts, sondern auf die des Textrahmens

mdomino
Beiträge gesamt: 76

10. Apr 2015, 16:01
Beitrag # 13 von 14
Beitrag ID: #538659
Bewertung:
(3620 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe und Werner!

Vielen Dank für eure Überlegungen schon mal.

Ich beantworte zunächst einmal Uwes offenstehende Fragen:

Ja, die Textrahmen sind immer gleich gedreht, gleich groß und gleich positioniert.
Es gibt zahlreiche textverdrängende Objekte innerhalb des Textflusses, allerdings gibt es andererseits auch ein Grundlinienraster (das mit dem Textkasten gedreht ist), in dem die Zeilen fließen.
Zudem gibt es zahlreiche im Text verankerte Objekte, die den Fließtext auch noch mal verdrängen. (Dass in diesen verankerten Textobjekten wiederum Textobjekte verankert sind, spielt an dieser Stelle keine Rolle. ;-) )

Von den beiden hier angedachten Ansätzen scheint mir auch Uwes „minimal-invasiver“ Ansatz derjenige zu sein, der mich zum Ziel führen könnte. Dabei sehe ich tatsächlich das größte Problem in der zusätzlichen Verkürzung um x mm, aber die kann man ja einmal exakt herausfinden und da sonst alles gleich sitzt, sollte es dann funktionieren.

Wie steht es denn um die Zuverlässigkeit des Adobe-Absatzsetzers? Trennt er zwei Zeilen mit Textverdrängungsobjekt dazwischen exakt genau so wie zwei Textrahmen mit dem gleichen Objekt dazwischen? Oder lässt er bei einer Variante ein Wort vielleicht oben stehen, was er bei der anderen Variante runterrückt? Wenn das zuverlässig gleich gesetzt werden würde, denke ich es könnte über Uwes Variante gut funktionieren.

Ich lade hier einfach mal einen Teil aus meiner richtigen Datei hoch, damit sich die meisten Fragen für euch klären. Schriften darf ich leider nicht einbinden, deshalb wird bei Euch das Layout wahrscheinlich ziemlich zerschossen aussehen und die Zwischenüberschriften könnten im Bund oder auf dem Rand landen. Deshalb auch noch mal ein Screenshot einer Doppelseite, die zeigt, wie das Layout mit der richten Schrift aussieht.

Uwe, vielen Dank für dein Script, darauf kann ich auf jeden Fall aufbauen und das Script an meine Zwecke anpassen.
Werner, auch dir Danke für deine Hilfe.

Habe nun über das Wochenende Verwandtschaft zu Besuch, eine Rückmeldung oder weitere Nachfragen kann ich also erst nächste Woche geben.
Bin aber trotzdem gespannt auf weitere Überlegungen.

Viele Grüße, md

.indd (CS6): https://dl.dropboxusercontent.com/...exProblem02.indd.zip

Screenshot Layout: https://dl.dropboxusercontent.com/...s/IndexProblem02.png

P.S.: Uwes Beobachtung, dass sich frei verankerte Textrahmen seltsam in gedrehten Textrahmen zu verhalten kann ich durch meine Beobachtungen aus dem Projekt bestätigen, habe das jetzt zwar für mein konkretes Beispiel zum Laufen gebracht, aber auch noch nicht den völligen Überblick über die Funktionsweise erhalten.


als Antwort auf: [#538651]
(Dieser Beitrag wurde von mdomino am 10. Apr 2015, 16:06 geändert)

Indexmarken beziehen sich nicht auf die Seite des Worts, sondern auf die des Textrahmens

mdomino
Beiträge gesamt: 76

14. Apr 2015, 01:18
Beitrag # 14 von 14
Beitrag ID: #538731
Bewertung:
(3251 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
kurze Rückmeldung: Uwe, dein Script hat tadellos funktioniert.

Die einzige kleine Änderung, die ich vornehmen musste war bedingt durch mein etwas komplizierteres Setup. Anstatt den duplizierten Textrahmen nach rechts zu kürzen, musste ich ihn stattdessen leicht nach links verlängern, um so eine weitere Zeile zu erhalten (die aufgrund des Textumflussobjektes im Bund vom Fließtext allerdings unbenutzt blieb). Ansonsten wären einige der verankerten, um 90° gedrehten Zwischenüberschriften vom Bund weggerückt und der Inhalt hätte sich um eine Zeile verschoben.

Dann hat es aber funktioniert und das Wichtigste: die Indizes werden nun korrekt ihren eigentlichen Seiten zugeordnet, so dass mir nur zu sagen bleibt:

Vielen Dank, Uwe! Bin wirklich begeistert von der kompetenten Hilfe in diesem Forum.

Viele Grüße, md


als Antwort auf: [#538651]
X