
Tengo una tabla que contiene matemáticas con subíndices y superíndices. Estos tocan las líneas superiores e inferiores de la tabla. Probé bastantes alternativas pero no pude encontrar nada que proporcione un espacio adecuado en las filas sin estropear también el espacio de la fila del título (es decir, alinear los encabezados demasiado a la izquierda). Se agradecería cualquier sugerencia sobre el mejor enfoque para esto.
Aquí está mi resultado actual (estoy usando el paquete de matriz):
\begin{table}[htbp]
\begin{center}
\begin{tabular}{| m{2.7cm} | m{8cm}|}
\hline
\textbf{Marginalised term} & \textbf{3 variable terms} \\
\hline \hline
$H_\partial^{12}(\{12\})$ &
$\begin{aligned}
&H_\partial^{123}(\{12\}) + H_\partial^{123}(\{3\}\{12\}) \\
&+ H_\partial^{123}(\{12\}\{13\}) + H_\partial^{123}(\{12\}\{23\}) \\
&+ H_\partial^{123}(\{12\}\{13\}\{23\})
\end{aligned}$ \\
\hline
$H_\partial^{12}(\{1\})$ &
$H_\partial^{123}(\{1\})+H_\partial^{123}(\{1\}\{23\})+H_\partial^{123}(\{1\}\{3\})$ \\
\hline
$H_\partial^{12}(\{2\})$ &
$H_\partial^{123}(\{2\})+H_\partial^{123}(\{2\}\{13\})+H_\partial^{123}(\{2\}\{3\})$ \\
\hline
$H_\partial^{12}(\{1\}\{2\})$ &
$H_\partial^{123}(\{1\}\{2\})+H_\partial^{123}(\{1\}\{2\}\{3\})$ \\
\hline
\end{tabular}
\end{center}
\end{table}
Establecer una altura adicional fija el espacio superior para las tres filas inferiores, pero aún así todas tocan la línea h inferior y la primera fila toca tanto arriba como abajo.
Agregar extrarowheight
no funciona:
Tampoco arraystrectch
(la fila superior se toca y el centrado vertical se desactiva):
Respuesta1
Puede agregar algo de relleno vertical a las celdas, ya sea con cellspace
, que define unmínimoespacio en blanco en la parte superior e inferior de las celdas de las columnas con el especificador precedido de la letra S
, o con makecell
, queagregaun espacio vertical fijo en la parte superior e inferior de todas las celdas, con el \makegapedcells
comando.
Tenga en cuenta que no es necesario configurar las columnas en modo párrafo: el segundo código establece el ancho de las columnas en su ancho natural.
\documentclass{article}
\usepackage{amsmath, array, makecell}
\usepackage{cellspace} %
\setlength\cellspacetoplimit{4pt}
\setlength\cellspacebottomlimit{4pt}
\begin{document}
\begin{table}[htbp]
\centering
\begin{tabular}{| S{m{2.7cm}} | Sl|}%{m{8cm}}
\hline
\textbf{Marginalised term} & \textbf{3 variable terms} \\
\hline \hline
$H_\partial^{12}(\{12\})$ &
$\begin{aligned}
&H_\partial^{123}(\{12\}) + H_\partial^{123}(\{3\}\{12\}) \\
&+ H_\partial^{123}(\{12\}\{13\}) + H_\partial^{123}(\{12\}\{23\}) \\
&+ H_\partial^{123}(\{12\}\{13\}\{23\})
\end{aligned}$ \\
\hline
$H_\partial^{12}(\{1\})$ &
$H_\partial^{123}(\{1\})+H_\partial^{123}(\{1\}\{23\})+H_\partial^{123}(\{1\}\{3\})$ \\
\hline
$H_\partial^{12}(\{2\})$ &
$H_\partial^{123}(\{2\})+H_\partial^{123}(\{2\}\{13\})+H_\partial^{123}(\{2\}\{3\})$ \\
\hline
$H_\partial^{12}(\{1\}\{2\})$ &
$H_\partial^{123}(\{1\}\{2\})+H_\partial^{123}(\{1\}\{2\}\{3\})$ \\
\hline
\end{tabular}
\end{table}
\begin{table}[htbp]
\centering\setcellgapes{4pt}\makegapedcells \renewcommand\theadfont{\normalsize\bfseries}%
%
\begin{tabular}{|l| l|}%{m{8cm}}
\hline
\thead{Marginalised\\ term} & \thead{3 variable terms} \\
\hline \hline
$H_\partial^{12}(\{12\})$ &
$\begin{aligned}
&H_\partial^{123}(\{12\}) + H_\partial^{123}(\{3\}\{12\}) \\
&+ H_\partial^{123}(\{12\}\{13\}) + H_\partial^{123}(\{12\}\{23\}) \\
&+ H_\partial^{123}(\{12\}\{13\}\{23\})
\end{aligned}$ \\
\hline
$H_\partial^{12}(\{1\})$ &
$H_\partial^{123}(\{1\})+H_\partial^{123}(\{1\}\{23\})+H_\partial^{123}(\{1\}\{3\})$ \\
\hline
$H_\partial^{12}(\{2\})$ &
$H_\partial^{123}(\{2\})+H_\partial^{123}(\{2\}\{13\})+H_\partial^{123}(\{2\}\{3\})$ \\
\hline
$H_\partial^{12}(\{1\}\{2\})$ &
$H_\partial^{123}(\{1\}\{2\})+H_\partial^{123}(\{1\}\{2\}\{3\})$ \\
\hline
\end{tabular}
\end{table}
\end{document}
Respuesta2
Probablemente haya una manera mejor, pero aquí uso una combinación de puntales. Agregué \upstrut
a la parte superior de la aligned
pila, \downstrut
a la parte inferior de la aligned
pila y \mystrut
a las líneas simples.
\documentclass{article}
\usepackage{tabularx,amsmath}
\newcommand\upstrut{\rule{0pt}{12pt}}
\newcommand\downstrut{\rule[-6pt]{0pt}{6pt}}
\newcommand\mystrut{\upstrut\downstrut}
\begin{document}
\begin{table}[htbp]
\begin{center}
\begin{tabular}{| m{2.7cm} | m{8cm}|}
\hline
\textbf{Marginalised term} & \textbf{3 variable terms} \\
\hline \hline
$H_\partial^{12}(\{12\})$ &
$\begin{aligned}
&\upstrut H_\partial^{123}(\{12\}) + H_\partial^{123}(\{3\}\{12\}) \\
&+ H_\partial^{123}(\{12\}\{13\}) + H_\partial^{123}(\{12\}\{23\}) \\
&+ H_\partial^{123}(\{12\}\{13\}\{23\}) \downstrut
\end{aligned}$ \\
\hline
$\mystrut H_\partial^{12}(\{1\})$ &
$H_\partial^{123}(\{1\})+H_\partial^{123}(\{1\}\{23\})+H_\partial^{123}(\{1\}\{3\})$ \\
\hline
$\mystrut H_\partial^{12}(\{2\})$ &
$H_\partial^{123}(\{2\})+H_\partial^{123}(\{2\}\{13\})+H_\partial^{123}(\{2\}\{3\})$ \\
\hline
$\mystrut H_\partial^{12}(\{1\}\{2\})$ &
$H_\partial^{123}(\{1\}\{2\})+H_\partial^{123}(\{1\}\{2\}\{3\})$ \\
\hline
\end{tabular}
\end{center}
\end{table}
\end{document}
Alternativamente, se podría agregar \stackgap
a un término en cada fila, lo que agrega un 3pt
búfer (predeterminado) encima y debajo del término. Un argumento opcional puede cambiar el valor del espacio de la pila:
\documentclass{article}
\usepackage{tabularx,amsmath,stackengine}
\begin{document}
\begin{table}[htbp]
\begin{center}
\begin{tabular}{| m{2.7cm} | m{8cm}|}
\hline
\textbf{Marginalised term} & \textbf{3 variable terms} \\
\hline \hline
$H_\partial^{12}(\{12\})$ &
\addstackgap{$\begin{aligned}
&H_\partial^{123}(\{12\}) + H_\partial^{123}(\{3\}\{12\}) \\
&+ H_\partial^{123}(\{12\}\{13\}) + H_\partial^{123}(\{12\}\{23\}) \\
&+ H_\partial^{123}(\{12\}\{13\}\{23\})
\end{aligned}$} \\
\hline
\addstackgap{$H_\partial^{12}(\{1\})$} &
$H_\partial^{123}(\{1\})+H_\partial^{123}(\{1\}\{23\})+H_\partial^{123}(\{1\}\{3\})$ \\
\hline
\addstackgap{$H_\partial^{12}(\{2\})$} &
$H_\partial^{123}(\{2\})+H_\partial^{123}(\{2\}\{13\})+H_\partial^{123}(\{2\}\{3\})$ \\
\hline
\addstackgap{$H_\partial^{12}(\{1\}\{2\})$} &
$H_\partial^{123}(\{1\}\{2\})+H_\partial^{123}(\{1\}\{2\}\{3\})$ \\
\hline
\end{tabular}
\end{center}
\end{table}
\end{document}
Respuesta3
La forma más atractiva de componer esta tabla es sin líneas verticales y con muchas menos líneas horizontales, pero bien espaciadas. De esa manera, para empezar, nunca surge la cuestión de los términos de subíndice y superíndice que tocan las líneas horizontales. Y no hay necesidad de perder el tiempo \arraystretch
.
Dado que casi todo el material de la tabla es material matemático, sugiero utilizar un array
entorno en lugar de un tabular
entorno. Al menos, puede ahorrarse tener que escribir muchos $
símbolos.
Por otra parte, dado que H_\partial
aparece unas 17 veces en la tabla, le sugiero que reemplace todas las instancias con \Hp
, donde \Hp
se define en el preámbulo como, lo adivinó, H_\partial
.
\documentclass{article}
\usepackage{amsmath,booktabs,array}
\newcommand{\Hp}{H_\partial} % shortcut macro
\begin{document}
\begin{table}[htbp]
\centering
$\begin{array}{@{}ll@{}}
\toprule
\multicolumn{1}{@{}m{2.7cm}}{\textbf{Marginalised term}} &
\textbf{3 variable terms} \\
\midrule
\Hp^{12}(\{12\}) &
\!\begin{aligned}[t]
&\Hp^{123}(\{12\}) + \Hp^{123}(\{3\}\{12\}) \\
&\quad+ \Hp^{123}(\{12\}\{13\}) + \Hp^{123}(\{12\}\{23\}) \\
&\quad+ \Hp^{123}(\{12\}\{13\}\{23\})
\end{aligned} \\
\addlinespace
\Hp^{12}(\{1\}) &
\Hp^{123}(\{1\})+\Hp^{123}(\{1\}\{23\})+\Hp^{123}(\{1\}\{3\}) \\
\addlinespace
\Hp^{12}(\{2\}) &
\Hp^{123}(\{2\})+\Hp^{123}(\{2\}\{13\})+\Hp^{123}(\{2\}\{3\}) \\
\addlinespace
\Hp^{12}(\{1\}\{2\}) &
\Hp^{123}(\{1\}\{2\})+\Hp^{123}(\{1\}\{2\}\{3\}) \\
\bottomrule
\end{array}$
\end{table}
\end{document}