InDesign 尾注自动化
InDesign Endnote Automation
我正在使用这个简单的脚本来抓取包裹在 [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();
因此,当我设置 insertionPoints[0]
的内容时,完整的尾注最终位于尾注标记内。但是,字符串末尾有一个无关的制表符...我将其删除,它按我想要的方式工作!
我替换了这一行:
endnote.texts[0].contents = taggedText;
有了这些:
endnote.texts[0].insertionPoints[0].contents = taggedText;
endnote.texts[0].contents = endnote.texts[0].contents.replace('\t', '');
我正在使用这个简单的脚本来抓取包裹在 [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();
因此,当我设置 insertionPoints[0]
的内容时,完整的尾注最终位于尾注标记内。但是,字符串末尾有一个无关的制表符...我将其删除,它按我想要的方式工作!
我替换了这一行:
endnote.texts[0].contents = taggedText;
有了这些:
endnote.texts[0].insertionPoints[0].contents = taggedText;
endnote.texts[0].contents = endnote.texts[0].contents.replace('\t', '');