LaTeX 테이블 포지셔닝


98

단락, 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...

나는 그것도 시도했지만 효과가 없었습니다.
Jared Russell

6
선택적 인수의 (전체) 문자 순서는 효과가 없습니다.
Will Robertson

@Gacek, 나는 Will Robertson이 옳다고 확신합니다. mintaka.sdsu.edu/GF/bibliog/latex/floats.html 에 따르면 , "[t] 괄호 안의 인수는 LaTeX에 플로트를 넣을 수있는 위치를 알려줍니다. 순서는 중요하지 않습니다."
Waldir Leoncio 2013

이것은 약간의 관련이 있지만 알아 두는 것이 중요하다고 생각합니다. [h] 옵션은 단독으로 사용해서는 안되며, 사실 최신 LaTeX 버전은 자동으로 [ht]로 대체합니다. 그것은 당신의 문제 일 수도 있습니다. 이 가이드 의 섹션 17.2 "그림 배치"에서 자세한 내용을 읽을 수 있습니다 .
vauhochzett

@Gacek [h!]이 올바른 버전입니다. 그것은에 동등이다 [H]. 둘 다 float패키지가 필요합니다 .
winklerrr

답변:


171

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

서문에서 :

\usepackage{float}
\restylefloat{table}

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


22
아마도 "h"가 아니라 "H"를 사용해야한다는 점을 강조 할 가치가 있습니다. 그것이 내가 직접 관찰 한 것입니다.
bikashg

@bikashg은 H동일합니다 h!(매개 변수에 대한 자세한 내용은 내 대답 확인을 위해 여기를 )
winklerrr

1
누군가 조직 모드를 사용하는 경우이를 맨 위에 놓으십시오. #+LATEX_HEADER: \usepackage{float} #+LATEX_HEADER: \restylefloat{table} 그런 다음 #+CAPTION: A table #+NAME: tab:table-label #+ATTR_LATEX: :placement [H] :center t <<actual table content>> 주석에서 잘못된 개행 형식을 실례하십시오.
Gaurav

23

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

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

\usepackage{placeins}

추가 전후 :

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

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


이것은 정말 유용한 패키지입니다. 공유해 주셔서 감사합니다!
John David

11

테이블 포지셔닝

사용 가능한 매개 변수

다음 매개 변수를 사용하여 테이블을 쉽게 배치 할 수 있습니다.

  • h여기 에 플로트를 배치 합니다 . 즉, 소스 텍스트에서 발생하는 것과 거의 같은 지점에 배치합니다 (하지만 정확히 그 지점은 아님).
  • t페이지 상단 에 위치 합니다.
  • b페이지 하단 에 위치 합니다.
  • p특별한 착용 페이지 에만 수레.
  • ! LaTeX가 "좋은"부동 위치를 결정하는 데 사용하는 내부 매개 변수를 재정의합니다.
  • HLATEX 코드의 정확한 위치 에 플로트를 배치 합니다. float 패키지가 필요합니다. 이것은 h!.

정확한 위치 지정을 위해 H(또는 h!)을 사용 float하려면 서문에서 패키지를 올바르게 설정 했는지 확인하십시오 .

\usepackage{float}
\restylefloat{table}

테이블을 동일한 페이지, 정확한 위치 또는 최소한 페이지 상단 (라텍스 엔진에 가장 적합한 위치)에 배치하려면 다음 ht같이 매개 변수를 사용하십시오 .

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

출처 : Overleaf.com


7

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

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

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


1
떠 다니는 동작은 공간을 떠나는 것을 피하지만 그림을 멀리 이동하면 독자의 삶이 더 어려워집니다. 이러한 이유로 중요한 디자이너 인 Edward Tufte는 텍스트와 그림 / 표를 통합 할 것을 권장합니다. 그의 출판 된 책에서 그는 숫자로 표를 언급하지 않습니다. 표가 바로 거기에 있기 때문에 "표 1 참조"는 나타나지 않습니다. 그는 문장 중간에 올바른 위치에 배치합니다. 그것은 테이블을 배치하기 위해 더 많은 작업을 수행하지만 독자에게는 더 적은 작업을 의미한다고 생각합니다.
Blaisorblade

@Blaisorblade — 물론, 다른 주목할만한 예가 있지만, 이런 방식으로 텍스트를 작성하는 것이 대부분의 사람들에게 수레를 사용하는 것보다 훨씬 더 어렵습니다. 달성 할 수없는 최적의 책 디자인을 99 % 폐기하는 것입니다. 내 대답에서 내린 요점을 고려하십시오. '표가 텍스트 아래에 맞지 않으면 어떻게됩니까?' 시나리오에서는 재 설계하거나 재 작성해야하며 이는 많은 상황에서 유지 될 수 없습니다.
Will Robertson

1
글쎄요, 우리는 최적이 무엇인지에 동의합니다. 그리고 예, 대부분은 거의 달성 할 수 없습니다. 일상 생활에서 나는 또한 보통 수레를 고수합니다. 그러나 나는 작은 표와 그림을 인라인으로 가지고 있으며 꽤 잘 작동합니다 (최종 버전을 확인하면 최대 20 페이지의 문서가 있기 때문에 쉽습니다). 난 그냥 좋은 일 이라기보다는 합리적인 트레이드 오프로 떠 다니는 걸 봅니다 :-).
Blaisorblade 2012-07-28

[htbp]아무것도 아닌 설정의 차이점은 무엇입니까 ?
Waldir Leoncio 2013

나를 위해 적어도 @WaldirLeoncio하는 모든 기본 설정에서 아무 것도 [ht]아닌[htbp]
MrJonas

7

다음은 Wikibooks 의 쉬운 해결책입니다 .

placeins 패키지는 \ FloatBarrier 명령을 제공합니다.이 명령은 플로트가 위로 이동하는 것을 방지하는 데 사용할 수 있습니다.

나는 \FloatBarrier모든 테이블 앞뒤에 놓았습니다 .


4

두 개의 테이블을 나란히 놓고 싶다면 다음을 사용할 수 있습니다. ( float패키지가로드 된 상태에서)

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

각각 고유 한 캡션과 번호가 있습니다. 또 다른 옵션은 subfigure패키지입니다.


3

이것을 서문에 추가하고 필요에 따라 값을 조정할 수 있습니다.

 %------------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이 흥미로울 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.