Принудительное размещение таблицы на четной странице в подиндексах мемуаров приводит к путанице с \numberwithin в amsmath

Принудительное размещение таблицы на четной странице в подиндексах мемуаров приводит к путанице с \numberwithin в amsmath

Когда я используюРешение Швайнебаке, гарантирующее размещение таблицы на ровной страницевнутри memoirокружения subappendicesвместе с amsmath, \numberwithinто \numberwithinбольше не работает. То есть таблица нумеруется как "1.1.1", а не как "1.A.1".

Как это исправить?

\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}

решение1

Длинный комментарий.

Попробуйте добавить это в преамбулу

\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}}

Затем вы можете увидеть в журнале, что из-за задержки в таблице, subappendices уже закончились на момент запуска таблицы. Это \numberwithin{table}{section}локальное определение, поэтому исчезает в\end{subappendices}

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