¿Cómo colocar una tabla de ancho completo en la parte superior o inferior de la misma página de dos columnas que el texto de referencia?

¿Cómo colocar una tabla de ancho completo en la parte superior o inferior de la misma página de dos columnas que el texto de referencia?

Estoy publicando hoy porque me gustaría reducir los espacios en blanco en un documento que estoy escribiendo. El contenido tiene dos columnas, pero tengo tablas flotantes que abarcan ambas columnas ( table*).

En algún momento, el texto termina al comienzo de la primera columna de una página nueva. Me gustaría incluir mi tabla en esta página ya que tiene mucho espacio libre debajo del texto, pero cuando inserto la tabla table*justo después del texto, va a la parte superior de la página siguiente:

¿Conoce alguna forma de obtener el comportamiento deseado?

Ejemplo de trabajo mínimo:

\documentclass{article}
\usepackage{lipsum}

\begin{document}
\twocolumn

\paragraph{}
\lipsum[1]

\begin{table*}
\centering
\begin{tabular}{|c|c|c|c|}
\hline
Column 1 & Column 2 & Column 3 & Column 4 \\
\hline
Column 1 & Column 2 & Column 3 & Column 4 \\
\hline
\end{tabular}
\end{table*}%


\end{document}

Respuesta1

Parece que no hay manera de poner un flotador de ancho completo en la parte superior delprimeropágina; Se utilizan varios mecanismos para evitarlo y no he encontrado una solución. (Lo más probable es que esto también sea cierto para la primera página de un nuevo capítulo de un libro o informe. Tal vez Frank Mittelbach o David Carlisle sepan una manera de hacerlo).

sin embargo, la pregunta dice que

En algún momento, el texto termina al comienzo de la primera columna de una página nueva.

si es aceptable colocar el flotador en alguna páginadespuésel primero, esto es posible, moviendo la entrada de la figura lo suficiente antes como para que se lea (y luego se retrase) antes de que finalice la página que será la páginaanterioraquel en el que se desea la figura.

el siguiente ejemplo hará esto. es feo, pero funciona; Se utiliza en remolcadores todo el tiempo. (El remolcador casi nunca tiene el requisito de colocar dicho flotador en la parte superior de la primera página, y si existe tal requisito, volvemos al texto sin formato). Agregué un [t]para solicitar que el flotador se coloque en la parte superior. ; probablemente sea redundante, pero tiene el efecto deseado con algunas clases de documentos ( amsartpor un lado, pero aparentemente no article) si el flotante termina como lo único en la página.

\documentclass{article}
\usepackage{lipsum}

\begin{document}
\twocolumn

\paragraph{}
\lipsum[1-4]

%% this table should appear *before* the paragraph indicated below.
%% it is placed here in the input to force its position at the top of the next page.
\begin{table*}[t]
\centering
\begin{tabular}{|c|c|c|c|}
\hline
Column 1 & Column 2 & Column 3 & Column 4 \\
\hline
Column 1 & Column 2 & Column 3 & Column 4 \\
\hline
\end{tabular}
\end{table*}

\lipsum[5-6]

%% the table coded above should appear at the top of the page on which
%% this paragraph appears.
\paragraph{I want the figure above this text}
\lipsum[1]

\end{document}

EDITAR:

el siguiente ejemplo colocará la figura en la parte inferior de la página, en ambas columnas, a costa de un mensaje de cuadro demasiado lleno. (Estoy tratando de descubrir cómo deshacerme de eso, pero aún no lo he logrado).

el enfoque es lanzar ununa sola columnaflota en algún lugar de la primera columna, encima de donde comenzará. en el flotante de una sola columna se incrusta un minipagevalor que ocupa todo el ancho de la página. después de la primera ejecución, determine cuánto se acortó la columna y, en algún lugar de la segunda columna, emita unnegativo \enlargethispagecomando que dejará la parte inferior de la página en blanco, permitiendo que la figura de ancho completo se desborde en el área vacía.

\documentclass{article}
\usepackage{lipsum}

\begin{document}

\twocolumn

%% avoid overfull boxes from the lipsum test.
\sloppy

\paragraph{}
\lipsum[1]

%% this table should appear at the bottom of the page.
%% it must be placed in the input somewhere near the top of the
%% first column so that it will actually appear in the first column.
\begin{table}[b]
\begin{minipage}{\textwidth}
\centering
\begin{tabular}{|c|c|c|c|}
\hline
Column 1 & Column 2 & Column 3 & Column 4 \\
\hline

Column 1 & Column 2 & Column 3 & Column 4 \\
\hline
\end{tabular}
\end{minipage}
\end{table}

%% the table coded above should appear at the bottom of the page on which
%% this paragraph appears.
\textbf{I want the figure at the bottom of the page}

\lipsum[1]

\lipsum[2]

%% somewhere in the second column, reduce the page (column) length
%% by the amount needed to clear the figure.
\enlargethispage{-4\baselineskip}

\lipsum[3-6]

\end{document}

si, es feo. No digas que no fuiste advertido.

Advertencia adicional: el espaciado vertical puede verse afectado por encabezados de sección que tienen estiramiento incorporado, lo que hace que este sea un proceso iterativo. Intente evitar aplicar este enfoque hasta que su texto sea definitivo, e incluso entonces, podría ser prudente intentar "arreglar" un salto de página en la parte superior de la página en la que aparecerá la tabla.

EDITAR 2:

la chapuza descrita aquí se convirtió en un artículo de remolcador,"colocar un inserto de ancho completo en la parte inferior de dos columnas",remolcador35:3 (2014), pág.255. (Como todos los artículos sobre remolcadores en formato electrónico, este artículo tiene un "embargo" de un año durante el cual está disponible solo para los miembros de remolcadores; estará disponible para todos en algún momento a finales del otoño de 2015.)

Un punto importante mencionado en el artículo es que el stfloatspaquete, mencionado en¿Poner una tabla* al final de una página? funciona solo para páginasdespuésla primera página.

Respuesta2

Encontré que esto funciona mejor para mí, especialmente con una figura/tabla de dos columnas en la parte inferior delprimeropágina:

% The trick is with the following package. You **need** to use the following package.
\usepackage{nidanfloat}

% ....

% Put your figure near the first page content.
\begin{figure*}[b]
    \centering
    \def\svgwidth{\textwidth}
    \import{sections/images/}{some_figure.pdf_tex}
    \caption{Some caption.}
    \label{fig:some_label}
\end{figure*}

información relacionada