Betrachten Sie eine einfache tabular
Umgebung. Zwei Spalten, die erste muss eine tikzpicture
unbestimmte Größe enthalten, die zweite eine Beschreibung mit bestimmter (und benutzerdefinierter) Breite. Wenn der Inhalt der ersten Spalte gut eingeschränkt wäre, könnte man Folgendes tun:
\begin{tabular}{m{2cm}p{6cm}}
Der Inhalt der ersten Spalte ist jedoch nicht gut eingeschränkt und daher frage ich mich, ob wir das Äquivalent hierzu erreichen können:
\begin{tabular}{mp{6cm}}
oder
\begin{tabular}{m{}p{6cm}}
Erste Spalte mittig ausgerichtet, jedoch ohne Breitenargument. Ich werde ein MWE posten, falls Klarheit nötig ist.
Antwort1
Je nach gewünschter horizontaler Ausrichtung der ersten Spalte können Sie für die erste Spalte einfach l
(linksbündig), c
(horizontal zentriert) oder r
(rechtsbündig) wählen. Dies passt sich automatisch der Breite des eingefügten Tikzbilds an. Um den Text in der zweiten Spalte vertikal in Bezug auf das Tikzbild zu zentrieren, verwenden Sie m{6cm}
für die zweite Spalte und fügen Sie baseline=(current bounding box.center)
als Option zu jedem Tikzbild hinzu.
Da diese Konfiguration zu einer Tabelle führen kann, die breiter als die Textbreite ist, sollten Sie es auch versuchen tabularx
. Ich habe auch ein tabularx
Beispiel in das folgende MWE aufgenommen. Bitte beachten Sie, dass ich es \hline
als Orientierungshilfe verwendet habe. In der eigentlichen Tabelle würde ich \hline
nur Linien aus dem booktabs
Paket oder überhaupt keine horizontalen Linien verwenden:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usepackage{array}
\usepackage{tabularx}
\renewcommand\tabularxcolumn[1]{m{#1}}
\begin{document}
\begin{tabular}{cm{6cm}}
\hline
\begin{tikzpicture}[baseline=(current bounding box.center)]
\node[draw=black] (text1) {some text here};
\node[draw=black] (text2) [below left =of text1] {some other text here}edge [->] node {}(text1) ;
\end{tikzpicture}
& some explanatory text that is vertically centered with respect to the tikz picture\\
\hline
\begin{tikzpicture}[baseline=(current bounding box.center)]
\node[draw=black] (text1) {A};
\node[draw=black] (text2) [below left =of text1] {B}edge [->] node {}(text1) ;
\end{tikzpicture}
& some explanatory text that is vertically centered with respect to the tikz picture\\
\hline
\end{tabular}
\bigskip
\begin{tabularx}{\textwidth}{cX}
\hline
\begin{tikzpicture}[baseline=(current bounding box.center)]
\node[draw=black] (text1) {some text here};
\node[draw=black] (text2) [below left =of text1] {some other text here}edge [->] node {}(text1) ;
\end{tikzpicture}
& some explanatory text that is vertically centered with respect to the tikz picture\\
\hline
\begin{tikzpicture}[baseline=(current bounding box.center)]
\node[draw=black] (text1) {A};
\node[draw=black] (text2) [below left =of text1] {B}edge [->] node {}(text1) ;
\end{tikzpicture}
& some explanatory text that is vertically centered with respect to the tikz picture\\
\hline
\end{tabularx}
\end{document}