0

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

我怎样才能达到完全相反的效果?(即只去掉正文中的小数字,而不是实际的脚注)

4

1 回答 1

0

我建议您通过脚本使用 GREP,而不是遍历所有故事。脚注标记模式是“~F”。这将在文本标记和底部标题中捕获。要专门针对文本脚注标记,您可以重新调整模式以仅考虑跟随任何字符的标记。完成后,您将获得一组脚注标记,您可以在其上调用 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');

}

编辑脚注标记();

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

洛伊克

于 2012-06-14T21:56:17.107 回答