みなさま
TeXLive2015に更新したところ,endnotes.styを使って\author{}内部に\fnsymbolを使って注を付けようとするとスタック不足でエラーになります。TL2014では問題ないですし,注印が数字とかだと問題ありません。具体的なソースファイルは
\documentclass{jarticle}
\usepackage{endnotes}
\begin{document}
\renewcommand{\theendnote}{\fnsymbol{endnote}}
\title{xxx}
\author{yyy\endnote{zzz}}
\maketitle
\theendnotes
\end{document}
です。これでplatexを走らせると以下のエラーが出ます。
! TeX capacity exceeded, sorry [input stack size=5000].
\font@name ->
\OMS/cmr/m/n/8
l.7 \maketitle
ググってみたところ,fixltx2eで\fnsymbolに変更があったのが原因だと推測されますが,詳しくないので分かりません。
なにか解決策が分かれば教えていただけると嬉しいです。とりあえずはTL2014でなんとかなりますが,いずれは2015にしたいですし,endnotesは便利なので使い続けたいと思っています。
よろしくお願いいたします。
\tracingmacros=1 で見てみたところ,\textasteriskcentered を \edef で完全展開しようとして無限ループに陥っているように見えます.
問題のマクロをロバストにするととりあえず回避できそうなのですが,もっと良い方法はないでしょうか.
\theendnote を \robustify するのは試してみたのですが,\theendnotes の出力がおかしくなってしまいます.
\documentclass{article}
\usepackage{endnotes}
\usepackage{etoolbox}
\robustify{\textasteriskcentered}
\robustify{\textdagger}
\renewcommand{\theendnote}{\fnsymbol{endnote}}
\begin{document}
\title{xxx}
\author{yyy\endnote{zzz}}
\maketitle
foo\endnote{bar}.
\theendnotes
\end{document}
問題のマクロをロバストにするととりあえず回避できそうなのですが,もっと良い方法はないでしょうか.
\theendnote を \robustify するのは試してみたのですが,\theendnotes の出力がおかしくなってしまいます.
\documentclass{article}
\usepackage{endnotes}
\usepackage{etoolbox}
\robustify{\textasteriskcentered}
\robustify{\textdagger}
\renewcommand{\theendnote}{\fnsymbol{endnote}}
\begin{document}
\title{xxx}
\author{yyy\endnote{zzz}}
\maketitle
foo\endnote{bar}.
\theendnotes
\end{document}
これは endnoets のバグだと言っていいと思います。
まともに修正するとすればこんな感じですかね。
\documentclass{jarticle} \usepackage{endnotes} \usepackage{etoolbox} \makeatletter %%%%%%%%BEGIN TeX code \patchcmd\@endnotetext {\@doanenote{\@theenmark}}{\@doanenote{\expandonce{\@theenmark}}}{}{} \patchcmd\theendnotes {\edef\@currentlabel}{\protected@edef\@currentlabel}{}{} \makeatother %%%%%%%%END TeX code \begin{document} \renewcommand{\theendnote}{\fnsymbol{endnote}} \title{xxx} \author{yyy\endnote{zzz}} \maketitle \theendnotes \end{document}