首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >InDesign尾注自动化

InDesign尾注自动化
EN

Stack Overflow用户
提问于 2020-09-22 22:37:01
回答 1查看 51关注 0票数 0

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

代码语言:javascript
运行
复制
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();

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-25 10:40:04

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

我替换了这一行:

代码语言:javascript
运行
复制
endnote.texts[0].contents = taggedText;

有了这些:

代码语言:javascript
运行
复制
endnote.texts[0].insertionPoints[0].contents = taggedText;
endnote.texts[0].contents = endnote.texts[0].contents.replace('\t', '');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64012046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档