Forçar tabela em página par nos subíndices do livro de memórias confunde com \numberwithin de amsmath

Forçar tabela em página par nos subíndices do livro de memórias confunde com \numberwithin de amsmath

Quando eu uso oA solução de Schweinebacke para garantir que uma mesa seja colocada em uma página pardentro memoirdo subappendicesambiente junto com amsmatho de \numberwithin, então \numberwithinnão funciona mais. Ou seja, a tabela é numerada como “1.1.1” e não como “1.A.1”.

Como faço para corrigir isso?

\documentclass{memoir}
\usepackage{afterpage}
\usepackage{amsmath}
\newcommand{\atevenpage}[1]{%
  \afterpage{\clearpage%
    \ifodd\value{page}%
      \atevenpage{#1}%
    \else%
      #1%
    \fi%
  }%
}
\usepackage{filecontents}
\begin{filecontents*}{my_input.tex}
  \begin{table}[p]
    \caption{A table}
    \begin{tabular}{lrr}
      & A & B \\
      First row & 123 & 456 \\
      Second row & 123 & 456 \\
    \end{tabular}
  \end{table}
\end{filecontents*}
\begin{document}
  \chapter{A chapter}
  \begin{subappendices}
    \numberwithin{table}{section}
    \section{An appendix}
    \atevenpage{\input{my_input}}
  \end{subappendices}
\end{document}

Responder1

Um longo comentário.

Tente adicionar isso ao seu preâmbulo

\AddToHook{env/subappendices/begin}{\typeout{begin subapp}}
\AddToHook{env/subappendices/end}{\typeout{end subapp}}
\AddToHook{env/table/begin}{\typeout{begin table}}
\AddToHook{env/table/end}{\typeout{end table}}

Então você pode ver no log que por causa do atraso na tabela, os subapêndices já terminaram no momento da execução da tabela. A \numberwithin{table}{section}é uma definição local, então desaparece em\end{subappendices}

informação relacionada