를 사용하여 정의한 새 각주에 문제가 있습니다 \newfootnoteseries
. 다음 MWE
\documentclass{memoir}
\newfootnoteseries{P}
\begin{document}
\footnote{Test1}
\footnoteP{Test2}
\footnoteP{Test3\ss}
\end{document}
생산하다
즉, 첫 번째에는 \footnoteP
텍스트가 없습니다. 두 번째는 \ss
. 두 번째도 오류가 발생합니다
/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.
나는 pdfTeX 3.141592653-2.6-1.40.25 및 회고록 2023/08/21 v3.8.1을 사용하고 있습니다.
내 생각엔 버그가 l에 있는 것 같아. 8696,
\rule\z@\footnotesep\ignorespaces\@nameuse{foottextfont#1 ##1}%
##1
외부에 있어야 합니다 .}
답변1
불쾌한 버그! 매크로는 \@footnotetextP
다음과 같이 끝납니다.
\@nameuse {foottextfontP #1}
대신에 몸에
\@nameuse {foottextfontP}#1
따라서 각주 텍스트는 조판되는 대신 매크로 이름의 일부로 처리되고 매크로는 정의되지 않으므로 \relax
대신 사용됩니다. 그러나 \ss
비트는 오류를 유발하고 결국 조판됩니다.
오류는 라인 8696에 있습니다.memoir.cls
\rule\z@\footnotesep\ignorespaces\@nameuse{foottextfont#1 ##1}%
어느 것이 되어야 하는가?
\rule\z@\footnotesep\ignorespaces\@nameuse{foottextfont#1}##1%
귀하의 경우 생성된 매크로를 패치할 수 있습니다.
\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}
버그 보고서를 제출하세요.