Opción alineada en el medio sin argumento de ancho para tabular usando el paquete de matriz

Opción alineada en el medio sin argumento de ancho para tabular usando el paquete de matriz

Considere un tabularentorno básico. Dos columnas, la primera debe contener un tikzpicturetamañ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 tabularxejemplo en el siguiente MWE. Tenga en cuenta que lo utilicé \hlinecomo guía para el ojo. En la tabla real no usaría \hlinemás que líneas del booktabspaquete o ninguna línea horizontal:

ingrese la descripción de la imagen aquí

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

información relacionada