添加到附录的命令

添加到附录的命令

有什么优雅的方法可以将(在我的情况下是表格)添加到附录中而不留下我正在处理的文件部分?即我应该如何定义命令\addtoappendix

Here is an example of a table you can find in \cref{appendix} \addtoappendix{table}.

我见过这个问题,有没有更简单/更简短的方法?

设置如下:我正在使用 Pythontex 编写表格,并且我想在附录中保留这些表格的副本。

编辑(最少的例子):

首先不使用 Pythontex:

\documentclass[11pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsthm, amssymb}
\usepackage{amsfonts}
\usepackage{hyperref}
\usepackage[nameinlink]{cleveref}

\begin{document}

\begin{table}
  \center
\begin{tabular}{cc}
  $a$&$b$\\
  $c$&$d$
\end{tabular}
\caption{A table}
\label{tab:table}
\end{table}
Here is a \cref{tab:table}. 
\end{document}

在这种情况下,\addtoappendix{\begin{table}...\end{table}}应该打印附录中的表格。

我认为使用 Pythonthex 进行调整应该很简单,但可能并非如此:

\documentclass[11pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsthm, amssymb}
\usepackage{amsfonts}
\usepackage{hyperref}
\usepackage{pythontex}
\usepackage[nameinlink]{cleveref}

\begin{document}

\begin{pycode}
def ptable():
  print("\\begin{table}\\center")
  print("\\begin{tabular}{cc}")
  print("$a$&$b$\\\\")
  print("$c$&$d$")
  print("\\end{tabular}")
  print("\\caption{A table}")
  print("\\label{tab:table}")
  print("\\end{table}")
\end{pycode}
\pyc{ptable()}
Here is \cref{tab:table}

\end{document}

\addtoappendix{\pyc{ptable()}}应将附录中的表格打印出来。

谢谢你!

答案1

您可以在 的帮助下,通过收集令牌列表寄存器中的表来完成此操作environ

\documentclass[11pt,a4paper]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsthm, amssymb}
\usepackage{environ}
\usepackage{hyperref}
\usepackage[nameinlink]{cleveref}

\usepackage{lipsum} % for context

\newtoks\appendixtabletoks

\NewEnviron{appendixtable}{%
  \edef\temp{%
    \noexpand\begin{table}[hp]
    \unexpanded\expandafter{\BODY}
    \noexpand\end{table}
  }%
  \global\appendixtabletoks=\expandafter{%
    \the\expandafter\appendixtabletoks\temp
  }
}

\begin{document}

\lipsum[1]

\begin{appendixtable}
\centering
\begin{tabular}{cc}
  x & y \\
  abc & def
\end{tabular}
\caption{A table}
\label{tab:table}
\end{appendixtable}
Here is a \cref{tab:table}.

\appendix
\chapter{Tables}

\the\appendixtabletoks

\end{document}

在此处输入图片描述

相关内容