Separate \arraystretch value for every table

If you define \arraystretch direct before the table (i.e. tabular) inside a group it should only be active for this table.

\begingroup
\renewcommand*{\arraystretch}{<value>}
\begin{tabular}{...}
 ...
\end{tabular}
\endgroup

Or define your own environment:

\renewenvironment{mytabular}[1][1]{%
  \renewcommand*{\arraystretch}{#1}%
  \tabular%
}{%
  \endtabular
}

% ...

\begin{mytabular}[<stretch value>]{...}
 ...
\end{mytabular}

\documentclass{article}

\newenvironment{Tabular}[2][1]
  {\def\arraystretch{#1}\tabular{#2}}
  {\endtabular}

\begin{document}

\begin{Tabular}{ccc}
 c & c & C\\
 c & c & C
\end{Tabular}

\begin{Tabular}[3]{ccc}
 c & c & C\\
 c & c & C
\end{Tabular}

\end{document}

If you are using the table enviroment to place your tables floats you can just redefine arraystretch within that environment without affecting other tables:

\documentclass{article}

\begin{document}
\begin{table}
    \centering
    \renewcommand*{\arraystretch}{0.95}
    \caption{table 1}
    \begin{tabular}{ccc}
        c & c & C\\
        c & c & C
    \end{tabular}
\end{table}

\begin{table}
    \centering
    \caption{table 2}
    \begin{tabular}[3]{ccc}
     c & c & C\\
     c & c & C
    \end{tabular}
\end{table}

\end{document}

Tags:

Spacing

Tables