2012-06-14 54 views
0

我试图使用ExtendScript从InDesign文档中的脚注引用中删除粗体和斜体样式。通过脚注参考,我的意思是出现在正文中的小数字。也就是说,我想从这个小数字中去掉斜体和大胆,而不是从实际的脚注中去掉。这是我的尝试。它与我想要的完全相反,这意味着它从斜体和大胆中剥离实际的脚注,但不会剥去正文中的小数字。如何使用ExtendScript从InDesign文档中的所有脚注引用中删除斜体和粗体样式?

var document = app.activeDocument, 
    stories = document.stories, 
    nbStories = stories.length, 
    story, 
    footnotes, 
    nbFootnotes, 
    footnote, 
    texts, 
    nbTexts, 
    text, 
    i, 
    j, 
    k; 
    for (i = 0; i < nbStories; i += 1) { 
    story = stories[i]; 
    footnotes = story.footnotes; 
    nbFootnotes = footnotes.length; 
    for (j = 0; j < nbFootnotes; j += 1) { 
     footnote = footnotes[j]; 
     texts = footnote.texts; 
     nbTexts = texts.length; 
     for (k = 0; k < nbTexts; k += 1) { 
     text = texts[k]; 
     text.fontStyle = "Regular"; 
     } 
    } 
    } 

我该如何做到完全相反? (即仅剥去正文中的小数字,但不包含实际的脚注)

回答

0

与其循环遍历所有故事,我可能会建议您通过脚本使用GREP。 脚注标记模式是“〜F”。这将捕获文本标记和底部标题中的thos。为了在文本脚注标记中专门定位,您可以重新调整图案以仅考虑任何字符后面的标记。 完成之后,您将获得一系列脚注标记,您可以在其中调用changeGrep以按照需要标记您的标记。 你必须设置一个“笔记”字符样式来获得这个片段的工作。

function editFootNotesMarkers() 

{ 变种allresults,结果,DOC,characterStyle;

if (!app.documents.length){ return; } 
doc = app.activeDocument; 

characterStyle = doc.characterStyles.itemByName ("note"); 
if (!characterStyle.isValid){ return; } 

app.findGrepPreferences.findWhat = "(?<=.)~F"; 
app.changeGrepPreferences.appliedCharacterStyle = characterStyle; 

doc.changeGrep(); 

alert('done'); 

}

editFootNotesMarkers();

,可以没有任何脚本来实现。当然,)

卢瓦克

+0

我可以直接删除任何斜体或大胆的造型,而不是分配新字符样式的? – Shawn

+0

可能。在fontStyle属性中查看changeGrepPreferences对象。然后你可以传递完整的字体名称(即:arial斜体)。 –

相关问题