여러 줄로 된 tabularx-cell에서 세로 중앙에 정렬할 때 여백이 고르지 않음

여러 줄로 된 tabularx-cell에서 세로 중앙에 정렬할 때 여백이 고르지 않음

나는 tabularx-tables의 수직 센터링에 대해 많이 읽었으며 일반적인 해결책을 찾았습니다. 그러나 셀에 여러 줄이 있으면 여백이 벗어난 것처럼 보입니다.

맨 위 행의 가장 오른쪽 셀에는 맨 아래에 여백이 없음을 알 수 있습니다. 게다가 두 번째 줄에서는 원이 중앙에서 완벽하게 정렬되지 않은 것처럼 보이지만 세 번째 줄에서는 괜찮아 보입니다.

이 문제를 해결하는 방법에 대한 아이디어를 주시면 감사하겠습니다!

여기에 이미지 설명을 입력하세요

\documentclass[a4paper,10pt,BCOR10mm,oneside,headsepline]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{wasysym}
\usepackage{enumitem}
\usepackage{color}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{typearea}
\usepackage[T1]{fontenc}
\usepackage[table]{xcolor}    % loads also »colortbl«
\areaset{17cm}{26cm}
\setlength{\topmargin}{-1cm}

\begin{document}

\newcolumntype{P}[1]{>{\centering\arraybackslash}m{#1}}
\renewcommand{\tabularxcolumn}[1]{m{#1}}

\setlength{\extrarowheight}{0.35cm}

\newcommand{\QO}{\huge{\textbf{$\Circle$}}\small}

\rowcolors{2}{gray!5}{gray!25}
\begin{tabularx}{\linewidth}{cX*{4}{P{1.5cm}}}%
   \rowcolor{gray!50}
   \textbf{1.} & \textbf{A very very very super long question, that is going to be split for sure\dots \newline (Something else)}
   & short & longer & little longer & super-duper mega very very very long \\[1em]%
   & short & \QO & \QO & \QO & \QO\\[1em]
   & Very long, will most propably span multiple lines. Might even mess up the formatting a little bit\dots & \QO & \QO & \QO & \QO\\[1em]
\end{tabularx}

\end{document}

답변1

cellspace다음은 문자 앞에 지정자가 붙은 열의 셀 상단과 하단에 최소 수직 패딩을 정의하는 패키지를 사용한 솔루션입니다 S. 나는 의 정의를 단순화할 기회를 잡았다 \QO.

\documentclass[a4paper,10pt,BCOR10mm,oneside,headsepline]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{wasysym, amssymb, amsfonts, bm}
\usepackage{enumitem}
\usepackage{color}
\usepackage{tabularx}
\renewcommand{\tabularxcolumn}[1]{m{#1}}
\usepackage{booktabs}
\usepackage{typearea}
\usepackage[T1]{fontenc}
\usepackage[table]{xcolor} % loads also »colortbl«
\areaset{17cm}{26cm}
\setlength{\topmargin}{-1cm}
\newcolumntype{P}[1]{>{\centering\arraybackslash}S{m{#1}}}
\renewcommand{\tabularxcolumn}[1]{m{#1}}

\newcommand{\QO}{\textbf{\huge\Circle}}

\usepackage{cellspace}
\setlength{\cellspacetoplimit}{2ex}
\setlength{\cellspacebottomlimit}{2ex}
\addparagraphcolumntypes{X}

\begin{document}

\rowcolors{2}{gray!5}{gray!25}
\begin{tabularx}{\linewidth}{cS{X}*{4}{P{1.5cm}}}%
   \rowcolor{gray!50}
   \textbf{1.} & \textbf{A very very very super long question, that is going to be split for sure\dots \newline (Something else)}
   & short & longer & little longer & super-duper mega very very very long \\
   & short & \QO & \QO & \QO & \QO \\
   & Very long, will most probably span multiple lines. Might even mess up the formatting a little bit\dots & \QO & \QO & \QO & \QO\\
\end{tabularx}

\end{document} 

여기에 이미지 설명을 입력하세요

답변2

원 정의는 주변 텍스트에 영향을 미칩니다.

\newcommand{\QO}{\textbf{\huge$\Circle$}}

더 나은 정의가 되겠지만 그렇게 하면 더 명확해집니다.

\newcommand{\QO}{!\dotfill\textbf{\huge$\Circle$}\dotfill!}

여기에 이미지 설명을 입력하세요

여기에서 .... 기준선이 의 기준선과 정렬되지만 Short대부분의 원이 기준선 위에 있기 때문에 셀에서 더 높게 나타나는 것을 볼 수 있습니다.

답변3

David Carlisle이 지적했듯이그의 대답, 귀하의 정의는 \QO(인쇄상의) 기준선에 원을 배치합니다. 크기가 크기 때문에(문자 그대로: \huge) 위쪽으로 꽤 많이 이동된 것처럼 보입니다. 해결 방법은 중심을 수학 축의 수직 중심에 맞추는 것입니다. (수학 축의 높이를 시각화하기 위해: 수학 기호 -+이 축에 배치됩니다.)

여기에 이미지 설명을 입력하세요

이전 이미지는 다음에 의해 생성되었습니다.

ABC\dots$\bm\Circle$\dots\QOa\dots$-$\QOb$-$\dots XYZ

어디

\newcommand{\QOa}{\textbf{\huge$\Circle$}} % OP's definition, improved
\newcommand{\QOb}{$\vcenter{\hbox{\huge$\bm\Circle$}}$} % proposed new def.

어쨌든, 수학 선에 원을 놓으면 테이블이 괜찮아 보입니다(적어도 내 눈에는).

여기에 이미지 설명을 입력하세요

\documentclass[paper=a4,  fontsize=10pt,
               BCOR=10mm, twoside=false, 
               headsepline]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{wasysym} % for "\Circle" macro
\usepackage{enumitem}
%%\usepackage{color} % don't load both 'color' and 'xcolor'
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{typearea}
\usepackage[T1]{fontenc}
\usepackage[table]{xcolor}    % loads also »colortbl«
\areaset{17cm}{26cm}
\setlength{\topmargin}{-1cm}

\usepackage{bm} % for "\bm" macro
%% center the circle (vertically) on the math axis:
\newcommand{\QO}{$\vcenter{\hbox{\huge$\bm\Circle$}}$}

\newcolumntype{P}[1]{>{\centering\arraybackslash}m{#1}}
\renewcommand{\tabularxcolumn}[1]{m{#1}}

\setlength{\extrarowheight}{0.35cm}

\begin{document}

\noindent % <-- don't forget this instruction
\rowcolors{2}{gray!5}{gray!25}
\begin{tabularx}{\linewidth}{cX*{4}{P{1.5cm}}}%
   \rowcolor{gray!50}
   \textbf{1.} 
   & \textbf{A very very very super long question, that is 
     going to be split for sure\dots   
   \newline (Something else)}
   & short & longer & little longer 
   & super-duper mega very very very long \\[1em]%
   & short & \QO & \QO & \QO & \QO\\[1em]
   & Very long, will most propably span multiple lines. 
     Might even mess up the formatting a little bit\dots 
           & \QO & \QO & \QO & \QO\\[1em]
\end{tabularx}

\end{document}

관련 정보