Tief- und Hochstellungen berühren Zeilen in der Tabelle

Tief- und Hochstellungen berühren Zeilen in der Tabelle

Ich habe eine Tabelle mit mathematischen Zahlen und hochgestellten Ziffern. Diese berühren sowohl die Zeilen oben als auch unten in der Tabelle. Ich habe einige Alternativen ausprobiert, konnte aber keine finden, die einen geeigneten Abstand zwischen den Zeilen bietet, ohne auch den Abstand der Titelzeile durcheinander zu bringen (d. h. die Überschriften zu eng linksbündig auszurichten). Ich wäre für Hinweise zum besten Ansatz dankbar.

Hier ist mein aktuelles Ergebnis (ich verwende das Array-Paket):

Bildbeschreibung hier eingeben

\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}

Durch Festlegen von „extrarowheight“ wird der obere Abstand für die unteren drei Zeilen festgelegt. Sie berühren jedoch weiterhin alle die untere H-Linie, und die erste Zeile berührt sowohl die obere als auch die untere Linie.

Das Hinzufügen extrarowheightfunktioniert nicht:

Bildbeschreibung hier eingeben

Das Gleiche gilt auch arraystrectch(obere Reihe berührt und vertikale Zentrierung ausgeschaltet):

Bildbeschreibung hier eingeben

Antwort1

Sie können den Zellen eine vertikale Polsterung hinzufügen, entweder mit cellspace, was einenminimalLeerraum am oberen und unteren Rand von Zellen in Spalten mit Spezifizierern, die mit dem Buchstaben S, oder mit beginnen makecell.fügt hinzueinen festen vertikalen Abstand am oberen und unteren Rand aller Zellen mit dem \makegapedcellsBefehl.

Beachten Sie, dass Sie die Spalten nicht im Absatzmodus einstellen müssen: Der zweite Code setzt die Spaltenbreiten auf ihre natürliche Breite.

    \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} 

Bildbeschreibung hier eingeben

Antwort2

Es gibt wahrscheinlich einen besseren Weg, aber hier verwende ich eine Kombination aus Streben. Ich habe sie \upstrutoben am alignedStapel, \downstrutunten am alignedStapel und \mystrutden einfachen Linien hinzugefügt.

\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}

Bildbeschreibung hier eingeben

Alternativ könnte man \stackgapin jeder Zeile ein zu einem Begriff hinzufügen, wodurch ein (Standard-) 3ptPuffer über und unter dem Begriff hinzugefügt wird. Ein optionales Argument kann den Stapellückenwert ändern:

\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}

Bildbeschreibung hier eingeben

Antwort3

Die ansprechendste Art, diese Tabelle zu setzen, ist ohne vertikale Linien und mit deutlich weniger, dafür aber mit ausreichend Abstand zueinander angeordneten horizontalen Linien. Auf diese Weise entsteht das Problem, dass hochgestellte und tiefgestellte Begriffe die horizontalen Linien berühren, von vornherein nicht. Und Sie müssen nicht mit herumspielen \arraystretch.

Da es sich bei den Tabelleninhalten fast ausschließlich um mathematisches Zeug handelt, empfehle ich die Verwendung einer arrayUmgebung anstelle einer tabularUmgebung. Wenn nichts anderes hilft, können Sie sich zumindest das Eintippen vieler $Symbole ersparen.

Da H_\partiales ungefähr 17 Mal in der Tabelle vorkommt, schlage ich außerdem vor, dass Sie alle Vorkommen durch ersetzen \Hp, wobei \Hpin der Präambel, Sie haben es erraten, als definiert ist H_\partial.

Bildbeschreibung hier eingeben

\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}

verwandte Informationen