Tengo problemas con las nuevas notas a pie de página definidas mediante \newfootnoteseries
. El siguiente MWE
\documentclass{memoir}
\newfootnoteseries{P}
\begin{document}
\footnote{Test1}
\footnoteP{Test2}
\footnoteP{Test3\ss}
\end{document}
produce
es decir, el primero \footnoteP
no tiene texto; el segundo solo el \ss
. El segundo también resulta en el error.
/home/zach/tex/cwrc/sandbox/footnotetest.tex:8: Missing \endcsname inserted.
<to be read again>
\OT1\ss
l.8 \footnoteP{Test3\ss}
The control sequence marked <to be read again> should
not appear between \csname and \endcsname.
/home/zach/tex/cwrc/sandbox/footnotetest.tex:8: Extra \endcsname.
\@nameuse #1->\csname #1\endcsname
l.8 \footnoteP{Test3\ss}
I'm ignoring this, since I wasn't doing a \csname.
Estoy usando pdfTeX 3.141592653-2.6-1.40.25 y memorias 2023/08/21 v3.8.1
Creo que el error está en l. 8696,
\rule\z@\footnotesep\ignorespaces\@nameuse{foottextfont#1 ##1}%
El ##1
debe estar fuera del}
Respuesta1
¡Bicho desagradable! La macro \@footnotetextP
termina con
\@nameuse {foottextfontP #1}
en su cuerpo, en lugar de
\@nameuse {foottextfontP}#1
por lo tanto, el texto de la nota al pie se trata como parte del nombre de una macro, en lugar de estar compuesto, y la macro no está definida, por lo que \relax
se usa en su lugar. Sin embargo, el \ss
bit genera un error y finalmente se compone.
El error está en la línea 8696 dememoir.cls
\rule\z@\footnotesep\ignorespaces\@nameuse{foottextfont#1 ##1}%
cual debería ser
\rule\z@\footnotesep\ignorespaces\@nameuse{foottextfont#1}##1%
Para su caso, puede parchear la macro generada:
\documentclass{memoir}
\usepackage{xpatch}
\newfootnoteseries{P}
\makeatletter
\xpatchcmd\@footnotetextP
{\@nameuse {foottextfontP #1}}
{\@nameuse {foottextfontP}#1}
{}{}
\makeatother
\begin{document}
\footnote{Test1}
\footnoteP{\unexpanded{Test2}}
\footnoteP{\unexpanded{Test3\ss}}
\end{document}
Presentar un informe de error.