
我需要在表格環境中擁有緊湊的清單。我需要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 包裝itemize
在minipage
環境中時起作用。
為了節省時間和空間,我創建了一個compactitemt
環境以便自動換itemize
行minipage
。這最初給出了一個錯誤,但重新定義環境(如以下程式碼所示)現在可以正常工作。
\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}