
Ich versuche, eine komplizierte Tabelle zu erstellen, bei der jede Zelle selbst eine Tabelle sein kann.
Ich habe festgestellt, dass ich tabularx in tabular* einbinden kann, kann aber nicht herausfinden, warum ich einen Fehler erhalte, wenn die äußere Tabelle ebenfalls tabularx ist. Vielleicht kann jemand sehen, was ich falsch mache.
Dieses MWE funktioniert. Das darunter funktioniert nicht.
\documentclass[10pt,notitlepage]{article}%
\usepackage{tabularx}
\usepackage{hyperref}
\usepackage{array}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\begin{document}
\begin{tabular*}{\textwidth}{p{\textwidth}}\hline
\begin{tabularx}{\textwidth}{@{}|Y|Y|Y|@{}}\hline
\href{foo/index.htm}{A}
\begin{enumerate}
\item item 1
\item item 2
\end{enumerate}&
\href{foo/index.htm}{B}&
\href{foo/index.htm}{C}\\\hline
\end{tabularx}
\end{tabular*}
\end{document}
Jetzt ändere ich die äußere Tabelle in tabularX und es ist fehlgeschlagen:
\documentclass[10pt,notitlepage]{article}%
\usepackage{tabularx}
\usepackage{hyperref}
\usepackage{array}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\begin{document}
\begin{tabularx}{\textwidth}{@{}Y@{}}\hline
\begin{tabularx}{\textwidth}{@{}|Y|Y|Y|@{}}\hline
\href{foo/index.htm}{A}
\begin{enumerate}
\item item 1
\item item 2
\end{enumerate}&
\href{foo/index.htm}{B}&
\href{foo/index.htm}{C}\\\hline
\end{tabularx}
\end{tabularx}
\end{document}
Fehler ist
(./foo2.out) (./foo2.out)
! Extra }, or forgotten \endgroup.
\TX@trial ...er \tabular \the \toks@ \endtabular }
\TX@ckpt \TX@typeout@ {\@s...
l.18 \end{tabularx}
?
Texlive 2013 unter Linux verwenden
Antwort1
Die verschachtelten Elemente tabularx
sollten umgeben sein von {
und}
\documentclass[10pt,notitlepage]{article}%
\usepackage{tabularx}
\usepackage{hyperref}
\usepackage{array}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\begin{document}
\begin{tabularx}{\textwidth}{@{}Y@{}}\hline
{\begin{tabularx}{\textwidth}{@{}|Y|Y|Y|@{}}\hline
\href{foo/index.htm}{A}
\begin{enumerate}
\item item 1
\item item 2
\end{enumerate}&
\href{foo/index.htm}{B}&
\href{foo/index.htm}{C}\\\hline
\end{tabularx}}
\end{tabularx}
\end{document}
nest
Dies steht in der Dokumentation. Ich habe es gefunden, indem ich in der Dokumentation danach gesucht habe .
Sie sollten jedoch wahrscheinlich ein paar Änderungen vornehmen. Die Verwendung \textwidth
von „inner“ tabularx
führt höchstwahrscheinlich dazu, dass die Spalten zu breit sind. Verwenden Sie stattdessen \linewidth
. Hier ist eine modifizierte verschachtelte tabularx
Konstruktion:
\documentclass[10pt,notitlepage]{article}%
\usepackage[margin=0.5in]{geometry}
\usepackage{tabularx}
\usepackage{hyperref}
\usepackage{array}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\usepackage{lipsum}
\setlength{\parindent}{0pt}
\begin{document}
\begin{tabularx}{\textwidth}{@{}lY@{}}\hline
Hello &
{\begin{tabularx}{\linewidth}{@{}|Y|Y|Y|@{}}\hline
\href{foo/index.htm}{A}
\begin{enumerate}
\item item 1 \lipsum[1]
\item item 2
\end{enumerate}
&
\href{foo/index.htm}{B}
\lipsum[2]
&
\href{foo/index.htm}{C}
3:\lipsum[3] \\\hline
\end{tabularx}}
\end{tabularx}
\end{document}