複数行の tabularx-cells で垂直方向に中央揃えすると余白が不均一になる

複数行の tabularx-cells で垂直方向に中央揃えすると余白が不均一になる

tabularx-tables での垂直方向の中央揃えについてたくさん読んで、一般的な解決策を見つけました。ただし、セルに複数の行がある場合、余白がずれているようです。

一番上の行の一番右のセルには、下部に余白がないことがわかります。さらに、2 行目では円が中央で完全に揃っていないように見えますが、3 行目ではきれいに揃っています。

これを修正する方法についてのアイデアがあれば教えてください。

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

\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

デイヴィッド・カーライルが指摘したように彼の答えの場合、 の定義により、\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}

関連情報