尽管我已将所有 sps 设置为( ,但我\enumeration
在表格中的后有一个奇怪的垂直间距。我希望枚举后的垂直间距为零。0pt
[itemsep=0pt, topsep=0pt, parsep=0pt, partopsep=0pt]
平均能量损失
\documentclass{report}
\usepackage{enumitem}
\usepackage{xparse}
%compressed lists
% usage: Now just use \compress before \begin{itemize}.
\makeatletter
\newcommand*{\compress}{\@minipagetrue}
\makeatother
%% cmd for table generation
\newcommand{\cTable}[5] % caption - a- b - c - label
{
\begin{table}[ht!]
\caption{{#1}}
\begin{tabular}{p{3.4cm} p{11cm}}
\textbf{\raggedright -a} & {#2} \\
\textbf{\raggedright -b} & {#3} \\
\textbf{\raggedright -c} & {#4}
\end{tabular}
\label{#5}
\end{table}
}
%% end cmd for table generation
%% cmd for item generation
%% see https://tex.stackexchange.com/questions/317680/new-command-for-automatic-enumerate-generation
\ExplSyntaxOn%
\seq_new:N \l_local_enum_seq
\newcommand{\storethestuff}[1]{%
\seq_set_from_clist:Nn \l_local_enum_seq {#1}%
}
\newcommand{\dotheenumstuff}{%
\int_zero:N \l_tmpa_int
\seq_map_inline:Nn \l_local_enum_seq {%
\int_incr:N \l_tmpa_int% Increase the counter
\item ##1
% Check whether the list has reached the end -- if so, use '.' instead of ','
\int_compare:nNnTF
{ \l_tmpa_int } < {\seq_count:N \l_local_enum_seq}
{,} {.}
}
}
\ExplSyntaxOff
\NewDocumentCommand{\dostuff}{+m}{%
\storethestuff{#1}%
\compress
\begin{enumerate}[itemsep=0pt, topsep=0pt, parsep=0pt, partopsep=0pt, leftmargin=*]
\dotheenumstuff%
\end{enumerate}
}
%% end cmd for item generation
\begin{document}
\cTable
{this is a caption}
{value of a}
{\dostuff{1,1,1,1,11}}
{value of c} %value of c needs to be a list
{tab:exampleTab}
\end{document}
编辑
该解决方案提供表格内的列表看起来太复杂了,无法解决这个简单的问题。此外,评论中的解决方案\baselineskip
非常有效,并且没有在引用的问题中给出答案。因此,我想将其留作一个额外的问题,因为有了评论中的答案,这个问题就有了很好的解决方案。
答案1
你可以加
after={\vspace{-\baselineskip}}
到您当前拥有的选项列表enumerate
。这应该会恢复列表后面的空行。