
Quero implementar as notas de rodapé aninhadas que aparecem em uma única sequência, como emNotas de rodapé aninhadascom a aula de memórias. Embora a solução dada por Werner como resposta a essa pergunta funcione à primeira vista, por ser baseada nas definições da classe do artigo, ela elimina o recurso de notas de rodapé múltiplas nas memórias (semelhante a \usepackage[multiple]{footmisc}
). O mwe abaixo mostra o problema. A formatação correta das notas de rodapé pode ser verificada comentando as redefinições de \footnotemark
e \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}
A saída possui notas de rodapé mal formatadas, tanto no texto principal quanto na primeira nota de rodapé:
Sem os dois \renewcommand
s, obtemos a saída padrão que numera as notas de rodapé incorretamente:
Acho que \m@makefootnotemark
(e talvez outras macros) do livro de memórias precise ser modificado, mas sua definição (e uso) é muito complicada para eu descobrir a mudança necessária por analogia.
Responder1
Não tenho certeza se isso é motivo. Acho que o \label
comando introduz espaço para atrapalhar a digitação de várias notas de rodapé. Este é um exemplo prático:
\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}