Subsections in Tabelle

Tabellen und Grafiken erstellen und anordnen


Gast

Subsections in Tabelle

Beitrag von Gast »

Hallo,

ich würde gerne zwei Blöcke nebeneinander haben, die jeweils mit einer Subsection eingeleitet werden (Formelsammlung).

Leider kann ich in die Tabelle kein Subsection schreiben. Wie behebe ich den Fehler? (es soll nicht das gesamte Blatt in zwei Spalten geteilt werden, nur ein kleiner Teil, eben wie bei einer Tabelle.
\begin{tabular}{cc}
 \subsection{Massenerhaltung, $ X = 1 $ } & \subsection{Impulserhaltung, $ X = \vec{v} $} \\ 
 \begin{displaymath}
 		\frac{\partial(\rho)}{\partial t} + div\left( \rho \vec{v} \right)  = 0
 \end{displaymath}   1 & \begin{displaymath}
 		\frac{\partial(\rho \vec{v})}{\partial t} + div\left( \rho \left[ \vec{v} \otimes \vec{v} \right]   \right)  = - div(p) + div(\tau) + \rho \vec{f}
 	\end{displaymath} \\ 
\end{tabular} 
Vielen Dank

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Bitte erstelle immer vollständige Minimalbeispiele.

In c Spalten kann genau wie in l und r Spalten kein Zeilenumbruch statt finden. Deshalb können weder \subsection noch die displaymath Umgebung in einer solchen Spalte stehen. Du kannst dafür p Spalten oder mit dem tabularx Paket X Spalten verwenden.

Wenn du die Überschrift und die displaymath Umgebung in getrennte Tabellenzeilen setzt, dann wird ziemlich viel vertikaler Freiraum eingefügt.

Außerdem ist meiner Meinung nach, die zweite Formel schon sehr lang für dein Vorhaben.
\documentclass{scrartcl} 

\usepackage{amsmath}
\usepackage{tabularx}

\begin{document}

\section{Formelsammlung}

\noindent\begin{tabularx}{\linewidth}
    {@{}>{\centering\arraybackslash}p{0.4\linewidth}>{\centering\arraybackslash}X@{}} 
  \subsection{Massenerhaltung, \boldmath$ X = 1 $ } 
    &\subsection{Impulserhaltung, \boldmath$ X = \vec{v} $} \\
  \[\frac{\partial(\rho)}{\partial t}+div\left(\rho\vec{v}\right)=0\]
    &\[\frac{\partial(\rho\vec{v})}{\partial t}
        +div\left(\rho\left[\vec{v}\otimes\vec{v}\right]\right)
        =- div(p)+div(\tau)+\rho\vec{f}\]
\end{tabularx}

\noindent\begin{tabularx}{\linewidth}
    {@{}>{\centering\arraybackslash}p{0.4\linewidth}>{\centering\arraybackslash}X@{}}
%
    \subsection{Massenerhaltung, \boldmath$ X = 1 $ } 
      \[\frac{\partial(\rho)}{\partial t}+div\left(\rho\vec{v}\right)=0\]
%
    &\subsection{Impulserhaltung, \boldmath$ X = \vec{v} $}
      \[\frac{\partial(\rho\vec{v})}{\partial t}
        +div\left(\rho\left[\vec{v}\otimes\vec{v}\right]\right)
        =- div(p)+div(\tau)+\rho\vec{f}\]
\end{tabularx}  

\noindent\begin{tabularx}{\linewidth}
    {@{}>{\centering\arraybackslash}p{0.4\linewidth}>{\centering\arraybackslash}X@{}} 
  \subsection{Massenerhaltung, \boldmath$ X = 1 $ } 
    &\subsection{Impulserhaltung, \boldmath$ X = \vec{v} $} \\
  $\dfrac{\partial(\rho)}{\partial t}+div\left(\rho\vec{v}\right)=0$
    &$\dfrac{\partial(\rho\vec{v})}{\partial t}
        +div\left(\rho\left[\vec{v}\otimes\vec{v}\right]\right)
        =- div(p)+div(\tau)+\rho\vec{f}$
\end{tabularx} 

\end{document}
Gruß
Elke

Gast

Beitrag von Gast »

Hallo Elke,

vielen Dank für deine Lösung. 2 / 3 ist genau das was ich wollte!

Kannst du mir noch sagen, was du mit der Zeile
{@{}>{\centering\arraybackslash}p{0.4\linewidth}>{\centering\arraybackslash}X@{}} 
machst, bzw. hast du mir hierfür ein Suchwort, das ich bei Google eintippen könnte?

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

@{} am Anfang und Ende der Spaltendefinition sorgt dafür, dass an diesen Stellen kein Leerraum (würde dem halben Spaltenabstand entsprechen) eingefügt wird.

>{...} wird vor Beginn jeder Zelle in der Spalte ausgeführt. Im Beispiel wird das benutzt, um die Zellen in den beiden Spalten zu zentrieren, da du ursprünglich c Spalten wolltest. Dafür wird das array Paket benötigt, das aber auch von tabularx geladen wird.

Gruß
Elke

Antworten