Escala de colchetes de ambientes de casos em tabela
Desejo formatar um ambiente de casos dentro de uma tabela de modo que as chaves tenham algum deslocamento das linhas horizontais. Por padrão, essa distância é zero e, se a altura da linha for ajustada usando \extrarowheight
as chaves, basta dimensionar proporcionalmente. Não consegui obter melhores resultados com o \array
.
Alguém tem alguma ideia de como escrever isso corretamente?

\documentclass[12pt]{article}
\usepackage[a4paper, top = 0.1cm, left = 0.1cm, right = 0.1cm, bottom = 0.1cm, bindingoffset=0cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{mathtools}
\usepackage{multirow}
\newcommand{\ROC}{\text{ROC}}
\begin{document}
\begin{tabular}{@{}c|c|c@{}}
$F(z)$ & $\ROC(f)$ & $f[.]$\\\hline
\multirow{2}{*}{$\dfrac{z}{z-p}$} & $|z| > |p|$ & $f[k] = \begin{cases}\hphantom{-}0, \quad &k<0\\\hphantom{-}p^k, \quad &k\ge 0\end{cases}$\\\cline{2-3}
& $0 < |z| < |p|$ & $f[k] = \begin{cases}-p^k, \quad &k<0\\\hphantom{-}0, \quad &k\ge 0\end{cases}$\\\hline
\multirow{2}{*}{\shortstack{$\dfrac{Az}{z-p} + \dfrac{\overline{A}z}{z-p}$\\$=2z\dfrac{z\text{Re}(A)-\text{Re}(A\overline{p})}{z^2 - 2z\text{Re}(p)+|p|^2}$}} & $|z| > |p|$ & $f[k] = \begin{cases}\hphantom{-}0, & k<0\\\hphantom{-}2|A||p|^k\cos(\Omega k+\varphi), &k\ge 0 \end{cases}$\\\cline{2-3}
& $0<|z|<|p|$ & $f[k] = \begin{cases}-2|A||p|^k\cos(\Omega k+\varphi), & k<0\\\hphantom{-} 0, &k\ge 0 \end{cases}$
\end{tabular}
\end{document}
Respostas
Com uso de makegapedcells
definido no makecell
pacote:

\documentclass[12pt]{article}
\usepackage[a4paper, margin= .1cm,
bindingoffset=0cm]{geometry}
\usepackage{mathtools}
\usepackage{makecell, multirow}
\newcommand{\ROC}{\text{ROC}}
\begin{document}
\[
\setcellgapes{3pt}
\makegapedcells
\begin{array}{@{}c|c|c@{}}
F(z) & \ROC(f) & f[.] \\
\hline
\multirow{4.4}{*}{$\dfrac{z}{z-p}$}
& |z| > |p| & f[k] = \begin{cases}
\hphantom{-}0, \quad & k<0 \\
\hphantom{-}p^k, \quad & k\ge 0
\end{cases} \\
\cline{2-3}
& 0 < |z| < |p| & f[k] = \begin{cases}
-p^k, \quad & k<0 \\\
\hphantom{-}0, \quad & k\ge 0
\end{cases} \\
\hline
\multirow{4.4}{*}{$\begin{aligned} & \dfrac{Az}{z-p} + \dfrac{\overline{A}z}{z-p} \\ & = 2z\dfrac{z\text{Re}(A)-\text{Re}(A\overline{p})} {z^2 - 2z\text{Re}(p)+|p|^2} \end{aligned}$}
& |z| > |p| & f[k] = \begin{cases}
\hphantom{-}0, & k<0 \\
\hphantom{-}2|A||p|^k\cos(\Omega k+\varphi), & k\ge 0
\end{cases} \\
\cline{2-3}
& 0<|z|<|p| & f[k] = \begin{cases}
-2|A||p|^k\cos(\Omega k+\varphi), & k<0\\
\hphantom{-} 0, &k\ge 0
\end{cases}
\end{array}
\]
\end{document}
Nota: com o uso de array
dentro do ambiente matemático em vez de tabular
, você pode omitir tudo $
na tabela, exceto nas \multirow
células.
Uma possibilidade é usar o booktabs
pacote e substituir todos \hline
por \midrule
e \cline{2-3}
com \cmidrule{2-3}
o seguinte:
\documentclass[12pt]{article}
\usepackage[a4paper, top = 0.1cm, left = 0.1cm, right = 0.1cm, bottom = 0.1cm, bindingoffset=0cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{mathtools}
\usepackage{multirow}
\usepackage{booktabs}
\newcommand{\ROC}{\text{ROC}}
\begin{document}
\begin{tabular}{@{}c|c|c@{}}
$F(z)$ & $\ROC(f)$ & $f[.]$\\\midrule
\multirow{2}{*}{$\dfrac{z}{z-p}$} & $|z| > |p|$ & $f[k] = \begin{cases}\hphantom{-}0, \quad &k<0\\\hphantom{-}p^k, \quad &k\ge 0\end{cases}$\\\cmidrule{2-3}
& $0 < |z| < |p|$ & $f[k] = \begin{cases}-p^k, \quad &k<0\\\hphantom{-}0, \quad &k\ge 0\end{cases}$\\\midrule
\multirow{2}{*}{\shortstack{$\dfrac{Az}{z-p} + \dfrac{\overline{A}z}{z-p}$\\$=2z\dfrac{z\text{Re}(A)-\text{Re}(A\overline{p})}{z^2 - 2z\text{Re}(p)+|p|^2}$}} & $|z| > |p|$ & $f[k] = \begin{cases}\hphantom{-}0, & k<0\\\hphantom{-}2|A||p|^k\cos(\Omega k+\varphi), &k\ge 0 \end{cases}$\\\cmidrule{2-3}
& $0<|z|<|p|$ & $f[k] = \begin{cases}-2|A||p|^k\cos(\Omega k+\varphi), & k<0\\\hphantom{-} 0, &k\ge 0 \end{cases}$
\end{tabular}
Isso dá a seguinte saída:

Gostaria de me livrar de todas as regras verticais e quase todas horizontais, alinhar à esquerda o conteúdo da célula, usar em array
vez de tabular
, dobrar o valor de \arraycolsep
e usar a \addlinespace
macro para criar o tipo de espaço em branco ("espaço negativo") entre as linhas. Eu também limparia e simplificaria o código LaTeX; por exemplo, substituir \overline
por \bar
, usar um aligned
ambiente em vez de uma \shortstack
diretiva e configurar \ROC
e \Re
como operadores matemáticos. (Muito obrigado a @egreg por sugerir as últimas alterações.)

\documentclass[12pt]{article}
\usepackage[a4paper, margin=5mm, bindingoffset=0cm]{geometry}
% \usepackage[utf8]{inputenc} % is the default
\usepackage[T1]{fontenc}
\usepackage{mathtools} % for '\DeclarePairedDelimiter' macro
\DeclarePairedDelimiter\abs\lvert\rvert
\usepackage{booktabs}
\DeclareMathOperator{\ROC}{ROC}
\renewcommand\Re{\operatorname{Re}}
\begin{document}
\[
\setlength\arraycolsep{10pt} % default: 5pt
\begin{array}{@{} lll @{}}
F(z) & \ROC(f) & f[k] \\
\midrule %\hline
\dfrac{z}{z-p}
& \abs{z} > \abs{p}
& \begin{cases}
\hphantom{-}0 &\text{if $k<0$}\\
\hphantom{-}p^k &\text{if $k\ge0$}
\end{cases} \\
\addlinespace %\cline{2-3}
& 0 < \abs{z} < \abs{p}
& \begin{cases}
-p^k &\text{if $k<0$}\\
\hphantom{-}0 &\text{if $k\ge0$}
\end{cases} \\
\addlinespace[2\defaultaddspace] % \hline
\smash[b]{%
\begin{aligned}[t] &\frac{Az}{z-p} + \frac{\bar{A}z}{z-p} \\ &=2z\frac{z\Re(A)-\Re(A\bar{p})}{z^2 - 2z\Re(p)+\abs{p}^2} \end{aligned}}
& \abs{z} > \abs{p}
& \begin{cases}
\hphantom{-}0 & \text{if $k<0$}\\
\hphantom{-}2\abs{A}\abs{p}^k\cos(\Omega k+\varphi) &\text{if $k\ge0$}
\end{cases} \\
\addlinespace % \cline{2-3}
& 0<\abs{z}<\abs{p}
& \begin{cases}
-2\abs{A}\abs{p}^k\cos(\Omega k+\varphi) & \text{if $k<0$}\\
\hphantom{-} 0 &\text{if $k\ge0$}
\end{cases}
\end{array}
\]
\end{document}
Aqui está uma versão {NiceArray}
de nicematrix
.
Este pacote fornece duas chaves cell-space-top-limit
e cell-space-bottom-limit
(semelhantes aos comandos \cellspacetoplimit
e \cellspacebottomlimit
de cellspace
).
\documentclass[12pt]{article}
\usepackage[a4paper, top = 0.1cm, left = 0.1cm, right = 0.1cm, bottom = 0.1cm, bindingoffset=0cm]{geometry}
\usepackage{mathtools}
\usepackage{nicematrix}
\newcommand{\ROC}{\text{ROC}}
\begin{document}
\NiceMatrixOptions{cell-space-top-limit=3pt,cell-space-bottom-limit=3pt}
$\begin{NiceArray}{@{}c|c|c@{}} F(z) & \ROC(f) & f[.]\\ \Hline \Block{2-1}{\dfrac{z}{z-p}} & |z| > |p| & f[k] = \begin{cases}\hphantom{-}0, \quad &k<0\\\hphantom{-}p^k, \quad &k\ge 0\end{cases}\\ \Hline & 0 < |z| < |p| & f[k] = \begin{cases}-p^k, \quad &k<0\\\hphantom{-}0, \quad &k\ge 0\end{cases}\\ \Hline \Block{2-1}{\dfrac{Az}{z-p} + \dfrac{\overline{A}z}{z-p}\\[4mm] =2z\dfrac{z\text{Re}(A)-\text{Re}(A\overline{p})}{z^2 - 2z\text{Re}(p)+|p|^2}} & |z| > |p| & f[k] = \begin{cases}\hphantom{-}0, & k<0\\\hphantom{-}2|A||p|^k\cos(\Omega k+\varphi), &k\ge 0 \end{cases}\\ \Hline & 0<|z|<|p| & f[k] = \begin{cases}-2|A||p|^k\cos(\Omega k+\varphi), & k<0\\\hphantom{-} 0, &k\ge 0 \end{cases} \end{NiceArray}$
\end{document}
No seu caso, há duas vantagens no uso nicematrix
.
O comando
\Block
centralizará o conteúdo no centro matemático das células mescladas (não há necessidade de ajuste manual como com\multirow
).Um comando
\Hline
traçará a regra com exceção dos blocos (criados por\Block
): é mais fácil de usar do que\cline
.

Você precisa de várias compilações (porque nicematrix
usa nós PGF / Tikz).