0

我正在使用这个简单的脚本来抓取包含在[ENDNOTE][/ENDNOTE]标签中的文本,并将它们变成实际的 InDesign 尾注。我遇到的问题是只有前 4 个字符被放置在尾注标记之间(见下面的截图),知道为什么会发生这种情况,或者如何让它正常工作吗?

var doc = app.activeDocument;

function footnoteToEndnotes () {
    app.findGrepPreferences = null;
    app.findGrepPreferences.findWhat = '\\[ENDNOTE\\](.+?)\\[\\/ENDNOTE\\]';
    var endnote,
        fnotes = doc.findGrep();

    for (var i = fnotes.length-1; i >= 0; i--) {
        var taggedText = fnotes[i].contents.replace('[ENDNOTE]', '').replace('[/ENDNOTE]', '');
        endnote = fnotes[i].insertionPoints[0].createEndnote();
        endnote.texts[0].contents = taggedText;
        fnotes[i].remove();
    }
}

if (parseInt (app.version) < 13) {
    alert ('This script requires InDesign CC2018 or later');
    exit();
}

doc.endnoteOptions.frameCreateOption = EndnoteFrameCreate.NEW_PAGE;
footnoteToEndnotes();

在此处输入图像描述

4

1 回答 1

0

因此,当我设置 的内容时insertionPoints[0],完整的尾注最终出现在尾注标记内。但是,字符串末尾有一个无关的制表符......我把它去掉了,它就像我想要的那样工作!

我替换了这一行:

endnote.texts[0].contents = taggedText;

用这些:

endnote.texts[0].insertionPoints[0].contents = taggedText;
endnote.texts[0].contents = endnote.texts[0].contents.replace('\t', '');
于 2020-09-25T02:40:04.053 回答