KTUG 한국 텍 사용자 그룹

Menu

KTUG :: 마당정보글 › 첫 문단만 들여쓰기 배제하기

DohyunKim | 2011.04.15 13:22:55 | 메뉴 건너뛰기 쓰기

LaTeX 에서 section 따위를 쓰면 다음 첫 문단은 들여쓰기 하지 않는다. 들여쓰기 하는 이유는 직전 문단과 구별하기 위해선데 직전 문단이 절 제목이고 게다가 수직 간격도 들어가 있어서 문단 구별의 실익이 없는 것이다.

 

가끔 절 제목 다음이 아니더라도 한 문단만 들여쓰기를 배제하고 싶을 때가 있다. 가령 글의 흐름이 크게 바뀌는 지점이라 수직 간격을 주었기에 다음 한 문단만 들여쓰기 하지 않고 두 번째 문단부터 들여쓰기 하고 싶다면 어떻게 할까? 여기 간단한 해법이 있다.

\def\threestarbreak{%
  \bigbreak\centerline{*\hskip.1\linewidth *\hskip.1\linewidth *}\bigbreak
  \everypar{{\setbox0\lastbox}\everypar{}}%
}

별표 세 개를 일정 간격으로 늘어놓아 글의 흐름을 구분하는 명령이다. 위 코드의 세번째 줄에 해답이 담겨있다.

 

\everypar 는 문단을 시작할 때마다 실행되는 토큰열을 선언한다. {\setbox0\lastbox} 는 lastbox—문단 시작시 직전 박스는 indent 박스다—를 지워버리는 일을 한다(크누스의 The TeXbook 에 이런 트릭이 소개되어 있다). 따라서 들여쓰기가 취소된다.

 

그런데 그후 즉시 \everypar{} 를 선언했으므로 두 번째 문단부터는 들여쓰기가 그대로 살아있게 된다.

댓글 쓰기

목록

KTUG 한국 텍 사용자 그룹