Как создать \ newenvironment в латексе для масштабируемой таблицы - PullRequest
1 голос
/ 01 мая 2010

Я пытаюсь определить таблицу как новую среду.

\newenvironment{scaledtable}[1]{%
\begin{table}[h]
\caption{xxx}
\label{tab:xxx}
\begin{center}
\begin{tabular}{rcrrrrrrrrrrrrcc}
}{
\hline
\end{tabular}
\end{center}
\end{table}}

Проблема в том, что я не могу использовать scalebox {}. Если я добавлю закрывающую скобку в окончательное определение среды, латекс больше не сможет назначать скобки. Я также не могу использовать PStricks из-за pdflatex.

1 Ответ

3 голосов
/ 02 мая 2010

Используйте \lrbox для временного хранения таблицы, затем масштабируйте ее

\newsavebox{\scaledtablebox}
\newcommand*{\scaledtablefactor}{1}
\newenvironment{scaledtable}[1]{%
\renewcommand*{\scaledtablefactor}{#1}%
\begin{table}[h]%
\caption{xxx}%
\label{tab:xxx}%
%
\begin{lrbox}{\scaledtablebox}%
\begin{tabular}{ll}%
}{%
\hline%
\end{tabular}%
\end{lrbox}%
%
\begin{center}%
\scalebox{\scaledtablefactor}{\usebox{\scaledtablebox}}%
\end{center}%
\end{table}%
}

Работает так (0.5 - коэффициент масштабирования):

\begin{scaledtable}{0.5}
Hello & World! \\
\end{scaledtable}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...