\DocumentMetadataでエラー

Re: \DocumentMetadataでエラー

- John Smith の投稿
返信数: 1
m c さん、ありがとうございます。追加で調べたので共有します。
原因は tagpdf ではなく、\DocumentMetadata が読み込む新しい見出し実装 latex-lab-sec のようです。エラーに出る \l__head_prefix_decls_tl はこのモジュールの内部変数で、ログでも同じ名前空間の変数(\l__head_level_int など)が latex-lab-testphase-sec-template から定義されています。\chapter だけ引っかかるのは、エラー箇所(\l__head_prefix_decls_tl @chapapp …)のとおり、章の接頭辞 @chapapp を使う経路が chapter 固有だからで、ご指摘の切り分けと一致します。標準の book クラスでは \chapter が通るので、jlreq のように \chapter/@chapapp を再定義するクラスと新実装の相互作用のようです。
回避策ですが、tagging=off にしても内部で testphase=latest が読み込まれてしまうため効きません。確実なのは \DocumentMetadata を外すことだけですで、現状は本体側の対応待ちになりそうです。
latex3/tagging-project に issue を立てました。
https://github.com/latex3/tagging-project/issues/1482
進展があれば共有します。
John Smith への返信

Re: \DocumentMetadataでエラー

- John Smith の投稿

issueにFrank Mittelbach氏から回答がありました。

未定義なのは内部変数ではなく @chapapp の方でした。新しいコードでは見出しが template ベースになり、\secdef で定義された jlreq の \chapter は自動変換できないため標準クラス相当の設定に置き換えられます。その設定が prefix として @chapapp を参照する一方、jlreq はこれを定義していないためエラーになる、とのことです。

プリアンブルに
\makeatletter \def@chapapp{Chapter} \makeatother
と書けばエラー自体は回避できますが、見出しのレイアウトは jlreq 本来の体裁にはなりません(\chapter が template 実装に差し替わるため)。根本的にはクラス側での template 対応が必要とのことなので、jlreq のリポジトリにissueを立てました。

https://github.com/abenori/jlreq/issues/151