`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 the`tabular`

within your document.Finally, if the contents of your entire

`tabular`

is math, you could typeset it in an`array`

environment: