\newfootnoteseries로 정의된 각주는 작동하지 않습니다.

\newfootnoteseries로 정의된 각주는 작동하지 않습니다.

를 사용하여 정의한 새 각주에 문제가 있습니다 \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}

여기에 이미지 설명을 입력하세요

버그 보고서를 제출하세요.

관련 정보