
Tengo una tabla en la que voy incluyendo listas en cada celda de una columna y soy insistente en usar líneas verticales. Actualmente tengo el siguiente MWE:
\documentclass[11pt]{article}
\usepackage[margin=20mm]{geometry}
% \usepackage{booktabs}
\usepackage{enumitem}
\usepackage{longtable}
\begin{document}
\begin{longtable}{|p{0.05\textwidth}|p{.75\textwidth}|p{0.10\textwidth}|}
% \toprule
\hline
Serial No.\ & Assignment Name & Date \\
% \midrule
\hline
1
&
\begin{minipage}[t]{\linewidth}
Foo bar
\begin{enumerate}[nosep,after=\strut]
\item foo
\item foo
\item bar
\item bar
\end{enumerate}
\end{minipage}
&
10.01.2022\\
% \midrule
\hline
2
&
\begin{minipage}[t]{\linewidth}
\begin{enumerate}[nosep, after=\strut, label=(\Alph*)]
\item
Given two sequences:
\[ x_1 = \{\mathbf{2}, 2, 1, 2 \} \]
\[ x_2 = \{\mathbf{-2}, -1, 3, 2 \} \]
\end{enumerate}
% other items...
Find their convolution
\end{minipage}
&
17.01.2022\\
%\bottomrule
\hline
\end{longtable}
\end{document}
Tengo dos versiones:
con
booktabs
lo que me da un espacio más o menos adecuado entre las líneas de las filas pero líneas verticales discontinuas (esperado debooktabs
)sin
booktabs
lo cual elimina la línea vertical discontinua pero estropea el interlineado (las filas están demasiado cerca de las líneas horizontales que las separan):
Estoy buscando un punto intermedio que:
- me da el espacio adecuado
- elimina las líneas verticales discontinuas.
(Tiene que ser una tabla larga porque hay muchas más entradas que en conjunto abarcarán al menos 3 páginas).
Respuesta1
Con la ayuda del tabularray
paquete:
Para ajustar el espacio entre la línea horizontal y el texto, use las teclas abovesep
y belowsep
y. (El valor predeterminado es 2pt
.)
\documentclass[11pt]{article}
\usepackage[margin=20mm]{geometry}
\usepackage{enumitem}
\newlist{tabenum}{enumerate}{1}
\setlist[tabenum]{label*=\arabic*.,
leftmargin=*,
nosep,
before=\begin{minipage}[t]{\hsize},
after=\end{minipage}}
\usepackage{tabularray}
\UseTblrLibrary{varwidth}
\begin{document}
\begin{longtblr}{colspec={l X l}, hlines, vlines, measure = vbox}
{Serial\\ No.} & Assignment Name & Date \\
1
&
Foo bar
\begin{tabenum}
\item foo
\item foo
\item bar
\item bar
\end{tabenum}
&
10.01.2022\\
2
&
\begin{tabenum}[label=(\Alph*)]
\item
Given two sequences:
\[ x_1 = \{\mathbf{2}, 2, 1, 2 \} \]
\[ x_2 = \{\mathbf{-2}, -1, 3, 2 \} \]
\end{tabenum}
%other items...
Find their convolution
&
17.01.2022\\
\end{longtblr}
\end{document}
Respuesta2
Te equivocas con las líneas verticales, pero es una opinión personal.
En lugar de utilizar minipáginas, es necesario eliminar las líneas en blanco falsas antes o después de una lista.
\documentclass[11pt,draft]{article}
\usepackage[margin=20mm]{geometry}
\usepackage{enumitem}
\usepackage{longtable}
\usepackage{amsmath}
\begin{document}
\begin{longtable}{|c|p{.75\textwidth}|l|}
\hline
\begin{tabular}[t]{@{}c@{}}Serial \\ No.\end{tabular} & Assignment Name & Date \\
\hline
1 &
Foo bar
\begin{enumerate}[nosep,after=\vspace*{-\baselineskip}]
\item foo
\item foo
\item bar
\item bar
\end{enumerate} &
10.01.2022\\
\hline
2 &
\begin{enumerate}[nosep, wide, label=(\Alph*),before=\vspace*{-\baselineskip}]
\item Given two sequences:
\begin{gather*}
x_1 = \{\mathbf{2}, 2, 1, 2 \} \\
x_2 = \{\mathbf{-2}, -1, 3, 2 \}
\end{gather*}
\item Given two sequences:
\begin{gather*}
x_1 = \{\mathbf{2}, 2, 1, 2 \} \\
x_2 = \{\mathbf{-2}, -1, 3, 2 \}
\end{gather*}
\end{enumerate}
Find their convolution &
17.01.2022\\
\hline
\end{longtable}
\end{document}
Respuesta3
Quizás esta solución con el cellspace
paquete esté bien para ti. Este paquete garantiza un espacio vertical mínimo en la parte superior e inferior de las celdas en las columnas con el especificador precedido por la letra S
de forma predeterminada (o C
si carga siunitx
, o cualquier letra que desee con la column=some letter
opción).
También eliminé los minipage
entornos que son innecesarios aquí ya que se usa el p
tipo de columna.
\documentclass[11pt]{article}
\usepackage[margin=20mm]{geometry}
\usepackage{enumitem}
\usepackage{longtable}
\usepackage{cellspace}
\setlength{\cellspacetoplimit}{8pt}
\setlength{\cellspacebottomlimit}{8pt}
\begin{document}
\begin{longtable}{|p{0.05\textwidth}|S{p{.75\textwidth}}|p{0.10\textwidth}|}
% \toprule
\hline
Serial No.\ & Assignment Name & Date \\
% \midrule
\hline
1
&
Foo bar
\begin{enumerate}[nosep,after=\strut]
\item foo
\item foo
\item bar
\item bar
\end{enumerate}
&
10.01.2022\\
\hline
%
2
& \begin{enumerate}[nosep, after=\strut, label=(\Alph*)]
\item
Given two sequences:
\[ x_1 = \{\mathbf{2}, 2, 1, 2 \} \]
\[ x_2 = \{\mathbf{-2}, -1, 3, 2 \} \]
\end{enumerate}
% other items...
Find their convolution
&
17.01.2022 \\
\hline
\end{longtable}
\end{document}
Respuesta4
Yo (a) eliminaría todas las barras verticales (no son necesarias y no se perderán) y (b) calcularía el ancho de la columna del medio como un residuo, para asegurar que el ancho de la columna sea maximizado.
\documentclass[11pt]{article}
\usepackage[margin=20mm]{geometry}
\usepackage{booktabs,enumitem,longtable,amsmath}
\newlength\mylenA
\settowidth\mylenA{Serial No.}
\newlength\mylenB
\settowidth\mylenB{10.01.2022}
\begin{document}
\begin{longtable}{@{} p{\mylenA}
p{\dimexpr\textwidth-\mylenA-\mylenB-4\tabcolsep\relax}
p{\mylenB} @{}}
\toprule
Serial No. & Assignment Name & Date \\
\midrule
\endhead
\bottomrule
\endlastfoot
1
&
\begin{minipage}[t]{\linewidth}
Foo bar
\begin{enumerate}[nosep,after=\strut]
\item foo
\item foo
\item bar
\item bar
\end{enumerate}
\end{minipage}
&
10.01.2022 \\
\midrule
2
&
\begin{minipage}[t]{\linewidth}
\begin{enumerate}[nosep, after=\strut, label=(\Alph*)]
\item
Given two sequences:
\[
\begin{aligned}
x_1 &= \{\mathbf{2}, 2, 1, 2 \} \\
x_2 &= \{\mathbf{-2}, -1, 3, 2 \}
\end{aligned}
\]
% other items...
Find their convolution
\end{enumerate}
\end{minipage}
&
17.01.2022\\
\end{longtable}
\end{document}