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}

예

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

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