将文章中的表格移至其声明之前

将文章中的表格移至其声明之前

您好,我编写了 3 个宏,用于创建我在文章中添加的内容表。\startMyTable,,它们的名称表明了它们的作用。\inMyTable\createMyTable

所以当我写下:

Hello
\startMyTable 
Hello2

\inMyTable{FIRST}
\inMyTable{SECOND}

Hello3
\createMyTable
Hello4

它创建了类似这样的内容:

Hello
Hello2
Hello3
 --------
|  FIRST |
 --------
| SECOND |
 --------
Hello4

有没有办法将表格移动到文章的某个位置(例如文章开头)?我知道这需要对 latex 语法进行预编译,但我不知道如何操作以及要搜索什么。你有什么建议吗?

我发布了建议用于创建如下表的代码:

\newcommand\startMyTable{\def\MyTable{\begin{tabular}{|l|}}}

\newcommand\inMyTable[1]{%
   \edef\MyTable{%
   \expandafter\unexpanded\expandafter{\MyTable#1\\}}}

\newcommand\createMyTable{\begin{center}\MyTable\end{tabular}\end{center}}

答案1

在此处输入图片描述

\documentclass{article}

\makeatletter

\newcommand\startMyTable{%
\immediate\write\@auxout{\unexpanded{%
  \gdef\MyTable{}}}}

\newcommand\inMyTable[1]{%
\immediate\write\@auxout{\unexpanded{%
   \xdef\MyTable{%
   \expandafter\unexpanded\expandafter{\MyTable#1\\}}}}}

\newcommand\createMyTable{%
  \begin{center}
\begin{tabular}{|l|}\ifx\MyTable\@undefined \ldots\else\MyTable\fi\end{tabular}
\end{center}}

\makeatother

\begin{document}

\createMyTable

\section{zzz}


Hello
\startMyTable 
Hello2

\inMyTable{FIRST}
\inMyTable{SECOND}

Hello3

Hello4

\end{document}

像所有这样的事情一样,需要运行两次(第一次运行会得到...)

相关内容