制作时tabularx
需要指定表格宽度。对于最外面的表格,可以使用\textwidth
。
在外表内创建一个或多个内表时,内表也需要一个宽度,在这种情况下,该宽度将是该内表所在外表的列的宽度。很难跟踪上下文并手动给出硬编码值。
我不知道如何告诉 LaTeX 使用外部表格中所有可用的列宽,并让 LaTeX 进行计算。需要一些类似的东西,X
但用于表格宽度本身。
这是一个 MWE 表,其中一个表位于另一个表内。
\documentclass[10pt,notitlepage]{article}%
\usepackage{tabularx}
\usepackage{hyperref}
\usepackage{array}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\begin{document}
%have to use tabular* for outer table since I can't figure how to use tabularx
\begin{tabular*}{\textwidth}{|p{0.5\textwidth}|p{0.5\textwidth}|}\hline
\begin{tabularx}{0.5\textwidth}{@{}|Y|Y|Y|@{}}\hline % how to automate this?
% instead of 0.5\textwidth
% use full column width
\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}
&
second column
\end{tabular*}
\end{document}
答案1
您可以使用\linewidth
。有用的参考是:此问答。最好使用p{\dimexpr0.5\textwidth-2\tabcolsep\relax}
外部表格和左对齐单元格结构enumerate
。
\documentclass[10pt,notitlepage]{article}%
\usepackage{tabularx}
\usepackage{hyperref}
\usepackage{array}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\begin{document}
%have to use tabular* for outer table since I can't figure how to use tabularx
\noindent\begin{tabular*}{\textwidth}{|p{\dimexpr0.5\textwidth-2\tabcolsep\relax}|
@{\extracolsep{\fill}}p{\dimexpr0.5\textwidth-2\tabcolsep\relax}|}\hline
\begin{tabularx}{\linewidth}{@{}|p{0.35\hsize}|Y|Y|@{}}\hline % how to automate this?
% instead of 0.5\textwidth
% use full column width
{\centering \href{foo/index.htm}{A}\par}
\begin{enumerate}
\item item 1
\item item 2
\end{enumerate}
&
\href{foo/index.htm}{B}&
\href{foo/index.htm}{C}\\\hline
\end{tabularx}
&
second column
\end{tabular*}
\end{document}
答案2
看看这是否是您想要实现的:
\documentclass[10pt,notitlepage]{article}%
\usepackage{array,tabularx,hyperref}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\begin{document}
\begin{tabularx}{\textwidth}{|@{}X@{}|X|}%outer table, @{} omit column separation
\hline
{\begin{tabularx}{\hsize}{|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}}
& second column \\
\end{tabularx}
\end{document}