如何删除长表小页面内项目上方的垂直空间

如何删除长表小页面内项目上方的垂直空间

\itemize我正在尝试删除中出现的列表上方/下方的垂直空间\longtable。也就是说,我希望这些列表全部与其单元格的顶部对齐:

坏例子

类似版本的这个问题的答案比比皆是(见这里这里, 和这里,例如)。所有解决方案都涉及手动编辑表格,添加各种\vspace或其他命令。

我正在使用 pandoc 从 Markdown 文件生成表格,但是无法控制表格输出,因此无法修改生成的表格。这是 MWE。

鉴于此 Markdown 文件:

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 

: Sample grid table.

+---------------+---------------+--------------------+
| Fruit         | Price         | Advantages         |
+===============+===============+====================+
| Bananas       | $1.34         | - built-in wrapper |
|               |               | - bright color     |
+---------------+---------------+--------------------+
| Oranges       | $2.10         | - cures scurvy     |
|               |               | - tasty            |
+---------------+---------------+--------------------+

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

- Don't
- mess
- with
- this
- list
- though

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

…转换为以下 TeX 文件pandoc -s -V documentclass=memoir blah.md -o blah.tex

\documentclass[]{memoir}

\usepackage{longtable,booktabs}

\begin{document}

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua.

\begin{longtable}[c]{@{}lll@{}}
\caption{Sample grid table.}\tabularnewline
\toprule
\begin{minipage}[b]{0.20\columnwidth}\raggedright\strut
Fruit
\strut\end{minipage} &
\begin{minipage}[b]{0.20\columnwidth}\raggedright\strut
Price
\strut\end{minipage} &
\begin{minipage}[b]{0.27\columnwidth}\raggedright\strut
Advantages
\strut\end{minipage}\tabularnewline
\midrule
\endfirsthead
\toprule
\begin{minipage}[b]{0.20\columnwidth}\raggedright\strut
Fruit
\strut\end{minipage} &
\begin{minipage}[b]{0.20\columnwidth}\raggedright\strut
Price
\strut\end{minipage} &
\begin{minipage}[b]{0.27\columnwidth}\raggedright\strut
Advantages
\strut\end{minipage}\tabularnewline
\midrule
\endhead
\begin{minipage}[t]{0.20\columnwidth}\raggedright\strut
Bananas
\strut\end{minipage} &
\begin{minipage}[t]{0.20\columnwidth}\raggedright\strut
\$1.34
\strut\end{minipage} &
\begin{minipage}[t]{0.27\columnwidth}\raggedright\strut
\begin{itemize}
\tightlist
\item
  built-in wrapper
\item
  bright color
\end{itemize}
\strut\end{minipage}\tabularnewline
\begin{minipage}[t]{0.20\columnwidth}\raggedright\strut
Oranges
\strut\end{minipage} &
\begin{minipage}[t]{0.20\columnwidth}\raggedright\strut
\$2.10
\strut\end{minipage} &
\begin{minipage}[t]{0.27\columnwidth}\raggedright\strut
\begin{itemize}
\tightlist
\item
  cures scurvy
\item
  tasty
\end{itemize}
\strut\end{minipage}\tabularnewline
\bottomrule
\end{longtable}

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi
ut aliquip ex ea commodo consequat.

\begin{itemize}
\tightlist
\item
  Don't
\item
  mess
\item
  with
\item
  this
\item
  list
\item
  though
\end{itemize}

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
dolore eu fugiat nulla pariatur.

\end{document}

最后生成以下文件:

最后文件

我找到了几个可能的解决方案,但它们不起作用——空间仍然存在:

  • 将单元格放入 s 中minipage,并对 进行处理\@minipagetrue,因为这样就itemize不会增加垂直空间。Pandoc 已经将 每个单元格包裹在 内minipage,但仍然会出现垂直空间。
  • 使用\package{enumitem}\setlist[itemize]{noitemsep, topsep=0pt}全局删除所有列表上方的间距。但是,这不仅仅特定于表内的列表(并且它无论如何都不会修改该列表)。

那么,最后,我怎样才能删除s内部itemize列表前后的空格minipagelongtable没有直接修改表本身(即仅在序言中添加或修改命令和宏)

答案1

我必须承认,我不明白这 24\strut条指令的用途。如果没有它们,并且不对环境itemize本身进行任何更改,该表将如下所示 - 我认为,这接近您想要的。(请注意,代码膨胀也没有被修剪。)

在此处输入图片描述

\documentclass[]{memoir}

\usepackage{longtable,booktabs}

\begin{document}
\hrule
\begin{longtable}[c]{@{}lll@{}}
\caption{Sample grid table.}\tabularnewline
\toprule
\begin{minipage}[b]{0.20\columnwidth}\raggedright
Fruit
\end{minipage} &
\begin{minipage}[b]{0.20\columnwidth}\raggedright
Price
\end{minipage} &
\begin{minipage}[b]{0.27\columnwidth}\raggedright
Advantages
\end{minipage}\tabularnewline
\midrule
\endfirsthead
\toprule
\begin{minipage}[b]{0.20\columnwidth}\raggedright
Fruit
\end{minipage} &
\begin{minipage}[b]{0.20\columnwidth}\raggedright
Price
\end{minipage} &
\begin{minipage}[b]{0.27\columnwidth}\raggedright
Advantages
\end{minipage}\tabularnewline
\midrule
\endhead
\begin{minipage}[t]{0.20\columnwidth}\raggedright
Bananas
\end{minipage} &
\begin{minipage}[t]{0.20\columnwidth}\raggedright
\$1.34
\end{minipage} &
\begin{minipage}[t]{0.27\columnwidth}\raggedright
\begin{itemize}
\tightlist
\item
  built-in wrapper
\item
  bright color
\end{itemize}
\end{minipage}\tabularnewline
\begin{minipage}[t]{0.20\columnwidth}\raggedright
Oranges
\end{minipage} &
\begin{minipage}[t]{0.20\columnwidth}\raggedright
\$2.10
\end{minipage} &
\begin{minipage}[t]{0.27\columnwidth}\raggedright
\begin{itemize}
\tightlist
\item
  cures scurvy
\item
  tasty
\end{itemize}
\end{minipage}\tabularnewline
\bottomrule
\end{longtable}

\end{document}

相关内容