endnotesを表紙で使うとTeXLive2015でエラー

endnotesを表紙で使うとTeXLive2015でエラー

- 匿名 の投稿
返信数: 3
みなさま

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は便利なので使い続けたいと思っています。

よろしくお願いいたします。
匿名 への返信

Re: endnotesを表紙で使うとTeXLive2015でエラー

- 前田 一貴 の投稿
\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}
匿名 への返信

Re: endnotesを表紙で使うとTeXLive2015でエラー

- Z. R. の投稿

これは 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}
Z. R. への返信

Re: endnotesを表紙で使うとTeXLive2015でエラー

- 匿名 の投稿
お二人とも早速の解決策ありがとうございます!
思い切って質問してよかったです。
とてもじゃないけど私からは出てこないコードですので。
これで安心してTeXLive2015を使えます。

この問題は早晩世界中のTeXユーザーを悩ますと思いますので,
endnotesの作者さんとかに連絡してあげたらどうでしょう。
英語のサイトとかも結構見たのですが,
ヒントらしきものはありませんでしたので。