mochikoAsTechのdig日記

当方好きなコマンドはdigです!お友達から!!よろしくお願いします!!!

Re:VIEW2の原稿に色々書き足してRe:VIEW3.2でPDF吐き出したらfootnoteでエラーが出た話

何が起きた?

  • Re:VIEW//footnote を1つ追加したら、エラーが出て docker-compose run --rm review rake pdf が通らなくなった
  • Re:VIEW開発者の@kmutoさんが助けてくれて無事エラーが解消した

どうやったら解消したの?

  • エラーが出たのと同じ章にあるコラム内の注脚はコラムブロック( ===[column] から ===[/column] まで)の外に出す

詳しく

  • もともとRe:VIEW2系で書いてた「DNSをはじめよう」の初版原稿があった
  • そこに色々書き足して、改訂第2版はRe:VIEW3.2の環境でPDF吐いてた
  • なんだけど @<fn>{nameSpace} を追加した瞬間にエラーで docker-compose run --rm review rake pdf が通らなくなった
    • footnoteの名前を変えてみたり @<fn>{nameSpace}//footnote[nameSpace][] の位置を変えてみてもだめ
    • エラーメッセージは色々出てたけど、その中に ./domain.tex:651: LaTeX Error: Counter too large. があった
  • うんうん悩んでたらRe:VIEW開発者の@kmutoさんがIssueを投げてくれた github.com
  • Issueから転載すると、こういうことだった
## エラー理由
columnブロック内に//footnoteを入れてしまうと、

- Re:VIEW2では何も考えていなかったので//footnoteをコラムの中に入れるとコラム単位で脚注がa,b,cの振り直しでつき、コラムの外に置くと脚注が「消える」という極めてわかりにくい挙動になる。Re:VIEW3では、column脚注を普通の脚注にするためにちょっと内部で特殊なことをして本文採番と合わせるようにしている(footnotemark+footnotetext)。
- ただし、//footnoteをコラムの中に入れるとa,b,c...というカウントになるが、本文採番に基づくのでおかしなことになる。
- 今回の場合、本文も合わせて …、27、28とカウントしてきて、ここはコラム内なのでabc採番で「28」を表現しようとして、zを超えてしまってcounter too largeエラーになる。

## 対処
脚注本体である `//footnote` はコラムの終わりの後ろに置く。
  • つまりコラム内の注脚の採番がRe:VIEWの2系→3系で変わったことが原因だった
  • コラム内の注脚はコラムブロック( ===[column] から ===[/column] まで)の外に出すのがよさげ
    • 章内に注脚なんか5,6個しかないよー、26個を超えることは絶対ないよー、という人はコラム内に書いてても問題なさそう