IT story

LaTeX 테이블 포지셔닝

hot-time 2020. 9. 15. 19:22
반응형

LaTeX 테이블 포지셔닝


단락, 4 개의 테이블, 두 번째 단락이 포함 된 LaTeX 문서가 있습니다. 나는 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...

더 많은 인터넷 검색을 한 후 LaTeX가 테이블의 위치를 ​​변경하는 것을 방지 할 수 있는 float 패키지를 발견했습니다 .

서문에서 :

\usepackage{float}
\restylefloat{table}

그런 다음 각 테이블에 대해 H배치 옵션 (예 :)을 사용하여 위치 \begin{table}[H]가 변경되지 않도록 할 수 있습니다.


이것은 나를 위해 일했습니다.

usepackage정의 시작 부분 에는 다음이 포함됩니다.

\usepackage{placeins}

추가 전후 :

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

이렇게하면 텍스트에서 원하는 위치에 테이블이 정확하게 배치됩니다.


텍스트와 표, 텍스트가 한 페이지에 맞지 않으면 어떻게됩니까? 이런 식으로 조판을 강요하면 너무 짧은 페이지로 끝날 가능성이 큽니다. 즉, 테이블은 기본적으로 페이지를 넘을 수 없기 때문에 다음 페이지로 밀려 나고 이전 페이지에 공백을 남깁니다. 출판 된 책에서는 이것을 결코 볼 수 없다는 것을 알게 될 것입니다.

떠 다니는 행동은 좋은 것입니다! [htbp]문서가 완성 될 때까지 모든 표와 그림에 대한 기본 설정으로 사용 하는 것이 좋습니다 . 그런 다음 정확한 배치를 미세 조정하는 것에 대해 생각해야합니다.

PS FAQ 읽기 ; 여기에있는 대부분의 다른 답변은 거기에 제공된 조언의 부분 조합입니다.


Here's an easy solution, from Wikibooks:

The placeins package provides the command \FloatBarrier, which can be used to prevent floats from being moved over it.

I just put \FloatBarrier before and after every table.


If you want to have two tables next to each other you can use: (with float package loaded)

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

Each one will have own caption and number. Another option is subfigure package.


Table Positioning

Available Parameters

A table can easily be placed with the following parameters:

  • h Place the float here, i.e., approximately at the same point it occurs in the source text (however, not exactly at the spot)
  • t Position at the top of the page.
  • b Position at the bottom of the page.
  • p Put on a special page for floats only.
  • ! Override internal parameters LaTeX uses for determining "good" float positions.
  • H Places the float at precisely the location in the LATEX code. Requires the float package. This is somewhat equivalent to h!.

If you want to make use of H (or h!) for an exact positioning, make sure you got the float package correctly set up in the preamble:

\usepackage{float}
\restylefloat{table}

Example

If you want to place the table at the same page, either at the exact place or at least at the top of the page (what fits best for the latex engine), use the parameters h and t like this:

\begin{table}[ht]
    table content ...
\end{table}

Sources: Overleaf.com


You may want to add this to your preamble, and adjust the values as necessary:

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

Particularly, the \floatpagefraction may be of interest.

참고URL : https://stackoverflow.com/questions/1673942/latex-table-positioning

반응형