1 4. Spacing within formulas. TEX 을이용해서수식을조판할때, TEX 은내부적으로수식내의간격을조절하는규칙을가지고있고, 그규칙대로간격을기계적으로자동조절해줍니다. 사실그규칙은단순하기그지없습니다. TEX 의수식내간격조절규칙에대해서는후반부에서자세히알아보겠습니다. 하지만아무리수식조판의달인이라는 TEX 이라하더라도수많은수식을우리의입맛에맞게처리할수있을까요? 그것도그단순한규칙을가지고모두자동적으로? 실제로 TEX 이규칙에의해기계적으로처리하다보니, 가끔은우리들이보기에약간어색하게보이는구석이있는것도사실입니다. 이런경우에수고스럽겠지만, 우리들이 TEX 을도와주어야합니다. TEX 도자신이우리들의도움을받아야한다는것을이미알고있기때문에친절하게도, 비교적넓은간격조절에이용되는 \quad 나 \qquad 말고도, 세밀한간격을조절할수있는도구들을몇가지미리마련해놓았습니다. 수식내의세밀한간격조절을위해서 TEX 이미리준비해두었다는것들은바로 thin spaces, medium spaces, thick spaces 라고불리는간격의기본단위들입니다. 이기본단위들을자세히알아보기에앞서, 도대체어떤것인지감을잡기위해서아래와같은수식을살펴봅시다. The basic elements of space that TEX puts into formulas The Fibonacci numbers satisfy F n = F n 1 + F n 2, n 2. 등호 = 와부등호 의앞뒤에있는간격이바로 thick spaces 이고, medium spaces 는 + 기호앞뒤에서찾아볼수있습니다. Thin spaces 는좀작아서알아보기힘듭니다. loglog 와 log log 의차이가눈에보이십니까? 그차이가바로 thin space 입니다. 한문단에서단어들사이의간격은바로이 thin space 의거의두배에해당하는간격입니다. 앞에서이미언급했듯이, TEX 은자신만의기본적인규칙을가지고 thin spaces, medium spaces, thick spaces 를이용하여수식간격을자동적으로조절합니다. 하지만우리들이원하기만한다면, 이간격들을직접넣을수도있습니다. 넣을때는다음과같은명령어 (contro sequence) 를이용합니다. \, thin space ( 보통 quad의 1/6); \> medium space ( 보통 quad의 2/9); \; thick space ( 보통 quad의 5/18); \! negative thin space ( 보통 quad의 1/6). 우리들이수식을조판할때, 대부분의경우는 TEX 에게모든것을맡기면됩니다. 우리들이직접위의네개의명령어를사용할기회는매우드물고, 그것도일단은 TEX 이만들어낸결과물을보고서넣을지말지를판단해야합니다. 비교적넒은간격을조절할때사용되는 \quad는수식의스타일이나그수식에사용되는수학폰트에따라서변하지않습니다. 하지만 thin spaces, medium spaces, thick spaces 들은수식의스타일이나폰트가커지거나작어지면그에맞추어그간격이좁아지거나넓어집니다 ; 이는네가지기본간격의단위들이수식간격조절을위해서특별히고안된 muglue 라는것을이용해서정의되기때문입니다. 사실 muglue 도특별한것이아니어서 muglue 를정할때도다른보통의 glue를정의하듯이하면됩니다. 다만, pt, cm 같은단위를이용하는것이아니라 math unit 라고하는 mu 만을이용해야한다는 제 18 장앞부분에서설명한내용이랍니다.
2 것이다릅니다. 예를들면, 부록 B 에서다음과같은정의를찾아볼수있습니다. \thinmuskip = 3mu \medmuskip = 4mu plus 2mu minus 4mu \thickmuskip = 5mu plus 5mu 위에서볼수있듯이, thin spaces 는 plain TEX 에서는늘어나거나줄어들지못하고, medium spaces 는조금늘어날수있고, 그간격이 0 이되도록줄어들수있습니다. Thick space 는많이늘어날수는있지만줄어들지는못합니다. 하나의 em은 family 2 (the math symbols family) 에서는 18 mu에해당합니다. 다른말로하면, \textfont 2는 display 와 text styles 에서 mu에대한 em 값을정합니다. \scriptfont 2은 em script 크기에대해서정하고, \scriptscriptfont 2는 scriptscript 크기에대해서 em을정합니다. em 은대문자 M 의크기에해당하는간격입니다. 수식내에 math glue 를넣고자할때는 \mskip muglue 와같은명령어를이용합니다. 예를들어, \mskip 9mu plus 2mu 는이명령어가사용되고있는시점에서쓰이고폰트의크기에맞는 em 크기의절반에해당하는간격을넣는데그간격은약간늘어날수도있습니다. 부록 B 를보면 \, 는 \mskip\thinmuskip 를뜻합니다. 비슷한맥락으로, \mkern 를사용할수도있는데, 이때는 \kern 이그러하듯이간격은늘어나거나줄어들지못합니다. \mkern18mu 는이명령어가사용되는시점의환경에서수평으로 em 에해당하는간격을넣어줍니다. TEX 은 \mskip 과 \mkern 는 mu 하고만어울리려고고집을피웁니다. 그래서 \hskip 과 \kern 는수식에서도사용될수있는명령어이지만, 그들에게 mu 로된길이단위를줄수없습니다. 미적분수식기호가들어있는수식에서 dx 와 dy 앞에 thin space 를넣으면보기가훨씬좋다고합니다. TEX 이이것을자동적으로해주면좋으련만, 해주지는않는답니다. 따라서그러한수식을조판할때에수식조판에능숙한분들이하듯이, 아래의예제처럼 \,] 를넣어주는센스를보여주시면좋습니다. Input $\int_0^\infty f(x)\,dx$ $y\,dx-x\,dy$ $dx\,dy=r\,dr\,d\theta$ $x\,dy/dx$ Output 0 f(x) dx y dx x dy dx dy = r dr dθ x dy/dx 위의마지막예에서볼수있듯이, 뒤에 \, 가없다는것도눈여겨두시기바랍니다. 아래와같은경우에도 \, 가필요없는데, x dt $$\int_1^x{dt\over t}$$ t 이는분수에서 dt 가분자로써홀로사용되었기때문입니다. 수식중에길이, 무게등물리적단위들이사용될때는반드시로마체로쓰여져야하고, 숫자와그단위사이에 thin space 가있어야합니다. $55\rm\,mi/hr$ 55 mi/hr $g=9.8\rm\,m/sec^2$ g = 9.8 m/sec 2 $\rm1\,ml=1.000028\,cc$ 1 ml = 1.000028 cc 1
3 수식에서계승 (factorial) 을나타낼때사용되는느낌표다음에오는문자가글자, 숫자혹은왼쪽괄호라면느낌표다음에도 thin space 가사용되어야합니다. $(2n)!/\bigl(n!\,(n+1)!\bigr)$ (2n)!/(n! (n + 1)!) $${52!\over13!\,13!\,26!}$$ 52! 13! 13! 26! 이러한경우들외에도, 우리들은종종수학기호들이너무촘촘하게묶인수식들을만나기도하고, 너무듬성듬성묶인수식도만나기도합니다. 이들은대개운없게도수학기호들사이에뭐가잘맞지않아서발생한경우입니다. 여러분이편집하고있는수식의결과를직접눈으로확인하기전에는이런결점을미리예측하는것은거의불가능합니다. 따라서일단 TEX 이조판한결과를보고필요에따라 \, 나 \! 를넣어주어세밀한조정을통해서보더멋진수식을조판해야합니다. 제곱근기호나여러개의적분기호가겹친경우가바로세밀한조정이필요한대표적인경우입니다. 아래의예들을한번살펴봅시다 : $\sqrt2\,x$ 2 x $\sqrt{\,\log x}$ log x $O\bigl(1/\sqrt n\,\bigr)$ O ( 1/ n ) $[\,0,1)$ [ 0, 1) $\log n\,(\log\log n)^2$ log n (log log n) 2 $x^2\!/2$ x 2 /2 $n/\!\log n$ n/log n $\Gamma_{\!2}+\Delta^{\!2}$ Γ 2 + 2 j $R_i{}^j{}_{\!kl}$ R i kl x y $\int_0^x\!\int_0^y df(u,v)$ df (u, v) 0 0 $$\int\!\!\!\int_d dx\,dy$$ dx dy 위의각각의경우에서 \, 나 \! 를빼버리면, 수식들이어딘가어색하게보일것입니다. 위의예에서 thin space 가필요한경우는공교롭게도수식기호들사이에궁합이잘안맞는수식들이함께쓰여서발생한경우가대부분입니다. 예를들어 $x^2/2$ 에사용된윗첨자는슬래쉬와궁합이맞지않는데, 그이유는윗첨자와슬래쉬사이에약간의공간이생기게되기때문입니다. (x 2 /2): 이경우에는 negative thin space 로그간격을조금좁히면됩니다. 마찬가지로, $\sqrt{\,\log x}$ 에 positive thin space 가사용된이유는제곱근기호와로그기오사이의궁합이문제가된경우로키가큰로그기호와제곱근기호가함께사용되면너무딱붙어서이상한기호처럼부여서로그기호앞에약간의간격이필요했기때문입니다. 그러나다음의두가지예는 TEX 이수학을잘알지못해서생기는경우로 TEX 으로써는어쩔수없는경우라서반드시여러분이 TEX 을도와주어야하는경우입니다. (1) 수식 $\log n(\log\log n)^2$ 에서, TEX 은왼쪽괄호앞에필요한약간의간격을넣지않았습니다. 왜냐하면, 수식 $\log n(x)$ 는로그기호와왼쪽괄호사이에간격이필요없는데, TEX 은이두수식을동일한경우라고판단하기때문입니다. (2) 수식 $n/\log n$ 에서, TEX 은 log 앞에넣지않아야할간격을자동으로넣어줍니다. 왜냐하면, TEX 의 D
4 입장에서보면슬래시는보토의수학기호로취급되기때문이고, 보통의수식기호와 log 같은연산자사이에약간의간견이들어간다는 TEX 의규칙때문에그렇습니다. 수식내에서간격조절을위해서 TEX 이사용하는규칙은매우단순합니다. 하나의수식은내부적으로 math list로변환되는데, 이 math list는여덟가지기본타입의원소로구성됩니다 : Ord (ordinary), Op (large operator), Bin (binary operation), Rel (relation), Open (opening), Close (closing), Punct (punctuation), and Inner (a delimited subformula). 다른종류의원소들, 예를들면, \overline, \mathaccent, \vcenter 들은모두 Ord 타입이고, 분수는 Inner 타입입니다. 아래에나오는표는이웃하는원소들사이에어떤간격을넣어야하는지를결정할때 TEX 이참조하는표입니다. Right atom Ord Op Bin Rel Open Close Punct Inner Ord 0 1 (2) (3) 0 0 0 (1) Op 1 1 * (3) 0 0 0 (1) Bin (2) (2) * * (2) * * (2) Left Rel (3) (3) * 0 (3) 0 0 (3) atom Open 0 0 * 0 0 0 0 0 Close 0 1 (2) (3) 0 0 0 (1) Punct (1) (1) * (1) (1) (1) (1) (1) Inner (1) 1 (2) (3) (1) 0 (1) (1) A formula is converted to a math list as described at the end of Chapter 17 여기서 0, 1, 2, 3 은각각 no space, thin space, medium space, thick space 를나타냅니다. 표에서괄호안에있는것은간격은그간격은 display 와 text styles 에서만사용될수있다는뜻입니다. 예를들면, Rel 행과 Rel 열에나오는대부분의간격은 (3) 입니다 ; 이는 = 와같은관계기호앞, 뒤에는 thick spaces 가나온다는의미입니다. 이간격이 subscripts 에나올때는아무런간격도들어가지않습니다. 표를자세히살펴보면, 일부는 * 로나타납니다 ; 이경우는결코발생하지않는경우를나타냅니다. 왜냐하면이항연산자앞과뒤에는그연산자에의미적으로맞는변수나수학기호가나와야지, 엉뚱한기호가나오지않는다는의미입니다. 부록 G 는 math list 가어떻게 horizontal list 로변환되는지자세히설명합니다 ; 이변환은당연히 TEX 이수학모드 (math mode) 에서빠져나오자마자끝나고, 바로그순간 inter-atomic 간격조절이들어갑니다. 예를들어, 아래와같은 displayed 수식표현은 $$x+y=\max\{x,y\}+\min\{x,y\}$$ 다음과같은원소들로변환되는데, x + y = max { x, y } + min { x, y } 이는각각 Ord, Bin, Ord, Rel, Op, Open, Ord, Punct, Ord, Close, Bin, Op, Open, Ord, Punct, Ord, Close 타입입니다. 따라서, 앞의표에의해서간격은다음과같이주어지고, Ord \> Bin \> Ord \; Rel \; Op Open Ord Punct \, Ord Close \> Bin \> Op Open Ord Punct \, Ord Close 최종결과는다음과같습니다. x + y = max{x, y} + min{x, y} 즉, x + y = max{x, y} + min{x, y}.
5 이예제는아랫첨자나윗첨자를포함하고있지는않지만, 아랫첨자나윗첨자들은그저단순히간격없이각원소들이서로서로붙어서어울립니다. Plain TEX macro인 \bigl, \bigr, \bigm, \big는모두동일한수학기호를만들어내는데, 이들사이의유일한차이점은이들이서로다른타입에속하기때문에서로다른간격을만들어낸다는것입니다 : \bigl은 Open, \bigr은 Close, \bigm은 Rel, \big은 Ord 원소를만들어냅니다. 반면에, 수식이 \left 와 \right 사이에나타날때, 그수식은 Inner 타입이됩니다. 따라서 \left 와 \right로둘러싸인수식은 \bigl 와 \bigr로둘러쌓일때보다그수식과괄호사이에좀더넓은간격을갖게됩니다. 예를들어, Inner (from \left) 앞에나오는 Ord는 thin space 간격을갖게되지만, Open (from \bigl) 앞에나오는 Ord는그렇지않습니다. TEX 의간격조절규칙은가끔엉터리일때가있습니다. 수식내에 와 \ 가사용될때가그때입니다. 이는 와 가괄호 (delimiters) 가아닌 Ord 타입으로취급되기때문입니다. 예를들어, 다음수식을살펴봅시다. $ -x = +x $ x = + x $\left -x\right =\left +x\right $ x = +x $\lfloor-x\rfloor=-\lceil+x\rceil$ x = +x 첫번째경우간격조절이잘못되어있습니다. 왜냐하면 TEX 이 를 Ord 타입으로취급해서 와 x 를더하는수식으로판단하기때문입니다. 두번째예에서첫번째경우의잘못을 \left 와 \right를사용해서바로잡았습니다. 세번째예는다른 delimiter들에대해서는앞에서와같은교정이필요없다는것을보여줍니다. TEX 은이미세번째예에서사용된 delimiter들이 opening 인지 closing인지를알고있기때문입니다. 영어 delimiter 를적당히번역할단어를몰라서그냥단순히 괄호 혹은그에상응하는수학기호로번역합니다.