array
increases the line spacing in a construct such as \\[2em]
by adding 2em
to its standard strut depth. However, your construction produces something that is deeper than the standard strut already, so the adjustment is not as much as you thought you requested. As you are using dcases
which is in mathtools
you could, or even should, use an align*
environment instead, and that will space correctly.

\documentclass{article}
\usepackage{mathtools}
\begin{document}
\verb+array+ example with large depth on lines has a problem:
\[
\begin{array}{l}
f(x) = \vrule height 2em depth 2em \\[2em]
g(x) = x \\[2em]
k(x) = \vrule height 2em depth 2em
\end{array}
\]
The \verb+align*+ version of the original code spaces correctly.
\begin{align*}
f(x) &=%
\begin{dcases}
-1 & x < 0 \\
1 & x > 0
\end{dcases} \\[2em]
g(x) &= x \\[2em]
k(x) &=%
\begin{dcases}
-1 & x < 0 \\
1 & x > 0
\end{dcases}
\end{align*}
\end{document}
EDITED to provide two alternate approaches.
The verbatimbox
package has a service routine \addvbuffer
, in which the optional argument is one or two lengths (symmetric space or above/below space) to add around the contents:
\documentclass{article}
\usepackage{verbatimbox}
\begin{document}
\noindent Here is a line with some text in it.
\addvbuffer[12pt 8pt]{\begin{tabular}{*4{l}}
Worg & Worg & Worg & Worg\\
Worg & Worg & Worg & Worg\\
\end{tabular}}
\noindent Here is another line with some text in it.
\end{document}

If there are two lengths in the optional argument, they must be space separated. Thus, a valid optional argument involving two actual lengths would be, for example,
\addvbuffer[{2\baselineskip} \baselineskip]{...}
The braces around the first length allow the following space to be expressed, which would otherwise be gobbled by the parser.
Note that with \addvbuffer
, lengths can be negative (with some provisos).
If the gap will be limited to vertically symmetric [positive] additions, then the \addstackgap
macro of the stackengine
package will also suffice. In the MWE below, I also added a \strut
to the end of the prior paragraph.
\documentclass{article}
\usepackage{stackengine}
\begin{document}
\noindent Here is a line with some text in it.\strut
\addstackgap[5pt]{\begin{tabular}{*4{l}}
Worg & Worg & Worg & Worg\\
Worg & Worg & Worg & Worg\\
\end{tabular}}
\noindent Here is another line with some text in it.
\end{document}

Best Answer
You have at least three options here:
Increasing the array stretch factor using
\renewcommand{\arraystretch}{<factor>}
where<factor>
is a numeric value:Explicitly specifying the row skip using
\\[<len>]
where<len>
is any length:Modifying the
array
package's\extrarowheight
length using\setlength{\extrarowheight}{<len>}
, where<len>
is any length:In the above examples, the
\hline
was used to illustrate the effect of the different styles used. The choice depends on the specific usage/typesetting of thetabular
within your document.Finally, if the contents of your entire
tabular
is math, you could typeset it in anarray
environment: