Mover tabla en documentos de clase "libro"

Mover tabla en documentos de clase "libro"

Necesito agregar algunas tablas en bookel documento de clase. En ocasiones la tabla es más ancha que el texto. Esto no es un problema cuando ocurre en páginas impares ya que tienen márgenes derechos más grandes y encuadernaré desde la izquierda como se muestra a continuación.

ingrese la descripción de la imagen aquí

Sin embargo, se convierte en un problema cuando la tabla tiene que estar en páginas pares, como se muestra a continuación, porque la encuadernación ocurre en el lado derecho y parte de la tabla se verá afectada. Por lo tanto, sería mejor dejar que la tabla adicional ocupe espacio en el lado izquierdo en lugar del derecho en las páginas pares. ¿Cómo lograr esto, por favor? ¡Gracias! Mi ejemplo se adjunta a continuación.

ingrese la descripción de la imagen aquí

    \documentclass[a4paper, twoside, hidelinks, 11pt]{book}

  \usepackage{booktabs}
  \usepackage{lipsum}

\begin{document}

\begin{table}[h]
\centering
\begin{tabular}{rccccc}
\toprule
Blah & Blah     & Blah & Blah     & Blah & Blah Blah Blah Blah \\ \midrule
-0.4    & -0.00495 & 0.02716  & 0.02719 & (0.70525, 1.34978) & (0.67622, 1.32378) \\
-0.3    & -0.00558 & 0.02534  & 0.02537 & (0.71227, 1.33488) & (0.68681, 1.31319) \\
-0.2    & -0.00616 & 0.02362  & 0.02366 & (0.71923, 1.32050) & (0.69718, 1.30282) \\
-0.1    & -0.00669 & 0.02201  & 0.02206 & (0.72613, 1.30662) & (0.70732, 1.29268) \\
0.1     & -0.00762 & 0.01909  & 0.01915 & (0.73968, 1.28034) & (0.72692, 1.27308) \\
0.2     & -0.00802 & 0.01776  & 0.01783 & (0.74636, 1.26790) & (0.73638, 1.26362) \\
0.3     & -0.00838 & 0.01652  & 0.01659 & (0.75294, 1.25591) & (0.74561, 1.25439) \\
0.4     & -0.00870 & 0.01536  & 0.01543 & (0.75945, 1.24439) & (0.75462, 1.24538) \\ \bottomrule
\end{tabular}
\end{table}

\lipsum[1-5]

\begin{table}[h]
\centering
\begin{tabular}{rccccc}
\toprule
Blah & Blah     & Blah & Blah     & Blah & Blah Blah Blah Blah \\ \midrule
-0.4    & -0.00495 & 0.02716  & 0.02719 & (0.70525, 1.34978) & (0.67622, 1.32378) \\
-0.3    & -0.00558 & 0.02534  & 0.02537 & (0.71227, 1.33488) & (0.68681, 1.31319) \\
-0.2    & -0.00616 & 0.02362  & 0.02366 & (0.71923, 1.32050) & (0.69718, 1.30282) \\
-0.1    & -0.00669 & 0.02201  & 0.02206 & (0.72613, 1.30662) & (0.70732, 1.29268) \\
0.1     & -0.00762 & 0.01909  & 0.01915 & (0.73968, 1.28034) & (0.72692, 1.27308) \\
0.2     & -0.00802 & 0.01776  & 0.01783 & (0.74636, 1.26790) & (0.73638, 1.26362) \\
0.3     & -0.00838 & 0.01652  & 0.01659 & (0.75294, 1.25591) & (0.74561, 1.25439) \\
0.4     & -0.00870 & 0.01536  & 0.01543 & (0.75945, 1.24439) & (0.75462, 1.24538) \\ \bottomrule
\end{tabular}
\end{table}

\end{document}

Respuesta1

Prueba este. Es similar a la respuesta de @Werner, pero automatizo tabularla alineación.

\documentclass[a4paper, twoside, hidelinks, 11pt]{book}

\usepackage{booktabs}
\usepackage{lipsum}
\makeatletter
\newcommand*\mytabalign{%
    \edef\sk@align{\ifodd\c@page l\else r\fi}
    \makebox[\textwidth][\sk@align]}
\makeatother
\begin{document}

\begin{table}[h]
\centering
\mytabalign{\begin{tabular}{rccccc}
\toprule
Blah & Blah     & Blah & Blah     & Blah & Blah Blah Blah Blah \\ \midrule
-0.4    & -0.00495 & 0.02716  & 0.02719 & (0.70525, 1.34978) & (0.67622, 1.32378) \\
-0.3    & -0.00558 & 0.02534  & 0.02537 & (0.71227, 1.33488) & (0.68681, 1.31319) \\
-0.2    & -0.00616 & 0.02362  & 0.02366 & (0.71923, 1.32050) & (0.69718, 1.30282) \\
-0.1    & -0.00669 & 0.02201  & 0.02206 & (0.72613, 1.30662) & (0.70732, 1.29268) \\
0.1     & -0.00762 & 0.01909  & 0.01915 & (0.73968, 1.28034) & (0.72692, 1.27308) \\
0.2     & -0.00802 & 0.01776  & 0.01783 & (0.74636, 1.26790) & (0.73638, 1.26362) \\
0.3     & -0.00838 & 0.01652  & 0.01659 & (0.75294, 1.25591) & (0.74561, 1.25439) \\
0.4     & -0.00870 & 0.01536  & 0.01543 & (0.75945, 1.24439) & (0.75462, 1.24538) \\ \bottomrule
\end{tabular}}
\end{table}

\lipsum[1-5]

\begin{table}[h]
\centering

\mytabalign{\begin{tabular}{rccccc}
\toprule
Blah & Blah     & Blah & Blah     & Blah & Blah Blah Blah Blah \\ \midrule
-0.4    & -0.00495 & 0.02716  & 0.02719 & (0.70525, 1.34978) & (0.67622, 1.32378) \\
-0.3    & -0.00558 & 0.02534  & 0.02537 & (0.71227, 1.33488) & (0.68681, 1.31319) \\
-0.2    & -0.00616 & 0.02362  & 0.02366 & (0.71923, 1.32050) & (0.69718, 1.30282) \\
-0.1    & -0.00669 & 0.02201  & 0.02206 & (0.72613, 1.30662) & (0.70732, 1.29268) \\
0.1     & -0.00762 & 0.01909  & 0.01915 & (0.73968, 1.28034) & (0.72692, 1.27308) \\
0.2     & -0.00802 & 0.01776  & 0.01783 & (0.74636, 1.26790) & (0.73638, 1.26362) \\
0.3     & -0.00838 & 0.01652  & 0.01659 & (0.75294, 1.25591) & (0.74561, 1.25439) \\
0.4     & -0.00870 & 0.01536  & 0.01543 & (0.75945, 1.24439) & (0.75462, 1.24538) \\ \bottomrule
\end{tabular}}
\end{table}

\end{document}

No estoy seguro de que funcione correctamente en todas las situaciones, pero parece funcionar bien en este caso ( tableentorno interior).

Respuesta2

Sugeriría compilar el suyo booky esperar para ajustar esas cosas justo al final. En ese momento, puede evitar \hboxadvertencias de exceso de contenido para páginas impares de gran tamaño tabularutilizando

\makebox[0pt][l]{\begin{tabular}{..}
  ...
\end{tabular}}

y páginas pares tabularusando

\raggedleft
\makebox[0pt][r]{\begin{tabular}{..}
  ...
\end{tabular}}

Aquí está su ejemplo en acción:

ingrese la descripción de la imagen aquí

\documentclass[a4paper, twoside]{book}

\usepackage{booktabs,lipsum}

\begin{document}

\begin{table}[h]
  \makebox[0pt][l]{%
    \begin{tabular}{rccccc}
      \toprule
      Blah & Blah     & Blah & Blah     & Blah & Blah Blah Blah Blah \\ \midrule
      -0.4    & -0.00495 & 0.02716  & 0.02719 & (0.70525, 1.34978) & (0.67622, 1.32378) \\
      -0.3    & -0.00558 & 0.02534  & 0.02537 & (0.71227, 1.33488) & (0.68681, 1.31319) \\
      -0.2    & -0.00616 & 0.02362  & 0.02366 & (0.71923, 1.32050) & (0.69718, 1.30282) \\
      -0.1    & -0.00669 & 0.02201  & 0.02206 & (0.72613, 1.30662) & (0.70732, 1.29268) \\
      0.1     & -0.00762 & 0.01909  & 0.01915 & (0.73968, 1.28034) & (0.72692, 1.27308) \\
      0.2     & -0.00802 & 0.01776  & 0.01783 & (0.74636, 1.26790) & (0.73638, 1.26362) \\
      0.3     & -0.00838 & 0.01652  & 0.01659 & (0.75294, 1.25591) & (0.74561, 1.25439) \\
      0.4     & -0.00870 & 0.01536  & 0.01543 & (0.75945, 1.24439) & (0.75462, 1.24538) \\
      \bottomrule
    \end{tabular}}
\end{table}

\lipsum[1-5]

\begin{table}[h]
  \raggedleft
  \makebox[0pt][r]{%
    \begin{tabular}{rccccc}
      \toprule
      Blah & Blah     & Blah & Blah     & Blah & Blah Blah Blah Blah \\ \midrule
      -0.4    & -0.00495 & 0.02716  & 0.02719 & (0.70525, 1.34978) & (0.67622, 1.32378) \\
      -0.3    & -0.00558 & 0.02534  & 0.02537 & (0.71227, 1.33488) & (0.68681, 1.31319) \\
      -0.2    & -0.00616 & 0.02362  & 0.02366 & (0.71923, 1.32050) & (0.69718, 1.30282) \\
      -0.1    & -0.00669 & 0.02201  & 0.02206 & (0.72613, 1.30662) & (0.70732, 1.29268) \\
      0.1     & -0.00762 & 0.01909  & 0.01915 & (0.73968, 1.28034) & (0.72692, 1.27308) \\
      0.2     & -0.00802 & 0.01776  & 0.01783 & (0.74636, 1.26790) & (0.73638, 1.26362) \\
      0.3     & -0.00838 & 0.01652  & 0.01659 & (0.75294, 1.25591) & (0.74561, 1.25439) \\
      0.4     & -0.00870 & 0.01536  & 0.01543 & (0.75945, 1.24439) & (0.75462, 1.24538) \\
      \bottomrule
    \end{tabular}}
\end{table}

\end{document}

De hecho, la automatización de este procedimiento puede ser posible, pero depende en gran medida de su uso habitual tabular(flotadores interiores y/o exteriores, por ejemplo).

Respuesta3

El principal problema es que tu tabla es demasiado grande y esto sucede porque contiene demasiados datos para el ancho del texto que tienes :) Como consecuencia, veo diferentes posibilidades para resolver el problema:

  1. Cambia el formato de tu tabla. Podrías, por ejemplo, mostrar los pares en dos líneas en lugar de usar (... , ...). O escriba .123en lugar de 0.123, según las convenciones utilizadas en su dominio. Otra forma sería utilizar diferentes unidades de escala, por ejemplo, 2.716en lugar 0.02716del factor $10^{-2}$escrito en el título de la columna. Nuevamente, esto puede o no ser factible.

  2. Utilice \smallel tamaño de fuente. EstevoluntadHaz tu mesa más pequeña. Sin embargo, puede resultar más difícil de leer, dependiendo del contenido real que tenga.

  3. Utilice el entorno flotante table, coloque la tabla en una página separada y compórela en formato horizontal.

Si ninguna de estas posibilidades (o combinaciones de las mismas) funciona para usted, puede intentar forzar a LaTeX para que la mesa sobresalga hacia el interior.exteriormargen en lugar del margen derecho. Mientras escribo esto, puedo ver que Werner ya te mostró cómo hacer esto.

Respuesta4

Una solución basada en tabularxy jugando con \arraycolsepmuestra que la tabla puede tener exactamente el ancho del texto. Agregué el siunitxpaquete para formatear los números en las primeras cuatro columnas.

\documentclass[a4paper, twoside]{book}

\usepackage{booktabs, tabularx, siunitx, lipsum}
\renewcommand{\tabularxcolumn}[1]{>{\centering\arraybackslash$}m{#1}<{$}}
\begin{document}

\lipsum[1]

\begin{table}[h]\setlength\extrarowheight{1.5pt}
  \begin{tabularx}{\linewidth}{@{\,}S[table-format=-1.1]S[table-format=-1.5]S[table-format=1.5]S[table-format=1.5]XX @{\,}}
    \toprule
    {Blah} & Blah & Blah & Blah & \text{Blah} & \parbox{\hsize}{\centering Blah Blah Blah Blah} \\[1ex]
    \midrule
    -0.4 & -0.00495 & 0.02716 & 0.02719 & (0.70525, 1.34978) & (0.67622, 1.32378) \\
    -0.3 & -0.00558 & 0.02534 & 0.02537 & (0.71227, 1.33488) & (0.68681, 1.31319) \\
    -0.2 & -0.00616 & 0.02362 & 0.02366 & (0.71923, 1.32050) & (0.69718, 1.30282) \\
    -0.1 & -0.00669 & 0.02201 & 0.02206 & (0.72613, 1.30662) & (0.70732, 1.29268) \\
    0.1 & -0.00762 & 0.01909 & 0.01915 & (0.73968, 1.28034) & (0.72692, 1.27308) \\
    0.2 & -0.00802 & 0.01776 & 0.01783 & (0.74636, 1.26790) & (0.73638, 1.26362) \\
    0.3 & -0.00838 & 0.01652 & 0.01659 & (0.75294, 1.25591) & (0.74561, 1.25439) \\
    0.4 & -0.00870 & 0.01536 & 0.01543 & (0.75945, 1.24439) & (0.75462, 1.24538) \\
    \bottomrule
  \end{tabularx}
\end{table}

\end{document} 

ingrese la descripción de la imagen aquí

información relacionada