执行完 \item 时仍然是垂直模式,在这种情况下需要手动离开垂直模式,使用 \leavevmode 或 \mode_leave_vertical: 均可。
在每个 \item 后紧跟 \mode_leave_vertical::
\documentclass{article}
\usepackage{varwidth}
\usepackage{graphicx}
\usepackage{lipsum}
\begin{document}
\ExplSyntaxOn
\coffin_new:N \l_test_a_coffin
\coffin_new:N \l_test_b_coffin
\hcoffin_set:Nn \l_test_b_coffin
{
\begin{varwidth}{\hsize}
\lipsum[1]
\begin{itemize}
\item what~I~want
\end{itemize}
\end{varwidth}
}
\hcoffin_set:Nn \l_tmpa_coffin
{
\begin{varwidth}{\hsize}
\includegraphics[width = 2cm]{example-image-a}
\end{varwidth}
}
\coffin_join:NnnNnnnn
\l_test_b_coffin { b } { r }
\l_tmpa_coffin { t } { r }
{ 0pt } { 0pt }
\begin{enumerate}
\item \mode_leave_vertical: % 加上这个
\coffin_typeset:Nnnnn
\l_test_b_coffin { t } { l }
{ 0pt } { 0pt }
\item \mode_leave_vertical: % 加上这个
\hcoffin_set:Nn \l_test_a_coffin
{
\begin{varwidth}{\hsize}
\lipsum[1]
\begin{itemize}
\item what~I~don't~want
\end{itemize}
\end{varwidth}
}
\hcoffin_set:Nn \l_tmpa_coffin
{
\begin{varwidth}{\hsize}
\includegraphics[width = 2cm]{example-image-a}
\end{varwidth}
}
\coffin_join:NnnNnnnn
\l_test_a_coffin { b } { r }
\l_tmpa_coffin { t } { r }
{ 0pt } { 0pt }
\coffin_typeset:Nnnnn
\l_test_a_coffin { t } { l }
{ 0pt } { 0pt }
\end{enumerate}
\ExplSyntaxOff
\end{document}另外再多说一句,由于 coffin 仍然是一个盒子,这意味着它不可断页。











问 coffin在enumerate环境中设置出现label对齐问题?