Располагать таблицы латекса


у меня есть документ LaTeX, который содержит абзац, за которым следуют 4 таблицы, за которыми следует второй абзац. Я хочу, чтобы 4 стола между двумя пунктами, из того, что я читать означает, что я должен использовать опцию [h] после начала среды таблицы (например,begin{table}[h]).

С помощью этого первые две таблицы появляются после пункта 1, как и ожидалось, однако пункт 2 затем отображается с последними двумя таблицами, появляющимися на следующей странице. Как я могу получить таблицы, чтобы появиться в правильном месте?

Я пробовал различные вещи, чтобы исправить положение, например, используя [h!] однако это, кажется, не имеет никакого эффекта. Используя clearpage после того, как таблицы имеют желаемый эффект, заставляя таблицы появляться перед вторым абзацем, но затем он оставляет последние две таблицы на своей странице с нагрузками белого пространства, когда я предпочел бы, чтобы второй абзац начинался сразу после таблиц.

Paragraph 1...

begin{table}[h]
    table1...
end{table}

begin{table}[h]
   table2...
end{table}[h]
...

Paragraph 2...
6 70

6 ответов:

после того, как я еще немного погуглил, я наткнулся на float пакет, который позволяет предотвратить LaTeX от изменения положения таблиц.

В преамбуле:

\usepackage{float}
\restylefloat{table}

затем для каждой таблицы вы можете использовать H вариант размещения (например,\begin{table}[H]), чтобы убедиться, что он не перемещается.

Это сработало для меня:

начиная с usepackage определения включают в себя:

\usepackage{placeins}

и до и после добавить:

\FloatBarrier
\begin{table}[h]
    \begin{tabular}{llll}
      .... 
    \end{tabular}
\end{table}
\FloatBarrier

это помещает таблицу именно там, где вы хотите в тексте.

что произойдет, если текст плюс таблицы плюс текст не помещается на одной странице? При попытке принудительного набора таким образом, вы, скорее всего, в конечном итоге с страницами, которые работают слишком коротко; т. е. потому, что таблица не может по умолчанию сломать страницу, она будет перенесена на следующую, и оставить пробел на странице раньше. Вы заметите, что вы никогда не увидите этого в опубликованной книге.

плавающее поведение-это хорошо! Я рекомендую использовать [htbp] Как Настройки по умолчанию для всех таблицы и рисунки до тех пор, пока ваш документ не будет завершен; только тогда следует подумать о точной настройке их точного размещения.

П. С. прочитала часто задаваемые вопросы; большинство других ответов здесь являются частичными комбинациями советов, данных там.

вот простое решение, от Wikibooks:

пакет placeins предоставляет команду \FloatBarrier, которая может использоваться для предотвращения перемещения по ней поплавков.

Я просто ставлю \FloatBarrier до и после каждой таблицы.

вы можете добавить это в преамбулу и настроить значения по мере необходимости:

 %------------begin Float Adjustment
%two column float page must be 90% full
\renewcommand\dblfloatpagefraction{.90}
%two column top float can cover up to 80% of page
\renewcommand\dbltopfraction{.80}
%float page must be 90% full
\renewcommand\floatpagefraction{.90}
%top float can cover up to 80% of page
\renewcommand\topfraction{.80}
%bottom float can cover up to 80% of page
\renewcommand\bottomfraction{.80}
%at least 10% of a normal page must contain text
\renewcommand\textfraction{.1}
%separation between floats and text
\setlength\dbltextfloatsep{9pt plus 5pt minus 3pt }
%separation between two column floats and text
\setlength\textfloatsep{4pt plus 2pt minus 1.5pt}

в частности, может представлять интерес \ floatpagefraction.

Если вы хотите иметь две таблицы рядом друг с другом можно использовать: (с float пакет загружен)

\begin{table}[H]
 \begin{minipage}{.5\textwidth}
  %first table
 \end{minipage}
 \begin{minipage}{.5\textwidth}
  %second table
 \end{minipage}
\end{table}

каждый из них будет иметь собственный заголовок и номер. Другой вариант:subfigure пакета.