![表格环境中的多级枚举会生成错误的编号](https://linux22.com/image/251937/%E8%A1%A8%E6%A0%BC%E7%8E%AF%E5%A2%83%E4%B8%AD%E7%9A%84%E5%A4%9A%E7%BA%A7%E6%9E%9A%E4%B8%BE%E4%BC%9A%E7%94%9F%E6%88%90%E9%94%99%E8%AF%AF%E7%9A%84%E7%BC%96%E5%8F%B7.png)
我试图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}