2013-10-05 69 views
0

我该如何做到这一点:脚本Indesign:交替段落样式

我有两个交替段落样式,s1和s2的文档。 s1后跟s2,反之亦然。这适用于用户界面。但它如何与脚本工作?

在下面的代码示例中,所有文本被格式化为段落样式s1而不是交替样式。当您使用用户界面添加段落时,段落格式会根据需要交替显示。

var myDocument = app.documents.add(true); 
var s1 = myDocument.paragraphStyles.add({name:'one'}); 
var s2 = myDocument.paragraphStyles.add({name:'two'}); 
with (s1) {nextStyle = s2;} 
with (s2) {nextStyle = s1;} 

var myTextFrame = myDocument.spreads.lastItem().pages.lastItem().textFrames.add(); 
myTextFrame.geometricBounds = ["20mm","20mm","100mm","100mm"]; 
myTextFrame.parentStory.insertionPoints.item(0).appliedParagraphStyle = s1; 
myTextFrame.contents = "abc\rdef\rghi\rklm\r"; 
+0

一点也没有”看起来它会像脚本一样工作,除非你使用'for'循环迭代地将交替样式应用到每个段落。至少...我无法在Javascript参考中找到所谓的“ApplyNextStyle”函数。 –

+0

你可能是对的。但在我第一次天真地尝试这个主题时(或者我相信)!但只有一次。无论如何,我无法重现这种行为。如果当前段落为它设置了任何值,我会认为下一段落样式是由Indesign设置的,但似乎并非如此。 - 最后,我按照你的建议做了,并且在循环中明确地设置了字符样式。 –

回答

0

您可以通过在年底(关键属性==> applyNextParagraphStyle:真)应用objectStyle达到目标

类似:

var 
 
\t myDocument = app.documents.add(true), 
 
\t s1 = myDocument.paragraphStyles.add({name:'one'}), 
 
\t s2 = myDocument.paragraphStyles.add({name:'two'}), 
 
\t objSt = myDocument.objectStyles.add({ 
 
\t \t \t name: 'AlternateParas', 
 
\t \t \t enableParagraphStyle: true, 
 
\t \t \t appliedParagraphStyle: s1, 
 
\t \t \t applyNextParagraphStyle: true 
 
\t \t \t }), 
 
\t myTextFrame = myDocument.pages.lastItem().textFrames.add({ 
 
\t \t contents: 'abc\rdef\rghi\rklm\r', 
 
\t \t }); 
 
with (s1) {nextStyle = s2;} 
 
with (s2) {nextStyle = s1;} 
 
myTextFrame.appliedObjectStyle = objSt;