带有长标签和换行的描述列表会遇到第二个标签,并且 tcolorbox 包中的 \tcbline 会出现问题

带有长标签和换行的描述列表会遇到第二个标签,并且 tcolorbox 包中的 \tcbline 会出现问题

该问题与这个

由于长枚举列表在表格中是不可接受的,因此我们不得不使用列表。Ulrike Fischer 提供了一个框架来解决这个问题,即使用 tcolorbox 包。但我遇到了新的问题。请参见以下示例

\begin{document}
    \begin{tcolorbox}[breakable,sharp corners,
        colback=white,
%       overlay={\draw[dashed] ([xshift=1.75cm]interior.north west)--([xshift=1.75cm]interior.south west);}
        ]
        \begin{description}[leftmargin=2cm,style=multiline]
            \item[long description long description] item 
            \tcbline
            \item[item 2] item
        \end{description}        
    \end{tcolorbox}
\end{document}

输出如下

在此处输入图片描述

输出的几个问题

  1. 由于我们设置了描述列表标签的换行方式leftmargin=2cm,style=multiline,如果标签过长,就会碰到第二个标签,造成混乱。但是这个换行是格式要求必须的。
  2. 位置\tcbline不对。似乎\tcbline只关注项目内容而不关注标签。在这种情况下,它应该在较低的位置绘制线条,就在第一个标签之后。
  3. 我将覆盖层设为注释,因为当我打开它时,会出现错误“未定义控制序列。\end{tcolorbox}”。但我确实需要垂直线。它似乎与breakable选项相关,但我无法删除该breakable选项,因为这将成为跨页面的长列表。

答案1

这是解决问题的部分答案overlay。主要是,我将其添加enhanced standard到选项列表中。

\documentclass[a4paper]{article}
\usepackage{enumitem,lipsum}
\usepackage[many]{tcolorbox}

\begin{document}
    \begin{tcolorbox}[breakable,sharp corners,
        enhanced standard,
        colback=white,
        overlay={\draw[dashed] ([xshift=1.75cm]interior.north west)--([xshift=1.75cm]interior.south west);}
        ]
        \begin{description}[leftmargin=2cm,style=multiline]
            \item[long description long description] item
            \tcbline
            \item[item 2] item
        \end{description}
    \end{tcolorbox}
\end{document}

相关内容