"fehlendes \item" in Tabelle trotz klarem Item

"fehlendes \item" in Tabelle trotz klarem Item

Ich brauche kompakte Listen in einer Tabellenumgebung. Ich brauche die tabularyUmgebung für Tabellen und verwende itemizeOptionen für die Listen.

Bei meinen Versuchen kommt die Fehlermeldung „Etwas stimmt nicht – möglicherweise fehlt \item.“

Das folgende MWE reproduziert das Problem. Ich habe gerade alle Pakete in MikTeX (unter Windows) aktualisiert.

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

Wie bereits erwähnt, funktioniert der obige Code, wenn die itemize-Umgebung in eine minipageUmgebung eingeschlossen wird.

Um Zeit und Platz zu sparen, habe ich eine compactitemtUmgebung erstellt, um automatisch einzuschließen itemize. minipageDies führte zunächst zu einem Fehler, aber die Neudefinition der Umgebung wie im folgenden Code funktioniert jetzt.

\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}

Das Endziel besteht darin, gleichmäßig verteilte JSpalten mit Listen zu haben, wie diese:

Bildbeschreibung hier eingeben

Ideal wäre es gewesen, wenn im obigen Beispiel die zweite Spalte nur so breit wäre wie der Text darin, wenn der Text so kurz ist, dass es keine Zeilenumbrüche gibt, aber ich glaube, ich kann damit umgehen, indem ich tabularxund dann die lSpalte manuell verwende, wenn die Tabelle so klein ist, dass sie weniger als eine Zeile breit sein sollte.

Bildbeschreibung hier eingeben

Antwort1

tabularyverwendet den H-Modus, um zu messen, wie viele Daten jede Zelle enthält. Dies bedeutet, dass vertikale Konstrukte wie Listen nicht funktionieren. Es sorgt lokal für \[Sicherheit während der Versuche (fungiert als $, aber sonst nichts). Eine sehr einfache Änderung für Itemixe wäre wie unten, aber die Ausgabe ist nicht so toll. Ich würde einen Normalwert verwenden tabularund die Breite der p{...}Spalte manuell wählen.

\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}

Bildbeschreibung hier eingeben

verwandte Informationen