KTUGFaq

KTUG FAQ

로그인:
비밀번호:
가입
Among the lucky, you are the chosen one.
FrontPage › 떠다니는개체
Floating Objects. Floats.
<!> 부동체(浮動體)라 번역하기도 한다. 떠다니는 개체lshort-kr에서 사용된 역어이다.

목차

1 떠다니는 개체란?
1.1 떠다니는 개체에 대한 몇 가지 기본 지식
1.2 사용방법
1.3 떠다니는 개체의 캡션
1.4 떠다니는 개체의 위치 지정자
2 떠다니는 개체에 관련된 명령
3 떠다니는 개체에 관련된 변수(parameters)
4 떠다니는 개체 내의 각주
5 떠다니는 개체의 위치 지정하기(2)
5.1 flafter, placeins
5.2 afterpage
6 떠다니는 개체에 관련된 LaTeX 패키지
7 Q & A

1 떠다니는 개체란?

떠다니는 개체는 본문의 흐름을 방해하지 않으면서 표(Table)와 그림(Figure)을 배치하기 위한 조판 상의 도구이다. 표에 대해서는 Table환경을, 그림에 대해서는 Figure환경을, 그리고 난외주에 대해서는 MarginalNote를 보라.

1.1 떠다니는 개체에 대한 몇 가지 기본 지식

  1. 떠다니는 개체는 그림이나 표가 놓일 위치를 LaTeX에게 맡기는 것이다. 그러므로 자신이 예상하던 위치에 그림이나 표가 놓이지 않을 수 있다.
  2. 떠다니는 개체와 관련된 많은 파라미터를 조절하면 그림이나 표가 놓이는 위치를 자신의 의도에 맞게 개선할 수 있지만, 처음사용자에게 이 많은 파라미터를 모두 이해하고 최적값을 선택하는 것은 거의 불가능한 일이다. 그러므로,
  3. 떠다니는 개체의 위치 선정이 마음에 들지 않고 어떻게 해서든 그림이나 표의 위치를 자신이 제어하고 싶다면, 떠다니는 개체를 쓰지 않아야 한다.
  4. figure와 table은 캡션의 이름을 Figure 또는 Table로 적어주고 list of figures와 list of tables 어느 쪽 목록에 열거할 것인가만 결정해주며 내부적으로는 거의 동일하다. 즉, figure든 table이든 그림이나 표(tabular)나 어떤 것이든 와도 된다.
  5. 2단 편집 시에는 여러 가지 제약이 따른다. 예를 들면 페이지의 하단(b)에 그림을 놓을 수 없다. (이것을 가능하게 해주는 패키지도 물론 있다.)

1.2 사용방법

떠다니는 개체를 쓰는 방법은 다음과 같다.
 \begin{table}[위치지정자]  % 또는 figure
 %.....여기에 내용이 온다....
 \caption{캡션}\label{레이블}
 \end{table}

<!> 2단 편집(다단편집)에서 두 단에 모두 걸치는 큰 그림이나 표(심지어 긴 수식을 floating object로 만들어)를 넣으려면 figure*, table* 등 별표붙은 환경을 쓰면 된다. 예를 들어
 \begin{table*}[!t]
 ...
 \end{table*}
로 쓰면 된다. See KTUGOperate:17023

1.3 떠다니는 개체의 캡션

1.4 떠다니는 개체의 위치 지정자


위치지정자 개체의 위치
h here.
t top. 페이지의 윗부분.
b bottom. 페이지의 아래부분.
p page. 그림과 표로만 이루어진 특별한 페이지
! float 위치관련 내부변수 값을 모두 무시하게 함

  • <!> 떠다니는 개체의 위치는 LaTeX이 스스로 결정하도록 하는 것이 가장 바람직하다.
  • <!> [h] 위치지정자는 이 하나만 쓰이지 않는다. LaTeX에서 위치지정자의 기본값은 tbp이고, [h]만 쓰더라도 htbp인 것과 동일하게 동작한다. 그러므로, 어떤 그림이나 표를 굳이 특정 위치에 반드시 위치하게 하고 싶다면, 그 그림이나 표를 floating 시키지 않아야 한다. 그림이나 표를 floating 시키지 않으려면 Figure환경이나 Table환경 안에 넣으면 안 된다. \caption 명령은 오직 floating 환경 안에서만 작동하지만, 플로팅시키지 않은 개체에 마치 캡션이 있는 것처럼 캡션을 붙이는 방법이 있다. [http]GFAQ no. 50을 참고하라.

2 떠다니는 개체에 관련된 명령


  1. \clearpage\cleardoublepage

  2. \suppressfloats
    현재 페이지에는 플로트가 위치하지 못하도록 한다.

3 떠다니는 개체에 관련된 변수(parameters)


  1. topnumber, bottomnumber, totalnumber (counter)

  2. \topfraction, \bottomfraction 또는 \dbltopfraction

  3. \textfraction

  4. dbltopnumber (counter)

  5. \floatpagefraction 또는 \dblfloatpagefraction
    전체 페이지의 어느 정도의 비율이 넘으면 floatpage를 만들 것인가를 결정하는 변수이다. 표준 클래스에서는 0.5로 설정되어 있다. 이 값을 설정할 때는 \topfraction의 값을 \floatpagefraction보다 크게 주는 것이 안전하다. 예를 들면,
     \renewcommand\topfraction{.88}
     \renewcommand\floatpagefraction{.75}
    


  6. \floatsep, \textfloatsep, \intextsep, \dblfloatsep, \dbltextfloatsep
    \floatsep : 페이지 머리에서 top 위치의 float까지 수직길이 추가분 \textfloatsep : float가 top/bottom에 올 때 텍스트까지의 수직길이 추가분 \intextsep : float가 here에 올 때 텍스트와의 길이 추가분

  7. \topfigrule, \botfigrule, \dblfigrule


4 떠다니는 개체 내의 각주

5 떠다니는 개체의 위치 지정하기(2)

5.1 flafter, placeins

flafter 패키지는 떠다니는 개체가 소스 상의 위치보다 앞쪽(이전)에 놓이지 않도록 해줍니다.
\usepackage{flafter}
placeins 패키지는 예컨대 \section과 같은 장절명령 앞쪽이나 페이지 처음에 떠다니는 개체가 놓이지 않도록 막아줍니다. section 명령을 기준으로 항상 그 뒤쪽에 놓이도록 하려면,
\usepackage[section]{placeins}

5.2 afterpage

이 소절에서는 afterpage를 이용한 기법을 소개합니다.
\usepackage{afterpage}
다음 코드는, 페이지가 나누어지는 시점에 \clearpage를 실행합니다. \clearpage의 동작은 현재까지 큐에 들어 있던 float들을 모두 flush하는 것입니다. 따라서 반드시 이 그림이 다음 페이지가 시작되기 전에 위치하게 하고 싶을 때 쓸 수 있습니다.
\begin{figure}
....
\end{figure}
\afterpage{\clearpage}

주의할 것은, 이 패키지의 동작이 완전히 안정적이지는 않다는 것입니다. 원본에서 떠다니는 개체의 위치가 마침 페이지가 나누이는 바로 그 위치였다면 이 개체는 *유실*됩니다. 로그에서 “이것은 LaTeX의 버그일 수 있다”는 메시지를 만나게 될 것입니다. 이럴 경우는 소스에서 해당 부분의 위치를 조금 바꾸어 보는 방법밖에는 별다른 수가 없습니다. 여러 가지 이유에서 이 패키지의 명령을 범용으로 사용하는 것은 한계가 있으므로 주의해서 사용하시기 바랍니다.

6 떠다니는 개체에 관련된 LaTeX 패키지


  1. float 패키지
  2. -floatflt 패키지- (obsolete)

  3. subfigure 패키지, subfig 패키지
  4. subfloat 패키지
  5. -here 패키지-

  6. afterpage 패키지

  7. morefloats 패키지

  8. endfloat 패키지

  9. placeins 패키지
  10. picinpar 패키지

  11. wrapfig 패키지

  12. -ccaption 패키지- (obsolete)

  13. hvfloat 패키지

  14. dpfloat 패키지

  15. rotfloat 패키지

  16. floatrow 패키지

7 Q & A


Q. 여러 개의 figure를 연속해서 넣었더니 "too many unprocessed floats" 에러가 발생합니다.
A. figure, table, maginal note 등 floats는 일단 queue에 들어간 후 flush되는 방식으로 처리되는데, LaTeX이 처리할 수 있는 float queue는 18개를 넘을 수 없습니다. 그러므로 처리되지 않은 float가 18개를 넘을 때 위와 같은 에러가 발생합니다. 참고. 오류처리. 이럴 때는 중간중간 적당한 곳에 \clearpage를 두어서 float들을 강제로 flush하게 하는 방법이 있습니다. 또, morefloats 패키지를 쓰면 36개까지 이 값을 증가시킬 수 있습니다.

Q. 떠다니는 개체를 문단의 일부로 포함하고 싶습니다.
A. 그림의 경우 [http]GFAQ no. 43에 방법이 나와 있습니다. floatflt 패키지를 이용하십시오. 그림과 한글 문단의 경우에는 picins 또는 picinpar 패키지가 잘 될 때도 있습니다. (TeXLive 2008에는 floatflt와 picins가 포함되어 있지 않으므로 wrapfig나 hvfloat, floatrow 패키지를 사용하는 것이 좋습니다.)

Q. table, figure, maginpar 이외의 떠다니는 개체를 임의로 만들 수는 없나요?
A. algorithm 패키지는 algorithm 기술을 위한 임의의 float 환경을 만들 수 있게 해주고 있습니다. 이 기능은 float 패키지를 이용한 것입니다. 그러므로 float 패키지를 사용하면 새로운 float를 만들 수 있습니다. 다음은 float의 스타일 패키지 문서에 나오는 예 가운데 하나입니다. 이 이외에도 다양한 설정을 할 수 있으므로, texdoc float 를 실행하여 패키지 문서를 참고하시기 바랍니다.
\floatstyle{ruled}
\newfloat{Program}{tbp}{lop}[section]

\listof{Program}{List of Programs}

\begin{Program}
\begin{verbatim}
... program codes ...
\end{verbatim}
\caption{...caption...}
\end{Program}




^
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2010-10-03 22:59:09
Processing time 0.0589 sec