¿Cómo hacer que el ancho de una tabla interior utilice el ancho de columna completo de una tabla exterior?

¿Cómo hacer que el ancho de una tabla interior utilice el ancho de columna completo de una tabla exterior?

Al hacer tabularxhay que dar un ancho de mesa. Para la tabla más externa, se puede usar \textwidth.

Al hacer una o más tablas internas dentro de tablas externas, las tablas internas también necesitan un ancho, que será en este caso el ancho de la columna de la tabla externa que resultó ser esta tabla interna. in. Es difícil realizar un seguimiento del contexto y proporcionar valores codificados manualmente.

No puedo entender cómo decirle a LaTeX que use todo el ancho de columna disponible de la tabla exterior y dejar que LaTeX haga el cálculo. Necesita algo similar Xpero para el ancho de la tabla en sí.

Aquí hay un MWE, una mesa dentro de otra.

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

gráficos matemáticos

Respuesta1

Puedes usar \linewidth. La referencia útil será:esta Q y su A. Sería mejor usarlo p{\dimexpr0.5\textwidth-2\tabcolsep\relax}para la tabla exterior y una estructura de celdas alineada a la izquierda para 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}

ingrese la descripción de la imagen aquí

Respuesta2

mira si esto es lo que te gusta lograr:

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

información relacionada