Заменить \begin{table}
на \@float{table}
и заменить \end{table}
на \end@float
.
\@float
и \end@float
являются внутренними командами LaTeX для запуска и завершения среды с плавающей точкой.
Вы также захотите последовать совету Алексея по параметру # 2. Сохраните его в первой части вашей среды (\gdef\mycaption{#2}
), а затем вызовите его позже \caption{\mycaption}
во второй части. Поставьте \def\mycaption{\relax}
непосредственно перед строкой \begin{defaultTable}
.
Кроме того, поскольку в \@float
и \end@float
есть знаки @
, если этот код находится в преамбуле файла вашего документа (вместо, скажем, файла .sty
), вам нужно поставить \makeatletter
до вашего \begin{defaultTable}
, а также \makeatother
после \end{defaultTable}
.