
列の各セルにリストが含まれている表があり、縦線の使用にこだわっています。現在、次の 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}
2つのバージョンがあります:
booktabs
行の線の間にはほぼ適切な間隔が確保されますが、垂直線は不連続になります( の予想通り)booktabs
。これを行わないと
booktabs
、不連続な垂直線は削除されますが、行間隔が乱れます (行が、行を区切る水平線に近すぎるため)。
私は中間のものを探しています:
- 適切な間隔を与えてくれる
- 不連続な垂直線を削除します。
(エントリが多数あり、それらを合わせると少なくとも 3 ページになるので、長い表にする必要があります。)
答え1
パッケージの助けを借りてtabularray
:
水平線とテキストの間のスペースを調整するには、 キーと キーを使用しますabovesep
。belowsep
(デフォルト値は です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}
答え2
縦線については間違っていますが、それは個人的な意見です。
ミニページを使用するのではなく、リストの前後にある不要な空白行を削除する必要があります。
\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}
答え3
おそらく、このパッケージのソリューションはcellspace
あなたにとって適切でしょう。このパッケージは、S
デフォルトで文字がプレフィックスとして付けられた指定子を持つ列のセルの上部と下部の垂直方向の間隔を最小限に抑えます (または、オプションで、 または任意の文字をC
ロードした場合)。siunitx
column=some letter
minipage
列タイプを使用しているため、ここでは不要な環境も削除しました p
。
\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}
答え4
私は (a) すべての縦棒を取り除きます (縦棒は不要であり、なくても問題ありません)。また、(b) 中央の列の幅を残差として計算し、列の幅が最大になるようにします。
\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}