Considere un tabular
entorno básico. Dos columnas, la primera debe contener un tikzpicture
tamaño indeterminado, la segunda, una descripción de ancho determinado (y especificado por el usuario). Si el contenido de la primera columna estuviera bien restringido, se podría hacer esto:
\begin{tabular}{m{2cm}p{6cm}}
Sin embargo, el contenido de la primera columna no está bien restringido, por lo que me pregunto si podemos lograr el equivalente a esto:
\begin{tabular}{mp{6cm}}
o
\begin{tabular}{m{}p{6cm}}
Primera columna alineada en el medio, pero sin argumento de ancho. Publicaré un mwe si se necesita claridad.
Respuesta1
Dependiendo de la alineación horizontal deseada de la primera columna, simplemente puede elegir l
(alineada a la izquierda), c
(centrada horizontalmente) o r
(alineada a la derecha) para la primera columna. Esto se adaptará automáticamente al ancho de la imagen tikz incluida. Para centrar verticalmente el texto en la segunda columna con respecto a la tikzpicture, use m{6cm}
para la segunda columna y agregue baseline=(current bounding box.center)
como opción a cada tikzpicture.
Dado que esta configuración puede generar una tabla más ancha que el ancho del texto, es posible que también quieras intentarlo tabularx
. También he incluido un tabularx
ejemplo en el siguiente MWE. Tenga en cuenta que lo utilicé \hline
como guía para el ojo. En la tabla real no usaría \hline
más que líneas del booktabs
paquete o ninguna línea horizontal:
\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}