Как объединить вложенные сноски с мемуарами?

Как объединить вложенные сноски с мемуарами?

Я хочу реализовать вложенные сноски, появляющиеся в одной последовательности, как вВложенные сноскис классом memoir. Хотя решение, данное Вернером в качестве ответа на этот вопрос, на первый взгляд работает, но поскольку оно основано на определениях в классе article, оно устраняет функцию множественных сносок в memoir (аналогично \usepackage[multiple]{footmisc}). Mwe ниже показывает проблему. Правильное форматирование знаков сносок можно увидеть, закомментировав переопределения \footnotemarkи \footnotetext.

\documentclass{memoir}

\usepackage{letltxmacro}

\newcounter{fnmarkcntr}
\newcounter{fntextcntr}
\makeatletter
\renewcommand{\footnotemark}{%
   \@ifnextchar[\@xfootnotemark
     {\stepcounter{fnmarkcntr}%
      \refstepcounter{footnote}\label{footnotemark\thefnmarkcntr}%
      \protected@xdef\@thefnmark{\thefootnote}%
      \@footnotemark}}
\makeatother
\LetLtxMacro{\oldfootnotetext}{\footnotetext}
\renewcommand{\footnotetext}[1]{%
  \refstepcounter{fntextcntr}
  \oldfootnotetext[\ref{footnotemark\thefntextcntr}]{#1}
}

\begin{document}

This text has footnotes%
\footnote{Which contains sub-footnotes\footnotemark% \multfootsep
\footnotemark that should be marked clearly as separate}%
\footnotetext{This footnote should be labeled `2'}%
\footnotetext{This footnote should be labeled `3'}%
\footnote{Another footnote}%

\end{document}

В выводе присутствуют плохо отформатированные сноски как в основном тексте, так и в первой сноске: выход mwe

Без двух \renewcommands мы получим вывод по умолчанию, в котором сноски пронумерованы неправильно: введите описание изображения здесь

Я думаю \m@makefootnotemark(и, возможно, другие макросы) из memoir необходимо изменить, но его определение (и использование) слишком сложно для меня, чтобы понять необходимое изменение по аналогии.

решение1

Я не уверен, что это причина. Я думаю, что \labelкоманда вводит пробел, чтобы испортить набор сносок. Вот рабочий пример:

\documentclass{memoir}
\newcounter{myfn}
\newcounter{tpmyfn}
\makeatletter
\def\footnotemark{\@ifnextchar [\@xfootnotemark%
{\advance\c@myfn1\c@tpmyfn\numexpr\value{myfn}+\value{footnote}%
\protected@xdef\@thefnmark{\thetpmyfn}%
\@footnotemark}}
      
\def\footnotetext{%
     \@ifnextchar [\@xfootnotenext%
     {\stepcounter{footnote}\c@myfn0\protected@xdef\@thefnmark{\thempfn}%
    \@footnotetext}}
\makeatother
\begin{document}

This text has footnotes%
\footnote{Which contains sub-footnotes\footnotemark\footnotemark that should be marked clearly as separate}%
\footnotetext{This footnote should be labeled `2'}%
\footnotetext{This footnote should be labeled `3'}%
\footnote{Another footnote}%
\end{document}

введите описание изображения здесь введите описание изображения здесь

Связанный контент