如何使内部表格的宽度使用外部表格的整列宽度?

如何使内部表格的宽度使用外部表格的整列宽度?

制作时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}

Mathematica 图形

答案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}

相关内容