Open aminophen opened 5 years ago
今のところ考えていること:
-f
を新設し,Flatten nested annotation (EXE2FLAT) する。
#if 0 ... #endif
でコードを隠してあるが)。
f_mode
) の初期値は 0-c
のみ明示指定 → EXE2INDEP (1)-f
のみ明示指定 → EXE2FLAT (2)-c
と -f
の両方を明示指定 → EXE2INDEP + EXE2FLAT (3)pdf_annot_depth > 0
) で
bann -> nolink -> bann -> eann -> link -> eann
という構造で,内側の bann -> eann
にリンクが付かなくなってしまうと思われる。オプション -f を新設し
他にも似たような修正機能をつける可能性があるので,flatten nested annotation だけで一つのオプションを占有するのではなく,汎用的なオプションをつける方が良いのではという気がしてきた。
→ というわけで 95529d6 でオプション全体に対するビットフラグ化を revert し,代わりに EXE2INDEP モードの機能を拡張することを想定して名称を EXE2MODIFY に変更した。
-m[flags]
を新設し,「何を修正するか」をビットフラグで指定できるようにする。
-m1
) とし,make page-independent を示す(後方互換)。-m0
ならば何もしない。special に関する修正は行わないが,それとは別に -z
(append empty pages) が使える分には良かろう。-m2
ならば flatten nested annotation を示す。-m4
ならば tidy up paper size specials を示す???
-P0
-P1
-P2
でそれぞれ「用紙サイズ special を全部無視」「最後の special が勝つ(dvipdfmx・新しい dvips 互換)」「最初の special が勝つ(古い dvips 互換)」-m4
のフラグを立てる場合は,別途 -P
オプションも付けなければならない(違反するとエラー終了)」という仕様にする? それとも,-m4
を増設せずに -P
なしだと「用紙サイズ special は何も触らない,-P
ありなら上記のとおり(0~2)とする?-m[flags]
が有効とする。つまり,EXE2CHECK で「修正が必要かどうか」を判定する際に -m[flags]
が指定されていれば,その項目だけの修正有無をチェックすることができる。
dvipdfmx は,pdf:bann 〜 pdf:eann がネストされると
のように警告が出る。dvispc の開発版はアノテーションのスタックを扱えるので,
としたい。
なお,pdf:nolink による中断 (suspend),pdf:link による再開 (resume) がある場合(例示ソース)は,これだけでは支障があるかもしれないため要確認。