儘管有明確的項目,但表中“缺少\項目”

儘管有明確的項目,但表中“缺少\項目”

我需要在表格環境中擁有緊湊的清單。我需要tabulary表格環境,並使用itemize清單選項。

我的嘗試返回錯誤“出了點問題——可能缺少\item。”

以下 MWE 複製了該問題。我剛剛更新了 MikTeX 中的所有軟體包(在 Windows 上)。

\documentclass{article} 
\usepackage{tabulary} 
\begin{document} 
  \begin{tabulary}{\linewidth}{L L}  
  test &  \begin{itemize} \item table item 1 \end{itemize} \\  
  \end{tabulary}
\end{document}

正如所指出的,上面的程式碼在將 -environment 包裝itemizeminipage環境中時起作用。

為了節省時間和空間,我創建了一個compactitemt環境以便自動換itemizeminipage。這最初給出了一個錯誤,但重新定義環境(如以下程式碼所示)現在可以正常工作。

\documentclass{scrbook}

\usepackage[inline]{enumitem} 
\usepackage{tabulary}

\newenvironment{compactitemt}{
    \begin{minipage}[t]{\hsize}\begin{itemize}[nosep, wide=0pt]
    }{ \end{itemize}\end{minipage} }

\begin{document}

    \begin{tabulary}{\linewidth}{| J | J |} 
        other column & 
            top line 1
            \begin{compactitemt}
                \item table item 1
            \end{compactitemt}
            bottom line 1
        \\ 
    \end{tabulary}

\end{document}

最終目標是擁有J包含清單的均勻間隔的列,如下所示:

在此輸入影像描述

在上面的例子中,如果文字太短以至於沒有換行符,第二列的寬度只能與內部文字一樣寬,那將是理想的,但我相信我可以透過手動使用來處理這個問題,tabularx然後l當表格太小以至於它應該小於一行寬時,列。

在此輸入影像描述

答案1

tabulary使用 hmode 來測量每個單元格有多少數據,這意味著列表等垂直結構不起作用。它在本地使\[試驗期間安全($僅起到其他作用。對 itemixe 的一個非常基本的修改如下所示,但輸出不是很好。我會使用法線並手動tabular選擇列的寬度。p{...}

\documentclass{article}
\usepackage{tabulary}
\makeatletter
\def\TY@list#1#2{%
  \renewcommand\item[1][]{ }%
  }
\def\TY@tab{%
  \setbox\z@\hbox\bgroup
  \let\[$\let\]$%
% new bit to make itemize safe
  \let\list\TY@list
  \let\enditemize\relax
  \let\endlist\relax
% end change
  \let\equation$\let\endequation$%
    \col@sep\tabcolsep
    \let\d@llarbegin\begingroup\let\d@llarend\endgroup
    \let\@mkpream\TY@mkpream
      \def\multicolumn##1##2##3{\multispan##1\relax}%
    \CT@start\TY@tabarray}
\makeatother
\begin{document}
\centering
\begin{tabulary}{\linewidth}{L L} 
test & 
\begin{itemize}
\item table item 1
\end{itemize}
\\ 
\end{tabulary}
\end{document}

在此輸入影像描述

相關內容