Skala nawiasów środowiska przypadków w tabeli
Chcę sformatować środowisko przypadków wewnątrz tabeli tak, aby nawiasy klamrowe miały pewne przesunięcie od linii poziomych. Domyślnie ta odległość wynosi zero, a jeśli wysokość wiersza jest regulowana za \extrarowheightpomocą nawiasów klamrowych, po prostu skaluj proporcjonalnie. Nie udało mi się osiągnąć lepszych rezultatów stosując \array.
Czy ktoś ma pomysł, jak poprawnie to złożyć?
\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}
Odpowiedzi
Przy użyciu makegapedcellszdefiniowanych w makecellpakiecie:
\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}
Uwaga: korzystając z arraywnętrza środowiska matematycznego zamiast z tabular, możesz pominąć wszystko $w tabeli oprócz \multirowkomórek.
Jedną z możliwości jest użycie booktabspakietu i zastąpić każdy \hlineprzez \midrulei \cline{2-3}z \cmidrule{2-3}, co następuje:
\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}
Daje to następujący wynik:
Pozbyłbym się wszystkich pionowych i prawie wszystkich poziomych reguł, wyrównałbym zawartość komórki do lewej, użyłbym arrayzamiast tabular, podwoiłbym wartość \arraycolsepi użył \addlinespacemakra do utworzenia białych znaków („spacja ujemna”) między wierszami. Chciałbym również wyczyścić i usprawnić kod LaTeX; na przykład wymienić \overlinez \bar, należy użyć alignedśrodowiska zamiast \shortstackdyrektywy, oraz skonfigurować \ROCi \Rejak operatorów matematycznych. (Podziękowania dla @egreg za zasugerowanie tych ostatnich zmian.)
\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}
Oto wersja z {NiceArray}o nicematrix.
Ten pakiet zawiera dwa przyciski cell-space-top-limiti cell-space-bottom-limit(podobny do poleceń \cellspacetoplimiti \cellspacebottomlimito 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}
W twoim przypadku są dwie zalety używania nicematrix.
Polecenie
\Blockwyśrodkuje zawartość w matematycznym środku scalonych komórek (nie ma potrzeby ręcznego dostosowywania, jak w przypadku\multirow).Polecenie
\Hlinenarysuje regułę z wyjątkiem bloków (utworzonych przez\Block): jest łatwiejsze w użyciu niż\cline.
Potrzebujesz kilku kompilacji (ponieważ nicematrixużywa węzłów PGF / Tikz).