KTUG 한국 텍 사용자 그룹

Menu

KTUG :: Q&A 마당

별행 수식과 위/아래문단의 간격을 제어하는 길이변수로 다음 네 가지가 있습니다.

  • \abovedisplayskip
  • \belowdisplayskip
  • \abovedisplayshortskip
  • \belowdisplayshortskip

문단과 별행 수식 사이에는 일정 길이를 띄우게 되지요. 위 변수는 신축성(glue)을 띄고 있어서 상황에 따라 기본값을 기준으로 조금씩 늘었다/줄었다 할 수 있습니다. 예를 들어

\abovedisplayskip=12pt plus 3pt minus 9pt

라면 기본으로 윗문단과 아래 별행수식의 간격을 기본적으로 12포인트를 띄우되 상황에 따라 최대 3포인트 더 늘이거나 최대 9포인트 짜부라뜨리게 할 수 있습니다.

TeX은, 윗문단의 글줄 길이와 아래 별행수식 길이가 중첩되지 않는 경우, 즉 윗문단의 글줄 길이(A), 아래 별행 수식의 길이(B)를 합한 길이(A+B)가 판면 가로 길이보다 작은 경우에는 간격을 좀 덜 띄우게 설계 되어 있습니다.

예를 들어 윗문단의 짧게 끝난 글줄의 나머지 공백 + 원래 띄워야 할 일정 길이 ==> 시각적으로 더 많이 띄워진 것처럼 보이게 됩니다. 이 경우 \abovedisplayskip 대신 \abovedisplayshortskip이 작동합니다.

\belowdisplayshortskip은 별행수식과 아랫문단의 길이를 띄우는 것이라 생각하면 되고요.

올려주신 예제는 이러한 것들이 복합적으로 어우러져 조판된 결과라고 보시면 될 것 같습니다. 그리고 별행 수식에 디스플레이 형태의 분수(fraction)가 포함되어 있는 경우에 더하여, 일부 그리스 문자 등 수식 기호의 height가 베이스라인 밑으로 처져 있는 경우도 고려해야합니다. 예를 들어 감마(γ) 같은 경우 원래부터 베이스라인 밑으로 처진 글자이고요.

그리고 \Big( ... \Big) 처럼 크게 식자된 괄호는 키가 크니까 그 지점부터 문단과의 길이를 계산할 것이고요.

===

위 네 가지 변수를 재정의할 수 있을 것입니다. 저도 해보진 않았지만 신축성(glue)을 아예 제거할 수 도 있을 것 같습니다. 그냥 \setlength\abovedisplayskip{10p}하면 윗문단과 아래 별행 수식의 길이를 무조건 10포인트 띄우겠지요.

그런데 위 네 가지 변수는 현재 본문 폰트의 "글자 크기"에 따라 달라질 수 있도록 이미 amsmath 패키지나 해당 클래스에 복잡하게 정의되어 있지 않나 싶습니다. 어지간하면 그냥 사용하시라고 권하고 싶습니다.

===

자세한 것은 Knuth 교수의 The TeXbook을 참고하시기 바랍니다.

오버리프에도 그럭저럭 설명이 되어있네요.
https://ko.overleaf.com/learn/latex/%5Cabovedisplayskip_and_related_commands

KTUG 한국 텍 사용자 그룹