KTUGFaq

KTUG FAQ

"demerits"에 댓글 더하기

로그인:
비밀번호:
가입
You will meet an important person who will help you advance professionally.
FrontPage › LittleTree/ReadingTeXbook/2006-03
Mar 19, 2006
demerits
Submitted by 작은나무 @ 03-19 [09:30 am]
97~98쪽: 이제 문단에서 줄들을 만들어내는 과정을 어느정도 정리할 때가 된 것 같습니다. 지난 두번에 걸쳐서 쓴 내용을 정리하면, TeX은 각 줄의 badness가 주어진 tolerance를 넘지 않도록 하면서 breakpoint를 설정합니다. 이 과정을 좀 더 수학적으로 표현하면, 각 줄들은 demerit라는 것을 가지고 있는데, 각 줄들의 demerits의 합이 최소가 되도록 줄들을 만듭니다. demerit들의 총합이 최소가 될때, 그 문단의 줄들이 보기 좋은가 봅니다. 그렇다면 demerit가 무엇이냐?, 저도 이러고 싶지는 않습니다만, 어쩔 수 없이 수식을 좀 써야겠습니다. 각 줄의 demerit는 아래의 수식과 같이 계산합니다. (TeX에서 수식을 조판하는 일은 언제나 즐겁죠. :) )

demerit.jpg


d는 demerit, b는 badness, p는 penalty, 마지막으로 l은 linepenalty를 나타냅니다. linepenalty는 말그대로 line이 갖는 penalty입니다. 그래서 이 값을 크게하면, TeX으로 하여금 문단에서 가능한한 최소 갯수의 줄들을 만들어 내도록 힘들게 한답니다. Plain TeX에서의 linepenalty의 기본 값은 10입니다. 예를들어, 어떤 줄의 badness가 20이고, breakpoint가 Glue에서 일어났다면, penalty가 없는 것이므로, 그 줄의 demerit는 위 식에 의해서 (10+20)^2=900이 됩니다. 이 말에서 볼때, penalty는 줄에 기본적으로 주어지는 값이 아닌, 어떤 독립적인 값인가 봅니다.(Glue에 대해서는 언제 언급할 날이 있을것입니다. 그 놈이 아주 집착이 강한 놈이거든요.)

마지막으로 Knuth는 우리들이 수학을 싫어하는 것을 잘 알아서 위 수식을 알아 듣기 쉬운 말로 설명을 합니다. 즉, 처음에 언급한 각 줄들의 demerits의 합이 최소가 되도록 줄들을 만든다는 의미는 basness들과 penalty들의 제곱의 합을 최소화하는 것과 같은 의미인데, 이 뜻은 그 문단의 모든 breakpoint들에 걸쳐서, 어떤 한 줄의 최대 badness 또한 최소화 한다는 의미입니다. badness가 최소화 된다는 것은 그만큼 우리 눈에 보기 좋다는 것이니까요. 이상으로 문단에서 줄들을 만들어 내는 과정을 살펴봤습니다. 좀 어려운 면도 있었지만, 재미있었습니다. TeX을 좀 더 알게되어 TeX과 점점 친해져 가는 느낌입니다. TeX! 우리 좀 더 친해집시다. :) "텍도없는 소리 말라고?, 아직 멀었다구?" :(

이 곳 위키에서는 TeX으로 수식 조판이 되는 것으로 알고있는데요, 실제로도 몇번 사용해 봤고요. 그런데, 위 수식을 시도했더니, 수식 중간에 이상한 ##Blog가는 것이 삽입되면서, 수식이 박살이 났습니다. "미리보기"할 때도 세줄의 수식을 감싸는 왼쪽 괄호"{"가 안나왔지만 그것은 그런대로 참을만하여 (저의 \tolerance=3000 쯤 되나봅니다. :) ) "저장"을 눌렀더니, 이상하게 나오더군요. 그래서 그러고 싶지는 않았지만, 그림으로 대체했습니다. 아마도 제가 LaTeX에서는 수식 조판을 해 본일이 없어서, 실수가 있었을지도 모릅니다. :) -- Anonymous 2006-03-19 09:50:43

저 혼자 텍북을 읽을 때보다 훨씬 재미있습니다. 사실 저는 이 책을 편식했습니다. 대충 둘러보고 작년에서야 16~19장을 집중적으로 읽었거든요. 의미도 모르는 채 익숙했던 것들 조금씩 와 닿는 것 같습니다. ---badness, demerit 등. 참, TeX에서 수식을 입력하는 것은 언제나 즐겁다는 것에 공감합니다. ^^ -- Progress 2006-03-20 13:39:13
이름:

서명하지 않기
 

^
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2006-06-06 22:54:57
Processing time 0.0372 sec