我正在尝试使用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 :(得分:0)
我可能会建议您通过脚本来使用GREP,而不是遍历所有故事。 脚注标记图案是“~F”。这将捕获文本标记和底部标题中的thos。要专门定位文本脚注标记,您可以重新对齐模式以仅考虑跟随任何字符的标记。 完成后,您将获得一系列脚注标记,您可以在其上调用changeGrep以按照您的意愿将标记设置为样式化。 您必须设置“注释”字符样式才能使此代码段正常工作。
function editFootNotesMarkers()
{ var allresults,result,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();
当然可以在没有任何脚本的情况下实现;)
卢瓦克