Copy link to clipboard
Copied
Caption setting:
Why paragraph style, not object style?
Its "displacement" is not very easy to use, I generally still need object style to control the caption.
If you can use object styles directly, it's easy? Because object styles can call paragraph styles, there are more settings.
I hope Adobe will pay attention to this problem.
Copy link to clipboard
Copied
this link is much better for feature requests
https://indesign.uservoice.com/forums/601021-adobe-indesign-feature-requests
Copy link to clipboard
Copied
Not the answer you're looking for - but here's something you can do to change all.
In the Caption Setup - set the offset to something like .001234
Then use Find/Change and search for Object with the specified offset and apply the object style.
Copy link to clipboard
Copied
I want to automatically apply the style when generating the caption.
Save one step.
Copy link to clipboard
Copied
I understand - but it's not possible - until it's released this is a workaround.
Copy link to clipboard
Copied
Hi 喜狼_edny,
setting the object style when using InDesign's caption feature is a long-standing feature request.
Vote for this, I just did:
Object Styles for Generated Captions
Kate Basart, November 09, 2017
"It would be really helpful when generating captions to be able to assign an object style in addition to a paragraph style. (Even better if there were multiple caption styles to choose from...)"
Regards,
Uwe Laubender
( ACP )
Copy link to clipboard
Copied
Hi Uwe, I wonder if it could be scripted? The caption text frame should have an index of 0 when it is created, so here I’m invoking the Generate Live Caption menu item, getting the caption text frame, and applying syles. Haven’t tested much so there could be complications:
var p=app.activeWindow.activePage;
var f = File.openDialog("Place");
//make styles
var ps = makeParaStyle(app.activeDocument, "Caption");
ps.properties = {basedOn:"[No Paragraph Style]", appliedFont:"Myriad Pro Regular", pointSize:8, leftIndent:0};
var cos = makeObjStyle(app.activeDocument, "Caption Frame");
cos.properties = {basedOn:"[None]", appliedParagraphStyle:ps, strokeColor:"[None]", strokeWeight:"0"};
var placedImage = p.place(f);
placedImage[0].parent.select();
var makeCap = app.menuActions.itemByName("Generate Live Caption")
makeCap.invoke();
//the last added text frame has an index of 0
var cap = getCaptionFrame(p.textFrames);
cap.texts[0].appliedParagraphStyle = ps;
cap.appliedObjectStyle = cos;
/**
* Gets the last text frame added
* @Param a list of text frames
* @Return text frame
*
*/
function getCaptionFrame(fl){
var tf;
for (var i = 0; i < fl.length; i++){
if (fl[i].index == 0) {
tf = fl[i];
}
}
return tf
}
/**
* Makes a new named ObjectStyle
* @Param the document to add the style to
* @Param style name
* @Returns the new object style
*/
function makeObjStyle(d, n){
var os;
try {
d.objectStyles.add({name:n});
}catch(e) {
os = d.objectStyles.itemByName(n);
}
return d.objectStyles.itemByName(n);
}
/**
* Makes a new named Paragraph Style
* @Param the document to add the style to
* @Param style name
* @Returns the new paragraph style
*/
function makeParaStyle(d, n){
var ps;
try {
d.paragraphStyles.add({name:n});
}catch(e) {
ps = d.paragraphStyles.itemByName(n);
}
return d.paragraphStyles.itemByName(n);
}
Copy link to clipboard
Copied
I asked for this years ago, when they first introduced captions. Baffled why they didn't create the feature this way in the first place!
But @Eugene Tyson 's idea is excellent, actually. You can save an object search query to apply object styles to all captions in this way with just a couple of clicks!
Ariel