Échelle des accolades de l'environnement des cas sous forme de tableau
Je veux formater un environnement de cas dans une table de telle sorte que les accolades aient un certain décalage par rapport aux lignes horizontales. Par défaut, cette distance est égale à zéro, et si la hauteur de ligne est ajustée à \extrarowheight
l' aide des accolades, redimensionnez simplement proportionnellement. Je n'ai pas pu obtenir de meilleurs résultats en utilisant \array
.
Quelqu'un a-t-il une idée de la façon de composer cela correctement?

\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}
Réponses
Avec l'utilisation de makegapedcells
défini dans le makecell
package:

\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}
Remarque: avec l'utilisation de l' array
intérieur de l'environnement mathématique au lieu du tabular
, vous pouvez tout omettre $
dans le tableau sauf dans les \multirow
cellules.
Une possibilité est d'utiliser booktabs
package et de remplacer chaque \hline
par \midrule
et \cline{2-3}
par \cmidrule{2-3}
comme suit:
\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}
Cela donne la sortie suivante:

Je supprimerais toutes les règles verticales et presque toutes les règles horizontales, alignerais à gauche le contenu des cellules, utiliserais à la array
place de tabular
, doublerais la valeur de \arraycolsep
, et utiliserais la \addlinespace
macro pour créer un espace de type blanc ("espace négatif") entre les lignes. Je nettoierais et rationaliserais également le code LaTeX; par exemple, remplacer \overline
par \bar
, utiliser un aligned
environnement plutôt qu'une \shortstack
directive, et configurer \ROC
et en \Re
tant qu'opérateurs mathématiques. (Merci beaucoup à @egreg pour avoir suggéré ces derniers changements.)

\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}
Voici une version avec {NiceArray}
de nicematrix
.
Ce package fournit deux touches cell-space-top-limit
et cell-space-bottom-limit
(similaires aux commandes \cellspacetoplimit
et \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}
Dans votre cas, il y a deux avantages à utiliser nicematrix
.
La commande
\Block
centrera le contenu dans le centre mathématique des cellules fusionnées (il n'y a pas besoin de réglage manuel comme avec\multirow
).Une commande
\Hline
dessinera la règle sauf dans les blocs (créés par\Block
): c'est plus facile à utiliser que\cline
.

Vous avez besoin de plusieurs compilations (car nicematrix
utilise des nœuds PGF / Tikz).