如何使用ExtendScript从InDesign文档中的所有脚注引用中删除斜体和粗体样式?

时间:2012-06-14 17:50:28

标签: javascript adobe-indesign extendscript footnotes

我正在尝试使用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";
      }
    }
  }

我怎样才能完全相反? (即只删除正文中的小数字,但不删除实际的脚注)

1 个答案:

答案 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();

当然可以在没有任何脚本的情况下实现;)

卢瓦克