jsarticle + amsthm で付録を使うと定理番号がおかしくなるやつ

卒論執筆のとき困ったので備忘録として.

問題

jsarticle + amsthm において,付録で

\begin{thm}
ほげほげ
\end{thm}

みたいなことをすると,

定理付録 A.1 ほげほげ

として出力される.(本当は,「定理 A.1」のようにしたい)

 

これを防ぐために

\def\thesection{\Alph{section}}

を入れると,今度は目次とかの表示が「付録 A. ぴよぴよ」ではなく「A. ぴよぴよ」となる.

これは,amsthm が定理番号を出力するときに \thesection を呼んでいること,jsarticle では \thesection に「付録」(\presectionname)まで含めていることの合わせ技で発生している.

bxjscls を使うという解決策(参照)があるらしいが,色々あってうまくいかなかった*1

解決策

ここ

\usepackage{regexpatch}
\makeatletter
\regexpatchcmd{\@xthm}
{\c{csname} the\cP\#3}
{\c{@arabic}\c{@xp}\c{@nx}\c{csname} c@\cP\#3}{}{}
\makeatother

を拝借する.プリアンブルに置くだけでよい.

おわりに

なんというか秘伝のタレ感がある.本質的には,指定の卒論スタイルファイルのドキュメントクラスを変更することで解決すべきな気がする.

 

*1:卒論スタイルファイルが指定されており下手にいじれなかった,とか.