Escala del entorno de llaves de casos en tabular
Quiero formatear un entorno de casos dentro de una tabla de modo que las llaves tengan algún desplazamiento de las líneas horizontales. De forma predeterminada, esta distancia es cero, y si la altura de la fila se ajusta utilizando \extrarowheightlas llaves, simplemente escale proporcionalmente. No pude lograr mejores resultados usando \array.
¿Alguien tiene una idea de cómo componer esto correctamente?
\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}
Respuestas
Con el uso de makegapedcellsdefinido en el makecellpaquete:
\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: con el uso del arrayinterior del entorno matemático en lugar del tabular, puede omitir todo $en la tabla excepto en las \multirowceldas.
Una posibilidad es usar booktabspackage y reemplazar cada \hlineby \midruley \cline{2-3}with de la \cmidrule{2-3}siguiente manera:
\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}
Esto da el siguiente resultado:
Me desharía de todas las reglas verticales y casi todas las horizontales, alinearía a la izquierda el contenido de la celda, usaría en arraylugar de tabular, duplicaría el valor de \arraycolsepy usaría la \addlinespacemacro para crear espacios en blanco ("espacio negativo") entre las filas. También limpiaría y optimizaría el código LaTeX; por ejemplo, reemplazar \overlinecon \bar, usar un alignedentorno en lugar de una \shortstackdirectiva, y configurar \ROCy \Recomo operadores matemáticos. (Muchas gracias a @egreg por sugerir los últimos cambios).
\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}
Aquí hay una versión con {NiceArray}de nicematrix.
Este paquete proporciona dos claves cell-space-top-limity cell-space-bottom-limit(similar a los comandos \cellspacetoplimity \cellspacebottomlimitde 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}
En su caso, existen dos ventajas al usar nicematrix.
El comando
\Blockcentrará el contenido en el centro matemático de las celdas fusionadas (no hay necesidad de ajuste manual como con\multirow).Un comando
\Hlinedibujará la regla exceptuada en los bloques (creados por\Block): es más fácil de usar que\cline.
Necesita varias compilaciones (porque nicematrixusa nodos PGF / Tikz).