Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

脚注・後注番号の順番がMakerによって変わる #1846

Open
kn1cht opened this issue Jul 30, 2022 · 1 comment
Open

脚注・後注番号の順番がMakerによって変わる #1846

kn1cht opened this issue Jul 30, 2022 · 1 comment

Comments

@kn1cht
Copy link
Contributor

kn1cht commented Jul 30, 2022

概要

脚注(footnote)および後注(endnote)で、採番の順序がMakerによって異なるようです。

  • 本文での参照 @<fn>/@<endnote> の登場順に採番される:pdf
  • 注の中身 //footnote,//endnote の登場順に採番される:web, idgxml, epub, text

本文での参照と注の中身の順序が一致している限りは問題ありませんが、両者の並び順が食い違う.reファイルでは、想定と異なる注番号が振られることがありえます。
(例: PDFで出力を確認してからEPUBやInDesignに移ると、番号が思っていたものと違う)

環境

  • Review 5.5.0
  • review-init直後のプロジェクト
  • テスト用Re:VIEWファイル
= Footnote Order Test

body1-footnote1 @<fn>{body1-footnote1}

body2-footnote3 @<fn>{body2-footnote3}

body3-footnote2 @<fn>{body3-footnote2}

//footnote[body1-footnote1][body1-footnote1]
//footnote[body3-footnote2][body3-footnote2]
//footnote[body2-footnote3][body2-footnote3]
= Endnote Order Test

body1-endnote1 @<endnote>{body1-endnote1}

body2-endnote3 @<endnote>{body2-endnote3}

body3-endnote2 @<endnote>{body3-endnote2}

//endnote[body1-endnote1][body1-endnote1]
//endnote[body3-endnote2][body3-endnote2]
//endnote[body2-endnote3][body2-endnote3]

== Endnotes
//printendnotes

期待する出力

Builderによらず、注番号の並び順が一致する

実際の出力

5種類のMakerでテストした結果の一部です(初めendnoteだけの問題と思っていたのでendnoteの結果中心です。footnoteでも同様の結果でした)。

PDF

本文での@<endnote>の登場順に番号が振られました。

キャプチャ

Text

//endnoteの登場順に番号が振られました。

■H1■第1章 Endnote Order Test
body1-endnote1 【後注1】
body2-endnote3 【後注3】
body3-endnote2 【後注2】
■H2■1.1 Endnotes
◆→開始:後注←◆
【後注1】body1-endnote1
【後注2】body3-endnote2
【後注3】body2-endnote3
◆→終了:後注←◆

InDesign XML

//endnoteの登場順に番号が振られました。

<?xml version="1.0" encoding="UTF-8"?>
<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/">
<title aid:pstyle="h1">第1章 Endnote Order Test</title>
<?dtp level="1" section="第1章 Endnote Order Test"?>
<p>body1-endnote1 <span type='endnoteref' idref='endnoteb-body1-endnote1'>(1)</span></p>
<p>body2-endnote3 <span type='endnoteref' idref='endnoteb-body2-endnote3'>(3)</span></p>
<p>body3-endnote2 <span type='endnoteref' idref='endnoteb-body3-endnote2'>(2)</span></p>
<title aid:pstyle="h2">1.1 Endnotes</title>
<?dtp level="2" section="1.1 Endnotes"?>
<endnotes>
<endnote id='endnoteb-body1-endnote1'><span type='endnotenumber'>(1)</span>	body1-endnote1</endnote>
<endnote id='endnoteb-body3-endnote2'><span type='endnotenumber'>(2)</span>	body3-endnote2</endnote>
<endnote id='endnoteb-body2-endnote3'><span type='endnotenumber'>(3)</span>	body2-endnote3</endnote>
</endnotes>
</doc>

考えられる対処

A. Makerによらず注番号の振り方を統一する

本文での参照 @<fn>/@<endnote> の登場順に採番される:pdf
注の中身 //footnote,//endnote の登場順に採番される:web, idgxml, epub, text

のいずれかの動作に統一されれば出力先による齟齬はなくなります。
本文中で注番号が連番になって欲しい場合が多いと考えられるので、これを行うとしたらPDF以外の4つをPDFと同じになるように修正することになるでしょうか?

B. 本文中の参照と注の中身で順番が違っていたら自動修正する、または警告する

過去のissuesを拝見している限り、注番号の振り方にはいろいろと難しい問題がありそうです。

本issueで上げた問題は、参照の登場順と注の中身の登場順が一致するよう.reファイルを修正すれば起こりません。
従って、もし番号を振る順番の修正ができない場合、生成中に内部で注の登場順を入れ替えてしまうか、「順番が違うため注番号が前後する可能性がある」という警告を出すことが考えられます。

@kmuto
Copy link
Owner

kmuto commented Jul 30, 2022

はい、既知ではあるのですがだいぶ厄介な問題であります。
実はpdfmakerでもfootnotetextに展開せざるを得ない場所、たとえば見出しやキャプションあたりに入れた場合だと、順序違いのfootnoteを入れられたときに、やはりさまざまに変なことが起きます。

ということで、対処Aは結局pdfmakerも正しくはなく、なんとかするのもかなり難しいのでこの線でがんばるのは厳しいですね。
対処Bについては、「登場順を入れ替える」はfootnote等は章末に必ずまとめるルールではない(段落間あちこちに入る書き方をしているものも多い)ので、順序を差し替えるのはやはり不可能です。ということで「順番が違うため前後する可能性がある」を警告する(※前後移動させるフロート図表のときもあるので一概にエラーにはできない)という方向が妥当そうではあるのですが、実装をどうしたらいいか悩んでいます。参照側と定義側それぞれ位置情報(参照側は行だけでなく列位置も)を持たせてひととおり通した後に解析、みたいなことにしないといけない気がしますが、だいぶ大掛かりになりそう。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants