Leí mucho sobre el centrado vertical en tablas tabularx y encontré una solución general. Sin embargo, cuando hay varias líneas en las celdas, los márgenes parecen estar fuera de lugar.
Puede ver que en la celda más a la derecha de la fila superior no hay margen en la parte inferior. Además, en la segunda fila, los círculos no parecen estar perfectamente alineados en el medio, mientras que en la tercera fila se ve bien.
¡Agradecería cualquier idea sobre cómo solucionar este problema!
\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}
Respuesta1
Aquí hay una solución con el cellspace
paquete, que define un relleno vertical mínimo en la parte superior e inferior de las celdas en columnas con el especificador precedido por la letra S
. Aproveché la oportunidad para simplificar la definición de \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}
Respuesta2
La definición del círculo afecta el texto circundante.
\newcommand{\QO}{\textbf{\huge$\Circle$}}
Sería una mejor definición, pero queda más claro si lo hace.
\newcommand{\QO}{!\dotfill\textbf{\huge$\Circle$}\dotfill!}
Aquí puede ver que la línea base... se alinea con la línea base de Short
, pero como la mayor parte del círculo está por encima de la línea base, aparece más arriba en la celda.
Respuesta3
Como ha señalado David Carlisle ensu respuesta, su definición de \QO
coloca el círculo en la línea de base (tipográfica). Debido a que su tamaño es enorme (literalmente: \huge
), termina pareciendo como si se hubiera desplazado bastante hacia arriba. Una solución es centrar el centro verticalmente en el eje matemático. (Para visualizar la altura del eje matemático: los símbolos matemáticos -
y +
se colocan en este eje).
La imagen anterior fue generada por
ABC\dots$\bm\Circle$\dots\QOa\dots$-$\QOb$-$\dots XYZ
dónde
\newcommand{\QOa}{\textbf{\huge$\Circle$}} % OP's definition, improved
\newcommand{\QOb}{$\vcenter{\hbox{\huge$\bm\Circle$}}$} % proposed new def.
De todos modos, si uno coloca los círculos en la línea matemática, la tabla se ve bien (al menos a mis ojos).
\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}