如何在同一兩欄頁面的頂部或底部放置一個全角表格作為參考文字?

如何在同一兩欄頁面的頂部或底部放置一個全角表格作為參考文字?

我今天發文是因為我想減少我正在編寫的文件中的空白。內容是兩列,但我有跨越兩列的浮動表 ( table*)。

在某些時候,文字會在新頁面的第一列的開頭結束。我想在此頁面上包含我的表格,因為它在文字下方有很多可用空間,但是當我在table*文字後面插入表格時,它會轉到下一頁的頂部:

您知道獲得所需行為的方法嗎?

最小工作範例:

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

答案1

似乎沒有辦法將全角浮動放在頂部第一的頁;使用了各種機制來防止它,但我還沒有找到解決方法。 (這很可能也適用於書籍或報告中新章節的首頁。也許弗蘭克·米特爾巴赫或大衛·卡萊爾知道一種方法。)

然而,問題指出

在某些時候,文字會在新頁面的第一列的開頭結束。

如果可以接受將浮動放置在某些頁面上第一種,這是可能的,透過將圖形的輸入移動得足夠早,以便在頁面完成之前將其讀入(然後延遲)想要該人物的那個。

以下範例將執行此操作。它很醜,但很管用;它一直用於拖船。 (拖船幾乎從來沒有要求將這樣的浮標放在第一頁的頂部,如果有這樣的要求,我們將恢復為純文本。)我添加了一個[t]來請求將浮標放置在頂部;它可能是多餘的,但如果浮動最終成為頁面上唯一的東西,它確實對某些文件類(amsart例如,但顯然不是)具有預期的效果。article

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

編輯:

下面的範例將把圖形放置在頁面底部,橫跨兩列,但代價是框已滿訊息。 (我正在嘗試找出如何擺脫它,但尚未成功。)

方法是推出一個單列浮動在第一列的某個位置,位於它將開始的位置之上。在單列浮動中嵌入了一個,minipage即整個頁面的寬度。第一次運行後,確定列縮短了多少,然後在第二列中的某個位置發出消極的 \enlargethispage命令將使頁面底部留空,允許全角圖形溢出到空白區域。

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

是的,它很醜。不要說你沒有被警告過。

額外的警告-垂直間距可能會被內建拉伸的章節標題弄亂。在文字最終確定之前,盡量避免應用此方法,即使如此,嘗試「修復」要顯示表格的頁面頂部的分頁符號可能也是明智之舉。

編輯2:

這裡描述的拼湊變成了拖船文章,“在兩列的底部放置全角插入”,拖船35:3 (2014),第 255 頁。 (與所有電子形式的拖船文章一樣,本文有一年的“禁運期”,在此期間僅對拖船會員開放;它將在 2015 年深秋的某個時間向所有人開放。)

文章中提到的一個重要點是stfloats,中提到的包將表格*放在頁面底部? 僅適用於頁面第一頁。

答案2

我發現這最適合我,特別是在底部有兩列的圖形/表格第一的頁:

% 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*}

相關內容