配列パッケージを使用した表形式の幅引数なしの中央揃えオプション

配列パッケージを使用した表形式の幅引数なしの中央揃えオプション

基本的な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\hlinebooktabs

ここに画像の説明を入力してください

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

関連情報