言いっぱなしなのも何なので書いてみました.長いので添付しています.
アルゴリズム的には書いたままなんですが,
- tikzのremeber,overlayによるauxへの書き出し内容
- lstlistingのページ分割とshipoutへのフックのタイミング
- 実際の行番号の書き出しのタイミング
- 行番号とそれがどのlstlistingに付属する何ページのものかの記録
が微妙に連動する部分があって,建増しマシマシ建築というか2階の部屋に行くのに一度3階に行かないと行けない建物みたいな感じです.
なんかまだ拾い切れていないエラーがありそうですが
- \protected@write
- \ifcsname ... \endcsname
- hookライブラリ
のサンプルにはなるかと思います.hookがパワフルなのを実感しました(間違えると謎な状態にもなるのも実感).