
各セル自体がテーブルになるような複雑なテーブルを作成しようとしています。
tabular* 内に tabularx を含めることができることはわかりましたが、外側のテーブルも tabularx である場合にエラーが発生する理由がわかりません。誰かが私の間違いに気付くかもしれません。
この MWE は動作します。その下のものは動作しません。
\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}
ここで、外部テーブルを tabularX に変更しましたが、失敗しました。
\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}
エラーは
(./foo2.out) (./foo2.out)
! Extra }, or forgotten \endgroup.
\TX@trial ...er \tabular \the \toks@ \endtabular }
\TX@ckpt \TX@typeout@ {\@s...
l.18 \end{tabularx}
?
Linux で texlive 2013 を使用する
答え1
ネストさtabularx
れた部分は{
、}
\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
これはドキュメントによるものです。ドキュメントで検索して見つけました。
ただし、おそらくいくつかの変更を加える必要があります。\textwidth
内部でを使用するとtabularx
、列が広くなりすぎる可能性が高くなります。代わりに を使用してください\linewidth
。以下は、変更されたネスト構造ですtabularx
。
\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}