Considere um tabular
ambiente básico. Duas colunas, a primeira deve conter uma tikzpicture
de tamanho indeterminado, a segunda, uma descrição de largura determinada (e especificada pelo usuário). Se o conteúdo da primeira coluna fosse bem restrito, seria possível fazer o seguinte:
\begin{tabular}{m{2cm}p{6cm}}
O conteúdo da primeira coluna não é, no entanto, bem restringido e por isso pergunto-me se podemos alcançar o equivalente a isto:
\begin{tabular}{mp{6cm}}
ou
\begin{tabular}{m{}p{6cm}}
Primeira coluna alinhada ao meio, mas sem argumento de largura. Vou postar um mwe se for necessária clareza.
Responder1
Dependendo do alinhamento horizontal desejado da primeira coluna, você pode simplesmente escolher l
(alinhado à esquerda), c
(centralizado horizontalmente) ou r
(alinhado à direita) para a primeira coluna. Isso se adaptará automaticamente à largura da imagem tikz incluída. Para centralizar verticalmente o texto na segunda coluna em relação ao tikzpicture, use m{6cm}
para a segunda coluna e adicione baseline=(current bounding box.center)
como opção a cada tikzpicture.
Como essa configuração pode levar a uma tabela mais larga que a largura do texto, você também pode tentar tabularx
. Também incluí um tabularx
exemplo no seguinte MWE. Observe que usei \hline
como guia para os olhos. Na tabela real eu não usaria \hline
apenas linhas do booktabs
pacote ou nenhuma linha 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}