基本的なtabular
環境を考えてみましょう。2 つの列があり、最初の列には不確定なサイズの が含まれtikzpicture
、2 番目の列には確定した (ユーザー指定の) 幅の説明が含まれます。最初の列の内容が適切に制約されている場合は、次のように実行できます。
\begin{tabular}{m{2cm}p{6cm}}
しかし、最初の列の内容は十分に制約されていないため、これと同等のものを実現できるかどうか疑問に思います。
\begin{tabular}{mp{6cm}}
または
\begin{tabular}{m{}p{6cm}}
最初の列は中央揃えですが、幅の引数はありません。明確にする必要がある場合は、mwe を投稿します。
答え1
最初の列の希望する水平方向の配置に応じて、最初の列に対してl
(左揃え)、c
(水平中央揃え)、またはr
(右揃え) を選択するだけです。これにより、含まれている tikzpicture の幅に自動的に適応します。 tikzpicture に対して 2 番目の列のテキストを垂直方向に中央揃えにするには、m{6cm}
2 番目の列に を使用し、baseline=(current bounding box.center)
各 tikzpicture にオプションとして を追加します。
この設定では、テキスト幅よりも幅の広いテーブルになる可能性があるため、試してみるのもよいでしょうtabularx
。次の MWE にも例を挙げました。これは目印としてtabularx
使用していることに注意してください。実際のテーブルでは、パッケージの線を使用するか、水平線をまったく使用しません。\hline
\hline
booktabs
\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}