Я пытаюсь найти способ взять все пронумерованные уравнения в моем документе (т. е. все, что находится внутри среды equation
) и автоматически сгенерировать лист уравнений, приложенный к концу документа.
Я нашел несколько ответов на вопросы (например,здесьиздесь), где tocloft
пакет используется для создания списка ссылок в стиле оглавления уравнений, используемых в документе.Это не то, чего я хочу делать.Мне бы хотелось добавить в конец документа новую страницу, на которой будут набраны сами уравнения с соответствующими им номерами уравнений рядом с ними, желательно с возможностью преобразовать лист в формат из 2 или 3 колонок.
решение1
\equationpage просто перечисляет уравнения, используя среды уравнений. Вы можете применить любое форматирование столбцов или шрифтов, которое захотите.
Примечание: среда уравнения* не будет сохранена для списка.
\documentclass{article}
\usepackage{mathtools}
\usepackage{environ}
\newcounter{eqsaved}
\newcounter{eqused}
\let\oldequation=\equation% save original equation environment
\let\oldendequation=\endequation
\NewEnviron{myequation}{%
\oldequation\BODY\oldendequation
\stepcounter{eqsaved}%
\global\expandafter\edef\csname myequationnumber\theeqsaved\endcsname{\theequation}%
\global\expandafter\edef\csname myequation\theeqsaved\endcsname{\BODY}}
\let\equation=\myequation% replace equation environment
\let\endequation=\endmyequation
\newcommand{\equationpage}%
{\ifnum\value{eqused}<\value{eqsaved}\relax
\loop\stepcounter{eqused}%
\oldequation{\csname myequation\theeqused\endcsname}
\tag{\csname myequationnumber\theeqused\endcsname}\oldendequation
\ifnum\value{eqused}<\value{eqsaved}\relax\repeat
\fi}
\begin{document}
\begin{equation} x=a \end{equation}
\begin{equation} y=b \end{equation}
\newpage\equationpage
\end{document}