0

はい、問題があります。したがって、すべての脚注をドキュメントの最後に配置し、テキスト内の小さな数字から適切な文末脚注まで相互参照するスクリプトがあります。バックリンクを追加したいので、長いドキュメント (本) がある場合、手動でスクロールする必要はありませんが、巻末の注をクリックするだけで戻ることができます。

今では相互参照ソースとして文末脚注を取得できましたが、相互参照先に苦労しています

footnote.storyOffset を宛先として使用すると、テキスト内の脚注の番号付けが台無しになります。たとえば、最初の脚注がテキストから消えるだけで、1、3、3、4、5、7... などが続きます。なぜこれが起こるのですか?? この挿入ポイントを宛先として使用しているだけで、突然すべてが台無しになります。

脚注番号を手動でテキストに挿入するだけでも十分ですが、テキスト内のスクランブル番号を削除する方法がわかりません。次または前の文字を挿入ポイントとして使用することもできますが、どうすればそこに到達できますか?

私はそのインデザインスクリプトにかなり慣れていません。誰かが私を助けてくれることを願っています。

ソースの重要な部分は次のとおりです。

stories[j].insertionPoints[-1].contents = SpecialCharacters.PAGE_BREAK; // add new page for notes
        stories[j].insertionPoints[-1].contents = 'Notes';// title
        footn = stories[j].footnotes;
        for (var i = 0; i < footn.length; i++)
        {
            stories[j].insertionPoints[-1].contents = '\r';
            endnote = footn[i].texts[0].move (LocationOptions.after, stories[j].insertionPoints[-1]);
            endnote.applyParagraphStyle (note_styles.first, false);
            if (i === 0)
            {
                endnote.numberingContinue = false;
                endnote.numberingStartAt = 1;
            }
            if (endnote.paragraphs.length > 1)
            {
                endnote.paragraphs.itemByRange (1,-1).applyParagraphStyle (note_styles.next, false);
            }
            //var stoff = footn[i].storyOffset;
            //stoff.contents = ''+(i+1);
            //stoff.applyCharacterStyle(note_styles.char_style_in_text);
            //stoff.appliedCharacterStyle.position= Position.superscript;

            backlink_destination = doc.paragraphDestinations.add (footn[i].storyOffset); // position of footnote in text
            endnote_destination = doc.paragraphDestinations.add (endnote.insertionPoints[0]);

            try
            {
                crb = app.activeDocument.crossReferenceFormats.add({name:'backlink'+i});
                crb.appliedCharacterStyle = note_styles.char_style_endnote;
                crb.buildingBlocks.add (BuildingBlockTypes.customStringBuildingBlock);
                crb.buildingBlocks.anyItem().customText = endnote.contents;
            }
            catch(_)
            {
                crb = app.activeDocument.crossReferenceFormats.item ('backlink'+i);
            };

            backlink_source = doc.crossReferenceSources.add (endnote, crb); // position of note at end of story
            endnote_source = doc.crossReferenceSources.add (footn[i].storyOffset, note_styles.cr_format);

            doc.hyperlinks.add(backlink_source, backlink_destination, {visible: false}); //add link from notes to text
            doc.hyperlinks.add(endnote_source, endnote_destination, {visible: false});
        } // for
4

1 に答える 1

0

修正しました:
相互参照を作成する順序を反転しました。

次の行を反転しました

backlink_destination = doc.paragraphDestinations.add (footn[i].storyOffset);
endnote_destination = doc.paragraphDestinations.add (endnote.insertionPoints[0]);

endnote_destination = doc.paragraphDestinations.add (endnote.insertionPoints[0]);
backlink_destination = doc.paragraphDestinations.add (footn[i].storyOffset);

backlink_source = doc.crossReferenceSources.add (endnote, crb);
endnote_source = doc.crossReferenceSources.add (footn[i].storyOffset, note_styles.cr_format);


endnote_source = doc.crossReferenceSources.add (footn[i].storyOffset, note_styles.cr_format);
backlink_source = doc.crossReferenceSources.add (endnote, crb);

doc.hyperlinks.add(backlink_source, backlink_destination, {visible: false});
doc.hyperlinks.add(endnote_source, endnote_destination, {visible: false});

doc.hyperlinks.add(endnote_source, endnote_destination, {visible: false});
doc.hyperlinks.add(backlink_source, backlink_destination, {visible: false});

理由はわかりませんが、この順序で並べると機能します...これは優れたソフトウェアを証明するものではありません...
どうしてその価格で優れたソフトウェアを期待できるでしょうか?

于 2013-07-26T20:12:51.843 に答える