无法保持浮点数顺序的 TeX 示例

无法保持浮点数顺序的 TeX 示例

我希望有一个包含文本、图形和表格的 TeX 示例,其中生成的 DVI 中的元素顺序与 TeX 文件中的顺序不同。

我正在寻找这个,以便看看不同的解决方案如何很好地解决这个问题。

答案1

以下示例是否产生了您想要的结果?

使用和浮动[p]上的选项意味着它们被推到它们自己的‘浮动’页面,因此“tablefigure生成的 DVI 中的元素序列与 TeX 文件中的元素序列不同。

\documentclass{article}

\usepackage{lipsum}

\begin{document}

\lipsum

\begin{table}[p]
 \centering
 \begin{tabular}{cc}
    1   &   2
 \end{tabular}
 \caption{Table}
\end{table}

\lipsum

\lipsum[1]

\begin{figure}[p]
 \centering
 \rule{20pt}{10pt}
 \caption{Figure}
\end{figure}

\lipsum[2]
\end{document}

答案2

你说:我希望有一个包含文本的 TeX 示例,...,其中生成的 DVI 中的元素序列与 TeX 文件中的元素序列不同。

尝试使用:

\def\swap#1#2{#2 #1}

\swap {sequence of elements} {in resulting DVI} is NOT as in the TeX file.
\bye

答案3

figure根据此处的评论以及 TeX FAQ 条目,以下最小示例会产生无序放置:两列浮点数无序

\documentclass[twocolumn]{article}
\usepackage[demo]{graphicx}% http://ctan.org/pkg/graphicx
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\begin{document}
\lipsum[1-3]
\begin{figure*}
  \centering\includegraphics{figure1}% This figure is on page 2
  \caption{First figure} \label{figure1}
\end{figure*}
Here is a reference to Figure~\ref{figure1}.
\lipsum[4-6]
\begin{figure}
  \centering\includegraphics{figure2}% This figure is on page 1
  \caption{Second figure} \label{figure2}
\end{figure}
Here is a reference to Figure~\ref{figure2}.
\lipsum[7-9]
\end{document}

数字不按顺序

lipsum提供虚拟文本,而demo包选项graphicx150pt允许用x黑色矩形替换所有图像(现有或不存在)100pt

图形(一般为浮动图形)不按顺序排列的原因是 TeX 为单列和双列浮动图形保留了单独的 FIFO 列表。由于第一个图形figure放在单列浮动图形列表中(使用带星号的版本*),而第二个图形放在双列浮动图形列表中但仍可容纳在页面上,因此会先排版。延迟的第一个图形figure会排版在第 2 页上,因为这是双列模式下跨多列浮动图形的默认行为。

解决方案是使用fixltx2e包裹它使用单个 FIFO 列表来处理延迟浮点数。

相关内容