Hallo, Kann ich bei InDesign CS2 eine Abbildungsunterschrift direkt unter die Abbildung innerhalb des Grafikrahmens platzieren? Wenn ja, wie geht das? Oder ist es sinnvoller, unterhalb des Grafikrahmens einen Textrahmen zu ziehen und die Abbildungsunterschrift dort hinein zu setzen? Wie genau würde das gehen? Bin dankbar für Hinweise, da InDesign-Neueinsteiger.
Jein. Erstell doch einen (Rechteck)rahmen und darunter einen Textrahmen so wie es dann sein soll. Copy-Paste an die entsprechenden stellen und dann die Bilder platzieren bzw. den Text in die Rahmen setzen. Falls du beide Rahmen gruppierst, musst du das Bild mittels Direktauswahl (A) platzieren bzw. den Text einfügen.
Und wo wir gerade Skript-Tag haben, hier noch ein kleines Apple-Skript, das unter jedes markierte Objekt eine BU setzt. Abstand und Höhe sind fest am Anfang des Skripts einzugeben.
(Für newbies: den Text ausschneiden, in den AppleScript-Editor kopieren und im Programmordner unter Presets:Scripts: speichern. Dann steht das Skript in der Skript-Palette per Doppelklick zur verfügung )
oder bei standardisierten bildgrößen entsprechende bild/text-kombinationen erstellen und in einer bibliothek abspeichern. für die bildunterschrift am besten noch ein (verschachteltes) absatzformat erstellen.
ich mische mich hier mal ganz frech ;-) ein, weil ich schon sehr lange nach einem Skript für Indesign (jetzt CS2) suche, das, wie hier, einen Textrahmen unter einen Bildrahmen platziert, aber dort auch sogleich den Namen der jeweiligen Bilddatei einfügt. Diese Apple-Skript hier scheint mir nicht allzu weit davon entfernt zu sein. Ich kannte sowas mal aus XPress 3, in 6 gibt es Place Name, funktioniert aber nur für jeweils ein Bild. [Am Rande bemerkt, da jetzt glücklich in ID] Lässt sich das Skript noch dahingehend verändern?
ein Verbesserungsvorschlag hätte ich noch: der BU sollte über >Textrahmenoptionen< das Attribut "Keine Konturenführung" zugewiesen werden, da Bilder häufig mit Konturenführung versehen werden.
Eure Anfragen habe ich im Oktober glatt übersehen. Aufgrund eigenen Bedarfs habe ich das Skript jetzt um die Zuweisung eines Objektstils erweitert.
Das folgende Skript (nur für InDesign CS2!) erzeugt unter dem/den markierten Bildrahmen einen Textrahmen mit Bildunterschrift und weist dem Textrahmen den Objektstil "BU" (kann im Skript angepaßt werden) zu.
Ist im Dokument kein Objektstil "BU" vorhanden, dann weist das Skript dem Textrahmen den Objektstil "[Einfacher Textrahmen]" zu.
Ist im Objektstil "BU" ein Absatzformat definiert (und die Option für die Zuweisung des Absatzformats aktiviert), dann wird dies bei der Zuweisung des Objektstils übernommen.
Übrigens für die Skriptentwickler: Die Zuweisung des Objektstils erfolgt hier über myFrame.applyObjectStyle(myObjectStyle);. Diese Methode ist in der Scripting Referenz nicht dokumentiert. Dave Saunders hat mich darauf aufmerksam gemacht. Diese Methode überschreibt lokale Eigenschaften des Textrahmens und weist ihm die Eigenschaften, die im Objektstil definiert sind, zu.
In der Scripting Reference dokumentiert ist dagegen folgende Zuweisung des Objektstils: myFrame.appliedObjectStyle = myObjectStyle. Damit wird zwar der Objektstil dem Textrahmen zugewiesen, aber lokale Einstellungen (z.B. Ausrichtung innerhalb des Textrahmens, Konturoptionen) bleiben erhalten.
Aus diesem Grund ist die Methode myFrame.applyObjectStyle(myObjectStyle); dem Zuweisen der Eigenschaft myFrame.appliedObjectStyle = myObjectStyle vorzuziehen.
Viele Grüße Martin
(Dieser Beitrag wurde von Martin Fischer am 15. Aug 2006, 17:19 geändert)
wirklich eine super sache. erleichtert wirklich die arbeit. eine frage hätte ich aber: gibt es die möglichkeit die dateiendung (zb jpg, tif, psd o.ä.) auszublenden. also dass nur der namen ohne suffix angegeben wird.
Im Ernst: dies wäre schon möglich (mit einer Liste aller möglichen und in Frage kommenden Endungen).
Wenn Du der BU aber ein Absatzformat (etwa über den Objektstil) zuweist, kannst Du diese Endungen auch schnell über Suche in Text, formatiert mit Absatzformat BU, und ersetzen durch nix löschen.
nein, martin meint, daß du dem suche-begriff im entsprechenden dialog ein absatzformat zuweisen kannst, so daß nur die dateiendungen gelöscht werden, die mit dem absatzformat für bu's versehen sind.
> habe jetzt nicht ganz verstanden, was du meinst. kann ich das suchen/ersetzen > auch in ein absatzformat bauen? wo?
So habe ich das nicht geschrieben. Gemeint war, Du kannst die Suche beschränken auf Text, der mit einem bestimmten Absatzformat ausgezeichnet ist (erweiterte Suchoptionen).
ich habe mir das JavaScript von Martin etwas umgebaut, damit es mir neben meine markierten Bilder einen Textrahmen mit der jeweiligen Abbildungsnummer (Kleinbuchstabe entnommen aus dem jeweiligen Dateinamen) positioniert.
Dabei ist mir aufgefallen, dass man eine Fehlermeldung erhält, wenn das entsprechende Dokument nicht mit der Seitenzahl 1 beginnt: Mein Seitennummerierung hat auf der Seite 1 mit der Seitenzahl 3 begonnen und ich habe folgende Fehlermeldung erhalten:
Fehlernummer: 45 Fehlerzeichenfolge: Object is invalid Zeile: 42 Quelle: var myFrame = myDoc.pages[myPage].textFrames.add(
Wenn ich die Paginierung der ersten Seite auf 1 ändere, erhalte ich die Fehlermeldung nicht! Kann man da noch im Skript etwas ändern?
(Ansonsten kann ich natürlich meine tatsächliche Seitennummerierung der ersten Seite temporär auf 1 ändern und nach Ausführung des Skripts wieder die eigentliche Pagina zuweisen)
Hätte da noch einen Verbesserungsvorschlag für das Script: Wenn man nachträglich die Bildgröße ändert stimmt der Abstand zwischen Bild und Bildunterschrift ja nicht mehr. Abhilfe kann man schaffen, indem man Bild- und Textrahmen an dieselbe Position setzt, den Textrahem aber ein paar cm höher macht. Wenn man den Bildrahmen nun unten um 3mm umfließen lässt, hat der Text immer den richtigen Abstand zum Bild (vorausgesetzt der Rahmen ist genausohoch wie das Bild).
ich habe ein Ähnliches Problem, jedoch bringe ich einfach keine Lösung zu Stande. Wie kann iches erreichen, daß der Bildunterschrift (Also dem Textrahmen) ein Objektstil zugewiesen wird?
ich habe ein Problem und ich denke, dass Ihr mir hier helfen könnt. Ich muss mehrmals im Jahr einen kleinen Katalog in Indesign CS2/CS3 erstellen. Um später leicht ein verwendetes Bild wiederfinden zu können, will ich eine zweite Indesign-Datei mit "BildAUFschriften" ;-) erzeugen lassen.
Über den Bildern soll exakt unten links in der Ecke ein gelber Text-Rahmen mit dem entsprechenden Bildnamen erzeugt werden. Der Rahmen soll das Bild also unten links überdecken.
Weiterhin soll der zu erzeugende Rahmen formatierbar sein, also veränderbar in Farbe, Schrift und Stil, ...
Wer kann helfen? Das Script hier hilft mir leider so nicht weiter :-(
Am Anfang des Skripts stellst Du die Höhe myHeight des Textrahmens ein.
Das kannst Du über den Objektstil 'BU' steuern. Wenn dieser vorhanden ist, dann weist das Skript dem Textrahmen diesen Objektstil zu (wenn nicht, kommt der Standard-Objektstil für Textrahmen zum Zug).
Klasse.... :-) Funktioniert auf WinDoof mit CS3 wunderbar. Ich arbeite normalerweise nicht mit Objektstilen. Ich habe hier leider keine Möglichkeit gefunden die Schrift selber zu formatieren, also, Farbe, Schriftart, Größe ??!!! Bin ich blöd? Das ist doch unter Anderem Sinn eines Objektstiles, oder?
Gruß
Olli....
Danke noch, das hat mich sehr viel weitergebracht :-)
Nein, es ist nicht Sinn eines Objektstils, Schrift zu formatieren.
Zweck eines Objektstils ist es, Eigenschaften eines Objekts (Textrahmen, Rechteck, Oval ...) zu bündeln, in einem speziellen Arrangement für neue Objekte verfügbar zu halten und die konservierten Eigenschaften so ändern zu können, daß diese Änderung optional an alle Objekte, die diesen Stil zugewiesen bekommen haben, weitergegeben wird.
Zweck eines Absatzformats ist es, Eigenschaften eines Absatzes zu bündeln ...
Das Absatzformat für den Text in einem Textrahmen kann Teil der definierten und aktiven Eigenschaften eines Objektstils sein.
Ausführlicher und verständlicher erklärt Dir dies die InDesign-Hilfe.
Hallo zusammen, ich benötige Textrahmen über allen in einem InDesign CS3-Dokument verwendeten Bilder, die den jeweiligen Dateinamen des entsprechenden Bildes enthalten. Das funktioniert auch wunderbar, allerdings nur mit Einzelbildern:-( Sobald im InDesign CS3-Dokument einige Bilder gruppiert sind, werden sie nicht beachtet und keine Textrahmen entstehen. Hat jemand eine Erklärung und bestenfalls ein Lösung dazu? Vielen Dank.
> Hat jemand eine Erklärung und bestenfalls ein Lösung dazu?
Vermutlich spricht das von Ihnen gewählte Skript die Bilder über das pageItem-Objekt an und erkennt so nur Bilder in Rahmen, die direkt (ohne Verankerung und ohne Gruppierung) auf dem Druckbogen liegen. Man müsste das über die links/Verknüpfungen lösen. Damit wären auch verankerte und gruppierte Objekte anzusteuern.
Ich dachte eigentlich, das Skript würde über "links" funktionieren. Vielleicht habe ich das falsch verstanden... anbei mal das bisher verwendete Skript... Vielleicht hat jemand eine Idee der Modifizierung. Danke schon mal.
// var myObjectStyle = app.activeDocument.objectStyles.item("FAWSItext"); // Objektstil für Bildunterschrift var myDistance = -15; // Abstand zum Bild var myHeight = 8; // Höhe des Rahmens für die Bildunterschrift //var myLenght = 55; //Breite des Rahmens var myDoc = app.documents[0];// für alle Bilder im Dokument myDoc.layers.add({name:"FAIWSnummern"}) var myLinks = app.activeDocument.links;// alle Bilder anfassen var Dokument
// Wenn der oben genannte Absatzstil ("FAWSItext") nicht vorhanden ist, // dann wird der Absatzstil "[Einfacher Absatz]" zugewiesen. try{ myObjectStyle.name; // Prüfung Objektstil } catch(e){ // nimm für alle items "Stil Normal" var myObjectStyle = app.activeDocument.objectStyles.item("[Einfacher Absatz]"); }
for (oneObject = 0; oneObject < myLinks.length; oneObject++)// für das erste bis zum letzten Objekt im Dokument if (myLinks[oneObject].parent.parent.constructor.name == "Rectangle" && myLinks[oneObject].parent.parent.parent.constructor.name == "Page"){ //wenn ein Rechteck auf der Seite ist var myBounds = myLinks[oneObject].parent.parent.geometricBounds; //wähle geometrische Form des angefassten Bildes var myPage = myLinks[oneObject].parent.parent.parent.documentOffset; // mit den Einstellungen documentOffset if (myLinks[oneObject].parent.parent.graphics.length > 0){ // wenn die Länge des gewählten Objektnamens größer Null ist var myContent = myLinks[oneObject].parent.parent.graphics[0].itemLink.name; //nimm Inhalt und var myNContent = myLinks[oneObject].parent.parent.graphics[0].itemLink.name.substring(1,8);// schreibe nur ersten 7 Zeichen
} else { //ansonsten schreibe in den Rahmen: var myContent = "Nicht da"; } var myFrame = myDoc.pages[myPage].textFrames.add( //ergänze Rahmen mit Folgenden oben definierten Parametern und em Inhalt "myNContent (ersten 7 Zeichen)" undefined, undefined, undefined, { geometricBounds:[myBounds[2] + myDistance, myBounds[1], myBounds[2] + myHeight + myDistance, myBounds[3]], contents:myNContent } ) try { myFrame.applyObjectStyle(myObjectStyle); } catch(e){} }
(Dieser Beitrag wurde von amibibi am 18. Dez 2008, 11:08 geändert)
Hier gibt es eine explizite Bedingung, die nur BUs zu solchen Bildern anlegt, die nicht verankert oder gruppiert sind, sondern sich direkt auf einer Seite (nicht einmal der Druckbogen ist zugelassen) befinden:
Diese Bedingung solltest Du für Deine Aufgabe löschen. Also genau diesen Text löschen:
Vielen dank, leider erhalte ich die Fehlermeldung, dass "documentOffset" nicht mehr unterstützt wird. Ich dachte, dass ich eventuelle was einfügen muss, dass alle Objekte einer Seite anfasst und wenn es sich nicht um Einzelobjekte handelt (group), diese nicht überspringt sondern trennt und die einzelnen Dateinamen trotzdem ausgibt....
Herzlichen Dank für die Idee mit dem Löschen von...."page". Ich denke, dass ich eine Lösung gefunden habe:-)
// addCaption_2.jsx // an InDesign CS3 JavaScript // var myObjectStyle = app.activeDocument.objectStyles.item("text"); // Objektstil für Bildunterschrift var myDistance = -15; // Abstand zum Bild var myHeight = 8; // Höhe des Rahmens für die Bildunterschrift var myDoc = app.documents[0]; myDoc.layers.add({name:"nummern"}) var myLinks = app.activeDocument.links; var Dokument
// Wenn der oben genannte Objektstil ("text") nicht vorhanden ist, // dann wird der Objekstil "[Einfacher Textrahmen]" zugewiesen. try{ myObjectStyle.name; // Prüfung Objektstil } catch(e){ // nimm für alle items "Stil Normal" var myObjectStyle = app.activeDocument.objectStyles.item("[Einfacher Absatz]"); }
for (oneObject = 0; oneObject < myLinks.length; oneObject++) if (myLinks[oneObject].parent.parent.constructor.name == "Rectangle"){ var myBounds = myLinks[oneObject].parent.parent.geometricBounds; //var myPage = myLinks[oneObject].parent.parent.parent.documentOffset; if (myLinks[oneObject].parent.parent.graphics.length > 0){ var myContent = myLinks[oneObject].parent.parent.graphics[0].itemLink.name; var myNContent = myLinks[oneObject].parent.parent.graphics[0].itemLink.name.substring(1,8);
Hallo nochmal, das Skript ist super, wenn das Dokument nur eine Seite aufweist. Hat jemand eine Idee, was ich es umschreiben muss, damit mir bei einem mehrseitigen Dokument nicht alle Dateinamen auf eine Seite geschrieben werden, sondern immer auf das jeweilige Bild?
Im Skript, in dem die Gruppierungen nicht berücksichtigt wurden, habe ich alle Dateinamen auch korrekt über die Bilder schreiben können:-(
Nun möchte ich gerne Beides kombinieren: Gruppen beachten aber Dateinamen trotzdem über dem jeweiligen Bild stehen haben. Vielen Dank für Tipps.