表格环境中的多级枚举会生成错误的编号

表格环境中的多级枚举会生成错误的编号

我试图enumerate在环境中包含一个列表tabularly,但是当我向列表添加多个深度级别时,编号会出错。

\begin{table}[H]
\begin{minipage}{\linewidth}
\setlength{\tymax}{0.8\linewidth}
\centering
\small
\begin{tabulary}{\textwidth}{@{}LL@{}}
Wrong row&
\begin{enumerate}
\item First.
\begin{enumerate}
\item Second
\end{enumerate}
\end{enumerate}\\
\end{tabulary}
\end{minipage}
\end{table}

此代码为该行生成以下输出:

Wrong row 
           1   1.1 First
                   1.1 Second

如果我添加另一个嵌套级别,输出将变得混乱,数字重叠。

在任何表格之外,枚举在我的所有文档中都能正常工作。

编辑:

我已经最大限度地简化了示例并且我可以使其工作,认为它是列类型,现在设置为 P。

\documentclass[11pt]{book}
\begin{document}
\begin{tabular}{|Lp{10cm}|}
    row1&value\\
    row2&
    \begin{enumerate}
        \item First
        \begin{enumerate}
            \item Second
        \end{enumerate}
    \end{enumerate}
\\
\end{tabular}
\end{document}

现在生成正确的输出:

row1     value
row2     1. First
            1.2 Second

答案1

我认为您发布的任何代码片段都无法编译,但基本问题是tabulary启用了显示数学,但没有启用L列中的其他显示环境。一个小补丁解决了这个问题。

\documentclass{article}
\usepackage{tabulary}

\makeatletter
\let\oldTYtab\TY@tab
\def\TY@tab{\expandafter\TY@xtab\oldTYtab}

\def\TY@xtab#1\bgroup{%
#1\bgroup
\let\list\@gobbletwo
\let\trivlist\relax
\let\endtrivlist\relax
\let\item\relax}

\begin{document}


\noindent
\begin{minipage}{\linewidth}
\setlength{\tymax}{0.8\linewidth}
\small
\noindent
\begin{tabulary}{\textwidth}{@{}LL@{}}
Wrong row&
\begin{enumerate}\item First.
\begin{enumerate}\item Second\end{enumerate}
\end{enumerate}
\end{tabulary}
\end{minipage}

\end{document}

相关内容