从给出答案到这个问题,我学会了重定向\@minipagetrue
到表格单元格以摆脱enumerate
-environments (和itemize
和description
)上方的额外空间。但是,如果我在 中尝试这个技巧longtable
,它将不起作用。我可以在 中设置枚举\parbox
,但这样我就不需要重定向了。这是一个 MWE(取自引用的答案并进行了修改)。
这是一个功能,一个错误,还是我的误解(即用户错误)?
\documentclass[fontsize=11pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{array, longtable}
\usepackage{enumitem}
\makeatletter
\newcolumntype{P}[1]{>{\@minipagetrue}p{#1}}
\makeatother
\begin{document}
\noindent\begin{tabular}{|P{0.2 \linewidth}|P{0.2 \linewidth}|}
\hline
lipsum &
\begin{itemize}[nosep, leftmargin=*]
\item A
\item B
\end{itemize}
lipsum \\
\hline
lipsum & lipsum\\
\hline
\end{tabular}
\bigskip
\begin{longtable}[l]{|P{0.2 \linewidth}|P{0.2 \linewidth}|}
\hline
lipsum &
\begin{itemize}[nosep, leftmargin=*]
\item A
\item B
\end{itemize}
lipsum \\
\hline
lipsum &
\parbox[t]{\linewidth}{\begin{itemize}[nosep, leftmargin=*]
\item A
\item B
\end{itemize}}
lipsum \\
\hline
lipsum & lipsum\\
\hline
\end{longtable}
\end{document}
答案1
我发现您问题中提到的问题可以部分通过以下列类型的定义来解决:
\newcolumntype{M}[1]{>{\minipage{\hsize}\arraybackslash}p{#1}<{\endminipage}}
有趣的是,如果删除上面的列类型定义,它将不起作用\arraybackslash
。为了进行测试,请尝试以下 MWE:
\documentclass[fontsize=11pt]{article}
\usepackage{array, longtable}
\usepackage{enumitem}
\newcolumntype{M}[1]{>{\minipage{\hsize}\arraybackslash}p{#1}<{\endminipage}}
\makeatletter
\newcolumntype{P}[1]{>{\@minipagetrue}p{#1}} %this not work as expected :-(
\makeatother
\begin{document}
\begingroup
\centering
\setlist[itemize]{nosep, leftmargin=*}
\begin{tabular}{|P{0.2\linewidth}|P{0.2\linewidth}|}
\hline
lipsum & \begin{itemize}
\item A
\item B
\end{itemize}
lipsum \\
\hline
lipsum & lipsum\\
\hline
\end{tabular}
\medskip
\begin{longtable}{|P{0.2\linewidth}|P{0.2\linewidth}|}
\hline
lipsum & \begin{itemize}
\item A
\item B
\end{itemize}
lipsum \\
\hline
lipsum & lipsum\\
\hline
\end{longtable}
\medskip
\begin{longtable}{|M{0.2\linewidth}|M{0.2\linewidth}|}
\hline
lipsum & \begin{itemize}
\item A
\item B
\end{itemize}
lipsum \\
\hline
lipsum & lipsum\\
\hline
\end{longtable}
\endgroup
\end{document}
结果如下: