배열 패키지를 사용하는 테이블 형식에 대한 너비 인수가 없는 중간 정렬 옵션

배열 패키지를 사용하는 테이블 형식에 대한 너비 인수가 없는 중간 정렬 옵션

기본 tabular환경을 고려하십시오. 두 개의 열이 있는데, 첫 번째 열에 tikzpicture는 불확실한 크기의 가 포함되어야 하고, 두 번째 열에는 확정된(및 사용자 지정) 너비에 대한 설명이 포함되어야 합니다. 첫 번째 열의 내용이 잘 제한되어 있으면 다음과 같이 할 수 있습니다.

\begin{tabular}{m{2cm}p{6cm}}

그러나 첫 번째 열의 내용은 잘 제한되어 있지 않으므로 다음과 같은 결과를 얻을 수 있는지 궁금합니다.

\begin{tabular}{mp{6cm}}

또는

\begin{tabular}{m{}p{6cm}}

가운데 정렬된 첫 번째 열이지만 너비 인수가 없습니다. 명확성이 필요한 경우 mwe를 게시하겠습니다.

답변1

첫 번째 열의 원하는 가로 정렬에 따라 첫 번째 열에 대해 l(왼쪽 정렬), c(가로 가운데 정렬) 또는 r(오른쪽 정렬)을 선택할 수 있습니다. 이는 포함된 tikzpicture의 너비에 자동으로 맞춰집니다. tikzpicture와 관련하여 두 번째 열의 텍스트를 세로 중앙에 배치하려면 m{6cm}두 번째 열을 사용하고 baseline=(current bounding box.center)각 tikzpicture에 옵션으로 추가하십시오.

tabularx이 설정으로 인해 텍스트 너비보다 더 넓은 표가 생성될 수 있으므로 시도해 볼 수도 있습니다 . tabularx다음 MWE에도 예제가 포함되어 있습니다 . \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}

관련 정보