\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
列表前后的空格minipage
longtable
没有直接修改表本身(即仅在序言中添加或修改命令和宏)
答案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}