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