초간단 oblivoir v2.1 사용법 x-ob-liv-oir 2015 년 4 월 요약 oblivoir 클래스 2.0 버전은그동안별도의브랜치로개발되어오던 xoblivoir 와 oblivoir 를통합하여완전히동일한클래스가되었다. 이문서는 oblivoir 즉 xoblivoir 를사용하는방법을간략히기술한다. 차례 제 1 절 oblivoir와 xoblivoir............................. 2 제 2 절 oblivoir와 memhangul........................... 3 제 3 절 한글드라이버................................ 3 제 4 절 옵션들.................................... 3 4.1 memoir 옵션................................ 3 4.2 한글드라이버의옵션........................... 4 4.3 oblivoir의옵션............................... 4 제 5 절.................... 8 5.1 ko.tx-utf 엔진............................... 8 5.2 X TX-ko, LuaTX-ko............................ 8 5.3 oblivoir의폰트설정명령 (\setko... 명령군 )............. 10 5.4 기정의폰트세트.............................. 16 5.5 폰트설정명령 (\setkor... 명령군 ).................. 17 5.6 xternallocation에관한첨언....................... 18 5.7 이탤릭, 기울임............................... 19 1
제 6 절 그밖의사항들................................ 20 6.1 판면설정을위한 fapapersize....................... 20 6.2 enumerate.................................. 20 6.3 graphicx, xcolor............................... 21 6.4 참조인용, 자동조사............................ 21 6.5 방점..................................... 22 6.6 chapter styles................................ 22 6.7 한글 pagestyle................................ 23 제 7 절 샘플문서................................... 23 제 8 절 첨언...................................... 23 2
oblivoir 와 xoblivoir 제 1 절 oblivoir 와 xoblivoir ko.tx 2.0 (2013/09/30) 의등장 1) 으로 ko.tx 패키지군은이전의텍엔진 2) 과새로운엔 진들, pdfl A TX, X L A TX, LuaL A TX 에모두일관성있게대응하도록변모하였다. 이러한 변화에발맞추어, 레거시텍엔진을위한 oblivoir와새로운텍엔진 ( 주로 X L A TX) 을 위한 xoblivoir로나누어져있던 oblivoir 클래스도체계를정비하여그구별을없애고동작하는엔진에따라동작방식을자동으로대응하도록고쳐졌다. 그러므로, 현재 oblivoir로작성하는문서는 ( 사용자가몇가지주의깊게엔진별동작을지정하기만하면 ) 모든텍엔진에서에러없이컴파일되고유사한결과를얻을수있게되었다. 3) 그동안 oblivoir는비교적복잡한길을거쳐왔다. 대강정리하면, (1) HL A TX ( 나중의 kotex-euc) 한글을 memoir에서쓰기위하여개발된 memhangul. 이스타일은더이상사용할수없다. (2) dhucs ( 현재의 kotex-utf) 유니코드한글을 memoir에서쓰기위하여개발된 memhangulucs (3) memhangul-ucs를바탕으로 memoir 클래스를통하여문서를만드는 fake-article (4) fake-article을 oblivoir로개명 (5) X TX 을위한 xoblivoir (6) xoblivoir에 LuaTX 지원의추가 (7) xoblivoir와 oblivoir를통합이와같이발전하여온것이고, 이제 oblivoir와 xoblivoir는완전히동일한클래스가되었다. 이문서는 oblivoir의고유한옵션과폰트설정방식에대해서만설명한다. 실제로 oblivoir를이용하여문서를작성할때는다음세층위의명령이모두사용가능하다. (1) memoir 명령 (2) 한글엔진 (ko.tx, X TX-ko, LuaTX-ko) 의명령 (3) oblivoir 명령이각각의명령에대한정보를얻으려면, memoir 매뉴얼 (texdoc memman), 한글패키지매뉴얼 ( 예컨대, texdoc kotex, texdoc xetexko) 을읽어야한다. 1) texdoc kotex 명령을내리면 kotexdoc 문서를읽을수있다. 2) 이른바 레거시텍 이라하는 TX, ε-tx, pdftx 을가리킨다. 3) 폰트사용방식의차이로인해 완전히동일한 결과를보증하지는않는다. 3
oblivoir 와 memhangul 위의두층위의문서에서설명하지않는 oblivoir 에대한정보를이문서에서얻을 수있다. 제 2 절 oblivoir 와 memhangul memhangul은 memoir를한글문서작성에사용할수있게하기위하여개발된스타일패키지이다. 원래독립된스타일로서개발되고유지되어왔지만, 현재는더이상독립적인스타일로사용되지않으며 oblivoir의핵심기능을정의한서브스타일로서만유지된다. 즉 oblivoir란 memhangul을이용하는한글문서작성클래스라고할수있다. 제 3 절 한글드라이버 oblivoir는현재실행되는텍엔진의종류에따라한글식자를위하여다음과같은한글 패키지를부른다. 이한글패키지들을 ( 편의상 ) oblivoir의한글드라이버라고한다. oblivoir 옵션 텍엔진 한글식자패키지 no option pdfl A TX ko.tx-utf no option X L A TX X TX-ko no option LuaL A TX LuaTX-ko 제 4 절 옵션들 4.1 memoir 옵션 원칙적으로 oblivoir는 memoir의모든옵션을동일한의미로다받아들인다. 여기에해당하는것으로다음과같은것이있다. 용지크기 a6paper, a5paper, a4paper, a3paper, b6paper, b5paper, b4paper, b3paper, mcrownvopaper, mlargecrownvopaper, mdemyvopaper, msmallroyalvopaper, dbillpaper, statementpaper, executivepaper, letterpaper, oldpaper, legalpaper, ledgerpaper, broadsheetpaper, pottvopaper, foolscapvopaper, crownvopaper, postvopaper, largecrownvopaper, largepostvopaper, smalldemyvopaper, demyvopaper, mediumvopaper, smallroyalvopaper, royalvopaper, superroyalvopaper, imperialvopaper. 본문기본글자크기 9pt, 10pt, 11pt, 12pt, 14pt, 17pt, 20pt, 25pt, 30pt, 36pt, 48pt, 60pt, *pt, extrafontsizes 4
옵션들 프린팅옵션 twoside, oneside, onecolumn, twocolumn, openright, openleft, openany, final, draft, ms, showtrims 기타옵션 leqno, fleqn, openbib, article, oldfontcommands 이상의옵션의의미와효과에대해서는 memoir 매뉴얼을읽어보라. 4.2 한글드라이버의옵션 한글식자를위하여로드되는패키지에는고유한옵션들이있다. oblivoir는다음과같은옵션을해당한글드라이버에넘겨준다. ko.tx-utf hangul, hanja, nojosa, nonfrench, finemath, strictcharcheck X TX-ko hangul, hanja, unfonts. 4) LuaTX-ko hangul, hanja, unfonts cjk-ko hangul, hanja, nojosa, usedotemph, usecjkt1font. usecjkt1font 옵션은 uset1font로입력해도받아들인다. 이가운데 [hangul] 옵션은사실상지정할필요가없다. hangul 옵션이주어져도예들들어절숫자의형식같은것은 oblivoir 방식이유지되기때문이다. 그러므로밑줄그은옵션만이 oblivoir에서의미가있다고할것이다. 4.3 oblivoir 의옵션 한글드라이버를지정하는옵션다음두옵션은한글드라이버를강제로지정하는옵션이다. 이옵션을쓸때는오직 pdfl A TX 만을실행한다는의미임을기억해두자. cjk cjk-ko패키지로한글을표시한다. 이패키지는 memhangul의일부기능과충돌할가능성이있으며 memhangul은원칙적으로 cjk-ko를지원하지않는다. 그러나한글표현만을위해서라면이옵션으로문서를작성할수있다. dhucs ko.tx-utf로한글을표현한다. pdfl A TX 에서디폴트이며 memhangul-ucs는이패키지를의도하고작성된것이다. 4) unfonts 옵션은 oblivoir 에서조금다르게동작하므로아래해당부분을참고할것. 5
옵션들 따라서, 다음옵션들은해당하는드라이버에서만의미를갖는다. strictcharcheck ko.tx-utf. 엄격한문자검사. finemath ko.tx-utf. 한글간격미세조정. nofinemath ko.tx-utf. finemath 기능을끔. usedotemph cjk-ko. \dotemph 명령사용가능. uset1font cjk-ko. 라틴문자도 nanumtype1으로찍음. interwordhwp ko.tx-utf. 단어간격을조금더넓게벌려준다. interworddefault ko.tx-utf. 단어간격을적당히벌려준다. 레거시텍과관련된옵션다음옵션은 pdftx 엔진또는 ε-tx 엔진에서만의미를갖는다. 이옵션이주어지고새로운텍엔진이운영될때는무시된다. dvips oblivoir로작성된문서를 latex dvips ps2pdf 순으로컴파일하려할때, 즉 pstricks를이용할때이옵션을주어야한다. 이옵션을준문서에대하여 pdfl A TX 을실행하면안된다. romanfixed 로마글자의크기와위치를미세조정하는옵션으로서 untype1을쓸때유용하다. 현재상황에서는의미가크지않음. 여러가지옵션다음은 oblivoir의고유한옵션들이다. chapter \chapter 명령을제대로쓸수있게해준다. 이옵션이없으면 oblivoir는 \section부터시작하는문서라고간주하고식자하지만 \chapter에서에러를내지는않는다. kosection \section에대하여 제 와 절 을찍어주도록하는옵션이다. amsmath amsmath.sty와 amssymb.sty를미리로드해주는옵션이다. adjustmath 한글문서의행간격이벌어짐으로인해서 display 수식의전후에너무많은공백이생기는것을막아준다. 6
옵션들 arabicfront \frontmatter 부분의페이지숫자를아라비아숫자로찍는다. 기본값은로만숫자. footnote 각주번호와숫자를한국식으로식자한다. figtabcapt 그림과표에 그림 1 과같은방식으로캡션을단다. gremph 글꼴대체강조방식을쓴다. 이것이기본값이다. itemph 기울인글꼴강조방식을쓴다. nonfrench nonfrenchspacing. hangulpagestyle 본문의페이지스타일을 hangul 양식으로한다. nokorean 사실상 memoir와거의같은상태가되게한다. 즉 pdf bookmark도만들지않으며한글도찍히지않는다. pdfbookmark nokorean 옵션을주면서도북마크는만들도록 hyperref을로드해주는역할을한다. nokorean 옵션이주어지지않을때는무의미함. 10.5pt 본문활자크기를 10.5pt로한다. quotespacing quote, quotation 환경의줄간격을 좁은줄간격 으로줄인다. nanum 나눔명조 / 나눔고딕트루타입글꼴을기본글꼴로사용하도록설정한다. hcr 함초롬 LVT 글꼴을기본글꼴로사용하도록설정한다. 다음옵션들은특별한상황에서의미를가지는것이다. lyxhyper LyX에서문서를작성할때 LyX이강제로 hyperref을로드하는기능과 oblivoir 의 hyperref 로드기능이충돌하는것을방지하기위한것이다. tocentry chapter 옵션과같이쓰여서 toc, lof의엔트리를조정해준다. microtype 이옵션이지정되면 pdftx 과 LuaTX 에서 microtype 패키지를불러온다. 다만 X TX 에서는문장부호끌어내기를위한 xetexko-hanging 스타일을로드한 다. subfigure subfig 패키지대신 subfigure 패키지를쓰기위해서충돌이있는코드하나를수정해준다. 7
옵션들 manualfontspec fontspec 패키지를자동으로로드하지않고사용자가직접설정하고자할때 fontspec fontspec 패키지에넘겨줄옵션을지정한다. xcolor xcolor 패키지에넘겨줄옵션을지정한다. hyperref hyperref 패키지에넘겨줄옵션을지정한다. moreverb moreverb 패키지를사용하려할때. 약간의충돌을해결해준다. preload \documentclass가시작되기전에로드해야할패키지를지정한다. preloadoption preload할때함께넘겨줄옵션을쓴다. faht, fawd 특별히 pdf 사이즈를조절할필요가있을때사용한다. 특히 flowfram 패키지를위해서필요하다. noreserveinserts ε-tx 의 reserveinserts 확장코드를억제한다. 일반적으로사용할필요없다. moreroom pdftx 에서용량부족으로에러가발생할때특별히지정한다. 다음옵션들은현재큰의미를지니지않는것들이다. 대부분 ko.tx 의발전과더불어 oblivoir에서특별히지정할필요가없어졌다. unfonts 은글꼴을사용하게한다. 레거시텍에서는 untype1이고새로운텍엔진에서는은글꼴트루타입이기본글꼴이된다. nounfonts 은글꼴을사용하지않게한다. 이것이디폴트이다. latinquote 따옴표를라틴글꼴에서찍도록강제하는옵션이었다. 작용도하지않는다. 현재는아무런 oldhangul 옛한글식자를위한옵션이었다. 현재는이옵션이없어도옛한글을잘 처리한다. nowinname 은글꼴을위해서마련된옵션이었으나현재는무의미하다. 8
제 5 절 5.1 ko.tx-utf 엔진 글꼴선택명령 \SetHangulFonts, \SetHanjaFonts, \SetAdhocFonts와더불어, gremph 옵션이주어졌을때 \SetGremphFonts 등을사용한다. 이명령의의미와용법에대해서는 ko.tx 사용설명서를참고하라. 아무런지정도없을경우 nanumtype1으로식자하고, 이것은 ko.tx-utf의디폴트상황과동일하다. gremph는 ko.tx-utf에서 \usepackage{dhucs-gremph} 를선언한경우와동일하게동작하므로별도로이스타일을얹을필요는없다. 5.2 X TX-ko, LuaTX-ko 한글드라이버들은라틴문자폰트와한글 / 한자폰트를분리하는것을기본으로 하고있다. 한글과라틴문자글꼴을분리하지않으려할경우, X TX-ko 명령인 \disablekoreanfonts를선언한다. 이렇게하면한글글꼴은라틴문자글꼴을따라가게된다. 즉, \setmainfont 등으로선언된글꼴이한글과라틴문자에동시에식자된다. 5) 라틴문자 라틴문자폰트는 fontspec 패키지의방식을따른다. 설정과사용에대해 서는 fontspec 패키지문서를참고하라. 매우방대하고훌륭한문서이다. \setmainfont{<font Name>} \setsansfont{...} \setmonofont{...} 이명령의옵션으로 [Ligatures=TeX] 을주면 ``, ---와같은입력이, 와같이나타난다. 대부분의텍소스에는이런이른바텍리거쳐를사용하는것이일반적이므로이옵션을지정하는것이좋다. 최신버전의 fontspec은이옵션을자동으로붙여주며, 아래설명할 \setkomainfont 등의명령을써도역시이옵션은자동으로붙는다. 만약 TeX Gyre Termes를라틴문자세리프글꼴로쓰려한다면, \setmainfont[ligatures=tex]{tex Gyre Termes} 와같이지정하면된다. 5) 이외에도한글-라틴문자글꼴의분리에따르는여러가지옵션정의에관련된 X TX-ko, LuaTX-ko 매크로가있으므로이에대해서는 X TX-ko, LuaTX-ko 매뉴얼을참고하라. 9
한글과한자 한글폰트는다음명령을사용하여설정한다. 자세한사항은 X TX-ko, LuaTX-ko 매뉴얼을참고하라. \setmainhangulfont[options]{fontname} \setsanshangulfont[options]{fontname} \setmonohangulfont[options]{fontname} \setmainhanjafont[options]{fontname} \setsanshanjafont[options]{fontname} \setmonohanjafont[options]{fontname} 이밖에특별한명령으로 LuaTX-ko 에는 fallbackfont 를위한명령이있다. \setmainfallbackfont \setsansfallbackfont \setmonofallbackfont X TX-ko에는이명령이없는대신 \newfontfamily\fallbackhanjafont를이용 하여 fallback 폰트를정의할수있다. 이기능은한자 ( 또는한글 / 한자 ) 글꼴에서도찾을수없는한자를식자하기위해서사용된다. 여기언급하지못한다양한명령들이제공되므로해당매뉴얼을반드시읽어보기 바란다. oblivoir에서도 X TX-ko, LuaTX-ko의폰트설정방식을그대로활용할수 있다. 임시폰트교체 문장을작성중에일시적으로폰트를교체하기위한명령으로 \adhochangulfont \adhochanjafont 이정의되어있다. 이명령들은 \setmainhangulfont 명령과같은방법으로사용한다. 또한, \hangulfontspec \hanjafontspec 명령도정의되어있으며, \fontspec 명령이적용되지않는한글과한자영역에효력을 발휘하므로필요한대로쓸수있다. 10
5.3 oblivoir 의폰트설정명령 (\setko... 명령군 ) 글꼴의이름 fontspec을이용하여글꼴을지정하는데있어서사용자가곤란을겪는문제중의하나가글꼴이름을지정하는것이다. 먼저특정폰트 ( 여기서는함초롬바탕LVT) 의글꼴이름을알아보기위해 otfinfo를사용해보자. 글꼴에대하여 otfinfo -i를실행하면다음과같은결과가나온다. $ otfinfo -i HANBatang-LVT.ttf Family: HCR Batang LVT Subfamily: Regular Full name: HCR Batang LVT PostScript name: HCRBatangLVT Mac font menu name: HCR Batang LVT Version: Version 1.940; KTS Build 20140401 Unique ID: YoonDesign: HCR Batang LVT: KTS 20140401 Description: The Korean TeX Society has added GSUB/GPOS/vhea/vmtx tables chiefly for old hangul rendering. Please contact http://www.ktug.org for these issues. Designer URL: http://yoonfont.co.kr/ Manufacturer: YoonDesign; The Korean TeX Society Vendor URL: http://yoonfont.co.kr/ Trademark: HCR Batang is a trademark of YoonDesign. Copyright: Copyright (c) 2010-2013 Hancom INC(HNC). All rights reserved. License URL: http://yoonfont.co.kr/ License Description: YoonDesign Inc. Vendor ID: YDI 이가운데, Full name 과 Postscript name 을사용하면된다. 6) 여기서 Family 는같은글꼴가족들이똑같은이름을가진다. 예를들어함초롬바탕LVT Bold체는 Family 가 HCR Batang LVT 이고 Subfamily가 Bold 로되어있다. 이렇게글꼴자체가글꼴가족에대한정보를가지고있으면 Family만지정해도자동으로 Bold 글꼴을글꼴가족에서찾는다 ( 모든한글글꼴이이렇지는않다 ). 예를들면 맑은고딕 은맥락에따라 맑은고딕 Bold 를글꼴가족으로인식한다. 맑은고딕의폰트정보중에서이름 (name) 과가족에해당하는부분을보면, $ otfinfo -i Malgun.ttf grep -e "name" -e "amily" Family: Malgun Gothic Subfamily: Regular 6) 2014년 6월현재, 대체로 X TX 은 Full name 을쓰면거의오류없이동작하고 LuaTX 은 Postscript name을선호하는듯하다. 이사정은 luaotfload나 X TX 엔진의개선에따라달라질수있다. 11
Full name: PostScript name: Malgun Gothic MalgunGothicRegular $ otfinfo -i Malgunbd.ttf grep -e "name" -e "amily" Family: Malgun Gothic Subfamily: Bold Full name: Malgun Gothic Bold PostScript name: MalgunGothicBold 그러므로 \setkosansfont(malgun Gothic) 이렇게만지정해도굵은글꼴이요구되는곳에서는 맑은고딕 Bold 를식자해준다. 폰트파일이름자체를쓸수도있다. 다만이경우는글꼴가족을지정하는것이아니므로 Bold나 Italic subfamily를자동으로인식하지못할수있다. 파일이름으로사용하려면확장자를붙여주면된다. 예컨대함초롬바탕 LVT라면 HANBatang-LVT.ttf 를그대로지정할수있다. 굳이 [xternallocation] 옵션을주지않아도확장자를붙이는것만으로 xternallocation과동일한결과를얻는다. 간단한폰트지정 X TX-ko, LuaTX-ko의기본한글 / 한자폰트지정명령인 \setmainhangulfont, \setsanshangulfont, \setmonohangulfont \setmainhanjafont, \setsanshanjafont, \setmonohanjafont 들이있으나, xoblivoir에서는약간다른방법 ( 더편리한?) 의폰트정의가가능하다. 이것은다음세명령으로이루어져있다. \setkomainfont[<basename>](<regular>)(<bold>)(<italic>) \setkosansfont[<basename>](<regular>)(<bold>)(<italic>) \setkomonofont[<basename>](<regular>)(<bold>)(<italic>) 이세명령을사용할때주의할점은중괄호 { } 가전혀쓰이지않는다는것이다. 입력상실수하기쉬우므로주의를요한다. 이러한폰트정의방식은 xoblivoir 클래스의원래의도인 되도록간단하게필요한것만 사용하자는데서나온것이다. 이후의설명은 \setkomainfont에대해서만한다. 다른두명령의사용법은동일하다. 12
\setkomainfont(font Name) 가장기본적인사용법은위와같다. 중괄호 { } 가아니라괄호 ( ) 를쓰고있음에 주의하라. 긴명령이명령의완전한형태는다음과같다. \setkomainfont[<namebase>]% (regular)% (bold)% (italic)% [hangul-feature]% [<hanja namebase>]% (hanja-regular)% (hanja-bold)% (hanja-italic)% [hanja-feature] 모두열개의옵션인자가올수있는데그가운데적어도하나의괄호옵션인자는반드시있어야한다. 그러므로그것 ( 첫번째 regular) 은 옵션 인자가아니라그냥인자이지만하나만을중괄호로묶는것이오히려코딩실수를증가시킬것으로보아서모두괄호인자를사용하도록했다. 괄호옵션인자를하나만준다면그것은한글 regular 글꼴이름으로받아들일것이다. 나머지아홉개의옵션인자는생략가능하다. 각옵션인자가생략가능하기때문에괄호나꺾쇠괄호사이에스페이스를남기지않도록주의해야한다. 예를들어 (fontname) [feature] 와같이적으면스페이스때문에옵션인자의파싱에실패할수있다. 기본적으로폰트이름은 ( ) 안에들어간다. 그리고미리오는 [ ] 는이름의공통부분을축약하기위한것이고끝에오는 [ ] 는속성을추가하기위한것이다. 이규칙이두번반복된다고생각하면되겠다. 한글과한자이가운데앞의다섯개는한글, 뒤의다섯개는한자관련설정이다. 그런데예컨대 \setkomainfont(fontname A)(Fontname B) 13
이렇게코딩해서 Fontname B가한자글꼴이되게하려해도두번째괄호옵션인자는한자 regular로받아들이는것이아니라한글 bold 이름으로인식할것이다. 따라서한글과한자사이에다음과같이경계를주면 \setkomainfont( 한글글꼴 )[]( 한자글꼴 ) 이제의도대로동작한다. 다음보기는한글을함초롬바탕LVT, 한자를맑은고딕으로선택하는예가된다. \setkomainfont(hcr Batang LVT)[](Malgun Gothic) 한자설정은한글설정이후에잇대어쓰는것으로한글설정방식과완전히똑같다. 실제로 \setkomainfont(a)[](b) 명령은 \setmainhangulfont{a} \setmainhanjafont{b} 와동일하기때문에굳이한자글꼴을따로지정하지않아도한자자면을가진한글글꼴을설정하면한자가잘표시된다. 그러나 NanumMyeongjo와같이한자자면이없는글꼴이라면한자글꼴을별도로선언해주어야할것이다. 한자폰트부분을선언하면 LuaTX-ko의 \hanjabyhanjafont를 1로만들어서선언된한자글꼴이우선적으로사용되도록하는효과가있다. 만약이를원하지않는다면 \hanjabyhanjafont 0을직접선언하도록하라. regular, bold, italic, bolditalic 글꼴가족이잘설정된폰트를사용한다면 bold 를굳이 지정할필요는없다. bold를지정하지않는것은이인자를주지않는것이다. () 와같이비운인자를주면 bold 글꼴에 regular 글꼴이름을사용하므로오히려 bold 효과가사라진다. bold 글꼴을아예별도로지정할때는글꼴이름을다적어준다. 한편, 예컨대 HCR Batang LVT 에대하여 HCR Batang LVT Bold가볼드체이름임을이용하여 \setkomainfont(hcr Batang LVT)(* Bold) 와같이지정하는방법도통한다. 함초롬바탕의 full name을쓰지않고 Postscript name을쓴다면, \setkomainfont(hcrbatanglvt)(*-bold) 와같이하면될것이다. 한글은이탤릭이없지만우사체를쓰는관행이있다. oblivoir 클래스옵션으로 [itemph] 를설정하면 italic을써야할곳에서기울어진서체를쓸수있다. 반면 [gremph] 로하면바로선서체를사용한다. [gremph] 가디폴트이며, 이경우이탤릭을써야할곳에다른폰트를사용하게할수있다. 예를들면 14
\setkomainfont(hcr Batang LVT)(* Bold)(NanumGothic) 이렇게하면이탤릭을쓸자리에나눔고딕이사용된다. 만약클래스옵션 [itemph] 가주어져있다면나눔고딕도기울어진다. 이탤릭글꼴을아예지정하지않으면 regular에지정된글꼴을그대로쓴다. [itemph] 라면이탤릭글꼴을지정하지않아도될것이고 [gremph] 라면적당한글꼴을적어주면될것이다. bolditalic의경우볼드체글꼴과이탤릭속성을사용한다. 즉 [gremph] 이면 bold 와 bolditalic이동일할것이고, [itemph] 라면 bold 글꼴이기울어진모양으로나온다. bolditalic 폰트를별도로지정하려한다면아래에서설명할 feature 추가방식으로다음과같이하여야한다. \setkomainfont(regular)(bold)(italic)[bolditalicfont={fontname}] base name 을사용하여공통부분줄여쓰기 서로다른다음세폰트가있다. KoPubBatang 체같은경우, 글꼴가족이 KoPubBatangLight.ttf KoPubBatangLight KoPubBatang Light KoPubBatangMedium.ttf KoPubBatangMedium KoPubBatang Medium KoPubBatangBold.ttf KoPubBatangBold KoPubBatang Bold 이글꼴은앞부분이름은같지만 Regular/Bold에대응하는글꼴로설정되어있지않다. 이러한상황에서앞의같은부분을 base name으로지정하고나머지부분을각각써넣는방식으로글꼴을지정할수있다. \setkomainfont[kopubbatang](light)(bold) 이것은 \setkomainfont(kopubbatanglight)(kopubbatangbold) 를줄여쓴것으로이해하면된다. 이탤릭폰트는지정하지않은보기인데, 원한다면세번째괄호옵션에써넣을수있다. 단, 이방법을쓸때는별표 (*) 를사용할수없다. 왜냐하면별표를사용하였을때 KoPubBatang* 이라는이름의폰트를찾으려할것이기때문이다. 예를들어, 서울시체를본문글꼴로하고바탕글꼴용한자는한양해서를쓰고싶다면 ( 실제해보면그다지어울리지않지만 ) 어떻게할수있을까? \setkomainfont[seoulhangang](l)(b)[](hyhaeseo) \setkosansfont[seoulnamsan](l)(b) 이방식에서주의할것은예컨대이탤릭글꼴로완전히이름이다른것을쓰고자한다면이런식으로할수없다는점이다. 15
feature 의추가 다. 네번째옵션인자는한글폰트를설정할때넘겨줄 feature 를지정한 \setkomainfont(hcrbatanglvt)[fakestretch=0.95,interhangul=-0.05em] 이것은장평을 95% 로하고자간을 5% 줄이는예이다. 여기에쓸수있는 feature에 관해서는 fontspec 설명서와 X TX-ko, LuaTX-ko 설명서를참고하라. 다섯번째옵션인자는한자의 base name이다. 네번째없이다섯번째만올수없으므로이것을설정하려면 \setkomainfont(hcrbatanglvt)[][kopubbatang](light) 와같이적어도네번째옵션인자를 ( 비우더라도 ) 지정해야할것이다. xternallocation 폰트를그이름 (full name 또는 Postscript name) 으로지정하지않고파일이름으로찾으려할때, 다음과같은방법이있다. 먼저옵션인자로 xternallocation을선언하는방법이다. 이때는확장자를지정하지않아도된다. \setkomainfont(hanbatang-lvt)[xternallocation] 파일이름을그대로적어주는방법이있다. 이렇게하면 xternallocation과똑같이동작한다. \setkomainfont(hanbatang-lvt.ttf) 파일이름으로호출하는경우별표 (*) 를이용하여이름의공통부분을줄여쓰는방법을사용할수없다. 그리고하나의글꼴군세트에서 이름으로찾기 와 파일이름으로찾기 를둘다사용할수없다. 즉다음과같이하는것은오류이다. \setkomainfont(hcrbatanglvt)(handotum-lvt.ttf) 그러나한글군 / 한자군에대해서는따로사용해도상관없다. 다음은한글은 Postscript 이름으로, 한자는파일이름으로찾게설정한경우이다. 오류없이동작한다. 그렇지만되도록일관성있게쓰는것이좋을것이다. \setkomainfont(hcrbatanglvt)(*-bold)[](uni_hsr.ttf) X TX 에서만되는 FakeBold를한자에만적용해보자면, \setkomainfont(hcrbatanglvt)(*-bold)[](uni_hsr.ttf)[autofakebold] 이렇게하면되는데, FakeBold는가급적사용하지않는것이좋겠다. 16
\setob... 명령라틴문자영역의폰트를설정하는데는 \setmainfont 등이그다지불편하지않기때문에그냥쓰면된다. 그러나 \setkomainfont의괄호 ( ) 를이용한폰트지정방식과유사하게쓰려하거나, base name을이용한축약기능을라틴문자정의에도쓰고싶다면다음처럼해도상관없다. \setobmainfont[<base name>](<rm>)(<bf>)(<it>)[features] 일반적으로는거의의미없는명령이나반은재미로마련해두었다. 5.4 기정의폰트세트 클래스옵션으로 [nanum] 을지정하면본문이나눔명조와나눔고딕으로식자된다. 7) 나눔명조에없는한자는나눔고딕에서가져다가찍는다. 클래스옵션 [hcr] 은함초롬 LVT 바탕, 함초롬 LVT 돋움글꼴을본문글꼴로 사용하게한다. [Script=Hangul] 을지정하여옛한글도잘처리하게한다. 8) 클래스옵션 [unfonts] 는은바탕, 은돋움, 은타자, 은그래픽을이용하여본문 글꼴을식자하게한다. [gremph] 일때바탕글꼴의이탤릭이은그래픽으로찍힌다. 또한이옵션은 [Script=Hangul] 을자동으로추가하여옛한글을은바탕으로잘 처리할수있게하였다. 은글꼴을옵션으로주지않고 \setkomainfont 명령으로 주려면다음과같이하는것이좋다. HCR 글꼴과달리자동으로폰트이름을보 고 [Script=Hangul] 을삽입하지않으므로 feature 옵션에지정한다. base name 을 UnBatang 으로하고확장자를잇대어쓰도록다음처럼정의할수있다. \setkomainfont[unbatang](.ttf)(bold.ttf)[script=hangul] 은그래픽을이탤릭대용으로쓰려한다면, \setkomainfont[un](batang.ttf)(batangbold.ttf)% (Graphic.ttf)[Script=Hangul] 이름의공통부분 (base name) 이 Un 밖에없으니까이렇게할수밖에없다. 은그래 픽은한자가나오지않는데필요하다면한자글꼴지정을잇대어하면된다. 실제로 해보자면, 7) LuaTX-ko는아무옵션이없어도 nanumtype1으로본문을표시하지만 X TX-ko에서는한글부분이비어나온다. 이옵션을주면 LuaTX-ko에서도 nanumtype1이아니라트루타입을쓰게된다. 8) \setkomainfont 명령의인자로 HCR 계열이지정되면이옵션이자동으로추가된다. 그밖의폰트에서옛한글을처리하게하려면 ( 예를들어 Malgun Gothic, UnBatang 등 ) feature 추가옵션으로 [Script=Hangul] 을지정할수있다. 17
\setkomainfont[un](batang.ttf)(batangbold.ttf)(graphic.ttf)% [Script=Hangul][UnBatang](.ttf)(Bold.ttf)(.ttf) 한자는은그래픽이아니라은바탕에서찾아서찍게한것이다. 5.5 폰트설정명령 (\setkor... 명령군 ) 이전버전의 oblivoir 에서는다음세명령을제공하였다. 이명령군도여전히유지되고 있는데그것은이전에작성된문서와의호환성을위해서이다. \setkormainfont(<bold>)(<italic>){<regular>} \setkorsansfont(<bold>)(<italic>){<regular>} \setkormonofont(<bold>)(<italic>){<regular>} 이명령들도한자지정을위하여확장가능하다. \setkormainfont(<bold>)(<italic>){<regular>}% (<HJbold>)(<HJitalic>){<HJregular>} 괄호옵션인자와중괄호인자가있다는점과 bold, italic, regular 의순서가 \setkomainfont 와다르다는데주의하라. 이전버전에비하여확장된기능은 feature 를줄수있다는 것이다. \setkormainfont(bold)(italic){regular}[feature] 이런식으로마지막옵션인자로 feature를지정하면유효하다. 한글과한자사이에는적어도괄호인자가하나는와야구별된다. \setkormainfont{hcr Batang LVT}(){HYhaeseo} 이때문에, 예를들어다음과같이하는것은오류이다. \setkormainfont{hcr Batang LVT}[]{HYhaeseo} 한글 feature를지정하고한자도지정하려면다음과같이해야한다. \setkormainfont{hcr Batang LVT}[...](){HYhaeseo} 한편, \setkormainfont 다음문자가 [ 이면 18
\setkormainfont[... ]{ 한글폰트이름 }[... ]{ 한자폰트이름 } 이것은앞의두인자에대하여 \setmainhangulfont를실행하고뒤의두인자에대하여 \setmainhanjafont를실행하게하는것으로이전버전과같다. 이명령은반드시 [ 로시작해야하며한글과한자의경계는 [ ] 로이루어지므로예컨대다음과같은코딩은오류를일으키지않는다. \setkormainfont[]{hangul}[]{hanja} 그리고 \setkormainfont 다음문자가 * 이면 xternallocation으로실행되는것도이전과같다. 파일이름을직접써넣는것이좋으므로거의필요없는명령이되었지만이전버전과의호환성을위하여이기능을유지시켜두었다. 단, \setkormainfont*() 형식과는쓸수없고 \setkormainfont*[] 형식으로만가능하게기능이제한되었다. 이명령은앞으로사용하지않기를바란다. \setkormainfont*{ 한글폰트이름 } 이상에서설명한 \setkor... 명령군대신새로도입한 \setko... 명령군을 사용하는것을권장한다. 사용법이훨씬간단해졌기때문이다. 9) 5.6 xternallocation 에관한첨언 폰트를호출하는이름은앞서설명한 otfinfo -i를사용하여확인할수있는 full name이나 Postscript name을사용하는것이가장좋다. 그러나부득이한경우파일이름으로사용하는것도가능하다. 이방식은특히폰트정보가이상한한글폰트를사용할때를위해서도필요하다. 굳이폰트캐싱을할필요가줄어들기도하므로, 이방식을선호하는경우도있다. TX Live를포함하여대부분의 TX 임플리멘테이션에서시스템의폰트폴더를 kpathsearch 로찾을수있으므로예컨대 Windows 폰트폴더의폰트들도이방식으로호출할수있다. 휴먼명조와같은글꼴은 xternallocation 방식으로 HMKMM.TTF를직접지시하는것이가장안전하다. 이때몇가지이슈가있다. 9) 내부적으로 \setkormainfont 명령들은 \setmainhangulfont 와 \setmainhanjafont 를부르고, \setkomainfont 명령들은 \setkormainfont 를부른다. 19
( 가 ) Windows에서는한글폰트파일이름을부를수없다. 모든폰트파일이름은라틴문자이어야만한다. 그이유는한글폰트파일이름이윈도우즈시스템인코딩인 CP949로불려져야하는데우리가작성하는 tex 원본파일은 UTF-8 인코딩이므로한글파일이름을호출하는것이윈도우즈에서원천적으로불가능하기때문이다. ( 나 ) 반면, 시스템로케일이 utf-8인매킨토시나리눅스에서는한글폰트파일이름도 xternallocation으로호출할수있을것이다. 리눅스에서는모르겠으나매킨토시에서는이것이가능했다. ( 다 ) texmf.cnf의 OSFONTDIR 변수를수작업으로수정해야하는경우가있다. 이것은폰트를 파일이름으로 찾게하기위해필요하다. Windows의 TX Live라면이것을잘설정하여주므로사용자가신경쓸것이없으나경우에따라이변수를설정해야할필요가있을수있다. 맥의경우, /usr/local/texlive/2015/texmf.cnf 파일을열어서 10) 다음내용을자신의환경에맞게써넣으면될것이다. OSFONTDIR = {/Library/Fonts;~/Library/Fonts;/System/Library/Fonts;} ( 라 ) xternallocation으로폰트를호출한다는것은 kpathsearch 를이용한다는것이다. 그러므로 texmf 트리아래에해당폰트를가져다두고 mktexlsr해도그폰트에접근할수있다. 5.7 이탤릭, 기울임 한글글꼴에이탤릭은없다. 그러므로강조를위해기울임으로이탤릭을대용하는것은그다지권장하지않는다. 예를들어 \setkomainfont(malgun Gothic)(* Bold)(Gungsuh) 으로지정했을때, 궁서체가이탤릭에해당하는폰트로설정된다. gremph가디폴트이므로궁서체는곧은모양으로찍힌다. 그러나디자인상의효과를위해서나다른이유에서이서체를기울이고싶은경우가있을것이다. 이경우 [itemph] 클래스옵션을지정한다. 그반대의경우는 [gremph] 이고이것이디폴트이다. 부분부분기울이려한다면 \hangulfontspec이나 \hanjafontspec, 즉 \adhochangulfont를이용하거나 \addhangulfontfeature 명령을써서조작할수있으므로별도로명령을만들어두거나하지않았다. 10) /usr/local/texlive/2015/texmf/web2c/texmf.cnf 를수정해서는안된다. 20
그밖의사항들 제 6 절 그밖의사항들 6.1 판면설정을위한 fapapersize memoir는 geometry 패키지와는다른방식의자체판면설정명령을가지고있다. oblivoir에서도기본적으로 memoir의판면설정방식을사용할수있다. 이와더불어, fapapersize라는패키지가 oblivoir에서제공된다. \usepackage{fapapersize} \usefapapersize{*,*,1in,*,1in,*} \usefapapersize는여섯개의콤마로연결된인자를취하는데, 첫번째, 두번째, 네번째, 여섯번째인자를별표 (*) 로대용할수있다. 이각각은 paperwidth paperheight left margin right margin upper margin lower margin 이다. 만약 \setheadfoot이라든가 marginnote 설정이필요하다면 \usefapapersize 명령앞에둔다. 적어도 left margin과 upper margin은반드시주어야한다는점과, 콤마사이에공백이없도록해야한다는점에주의하여야한다. 용지 (stock) 를설정하려면다음과같이한다. \usepackage[stock]{fapapersize} \usefastocksize{210mm,297mm} \usefapapersize{190mm,260mm,1in,*,1in,*} [showtrims] 옵션이주어져있다면 crop 선이함께나타날것이다. 6.2 enumerate enumerate 패키지의 enumerate 아이템항목머리설정은다음과같이한다. 엔진과 무관하게동작한다. 21
그밖의사항들 \begin{enumerate}[( ᄀ )] \tightlist \item 첫째항목 \item 둘째항목 \end{enumerate} ( ᄀ ) 첫째항목 ( ᄂ ) 둘째항목 paralist 에서위와같은방식으로항목머리를설정하려면 xob-paralist 를로드한다. 11) 6.3 graphicx, xcolor pdfl A TX 문서는 dvi 드라이버로어떤것이실행될지모르기때문에 graphicx 패키지의 로딩에주의를기울여야한다. 즉 pdftex \usepackage[<driver>]{graphicx} 과같이하는것이안전하다. 그러나대부분의경우 <driver> 를지정하지않아도된다. X TX 과 LuaTX 의경우는 graphicx 패키지에대한명시적인호출이없어도 png, jpg, pdf 그림을잘불러온다. 즉 oblivoir 가알맞게이패키지를호출하여준다. xe(lua)tex 6.4 참조인용, 자동조사 자동조사는 ko.tx 에서와동일하다. 한글 label은 X TX, LuaTX 에서사용할수있다. 레거시텍에서 label 자리에는한글을쓸수없다. pdftex pdftx: 소절 \ref{sec:font}\ 를보라. 소절제 5 절을보라. X TX, LuaTX: 소절 \ref{sec: 폰트 }\ 를보라. 소절제 5 절을보라. 11) 물론 paralist 자체는그이전에부르거나 xob-paralist 가스스로부르도록할것이고 xob-paralist 뒤에 paralist 만별도로다시부르면안된다. 22
그밖의사항들 6.5 방점 ko.tx 에서는 \dotemph 명령의방점 12) 을지원했다. X TX-ko와 LuaTX-ko에서도 이명령을사용할수있으며, oblivoir에서조금확장했다. 기본인 \dotemph 외에 \circemph \useremph 두개의명령을더쓸수있다. \dotemph와 \circemph의결과는다음과같다. \dotemph{ 우리나라 } \circemph{ 대한민국 } 우 리 나 라 대 한 민 국 \useremph 명령은이전버전과사용법이달라졌다. 2014 년 6 월이전 oblivoir 에서 \useremph는 pdftx 에서와 X TX, LuaTX 에서사용법이서로달랐고하나의선택 인자와두개의인자를요구하는등사용법이복잡했으나이것이모두다음과같이간단하게바뀌었다. \useremph[<raise>][<char>]{text} 한번 raise 값과 char 를주고난후에는그설정이보존된다. 즉 \useremph 를인자 없이쓰면이전에설정된것을따라가고, 이전에설정된것이없으면 \useremph 와 \circemph 가동일하다. \useremph{ 드러냄표 } \useremph[.3ex][\tiny ]{ 드러냄표 } 다시한번 \useremph{ 드러냄표 } 이번에는 \useremph[][\tiny+]{ 드러냄표 } 높이조절 \useremph[0ex]{ 드러냄표 } 이코드의결과는다음과같다 : 드 러 냄 표 드 러 냄 표 다시한번드 러 냄 표 이번에는드 + 러 + 냄 + 표 + 높이조절드 + 러 + 냄 + 표 + 편의를위하여 \useremphstarwhite( ) 와 \useremphstarblack( ) 명령을준 비해두었다. 이것은현재식자하는폰트에해당글자가있으면잘나타난다. \useremph[.5ex][\useremphstarwhite]{ 드러냄표 } 드러냄표 6.6 chapter styles 최근의 memoir 는상당히많은 chapter style 을정의하고있다. oblivoir 의 chapter style 정의방식은기본적으로 memoir 와동일하지만다음몇가지가다르다. 12) 가로쓰기에서는 점 을 글 자 위 에 찍 으 므 로 傍 점이아니라 上 점이맞겠지만관행적으로방점이라불러왔다. 이문장부호의정확한명칭은 드러냄표 이다. 23
샘플문서 \printchaptername 명령이무의미하다. \prechapternum 명령과 \postchapternum 명령이추가되었다. \hchaptertitlehead라는명령이사용된다. 이것은특히 running heading과관련이있다. KTUG 사설저장소를통하여설치할수있는 13) ob-chapstyles라는패키지에는몇가지 memoir chapter 스타일을 oblivoir화해둔것이있다. 이자체를그대로써도좋고이를자신만의스타일을만드는데참고하여도좋을것이다. 6.7 한글 pagestyle oblivoir 가추가적으로제공하는페이지스타일로 hangul 이있다. \pagestyle{hangul} 제 7 절 샘플문서 이작은안내서에더하여간단한 oblivoir 샘플문서를하나제공한다. 이문서에서여러가지 memoir 와 oblivoir의기능을살펴볼수있을것이다. oblivoir-test.tex 을컴파일해보고소스를검토해보시기바란다. 제 8 절 첨언 xoblivoir 사용이어느정도로쉬운가하면, 나는맨처음이문서를 LyX에서작성하여 export한다음, 두줄정도를지우고폰트설정명령만을써넣었다. 그래도훌륭한 X L A TX 문서가만들어졌던것이다. 이글을쓰기시작할때만해도 X TX-ko와 xoblivoir는완성되어있지않았다. 그 러나지금은일반적인문서를작성함에있어서불편이없을정도가되었다. 돌이켜보면, 한글을 TX 문서에사용할수있다는사실자체가신기했던그때로부터 20여년이흘렀다. 본격적인한글L A TX 시스템들이나오기시작했던 1990년대중반으로부터헤아려도십수년, 이기간동안한글이라는문자체계를식자하기위해지불해야했던엄청난노력과자원을생각하면금석지감이없지않다. 13) 사설저장소를등록할수없는상황이라면직접다운로드하라. http://ftp.ktug.org/ktug/ texlive/tlnet/archive/ 24
첨언 LuaTX 과 X TX 이라는유니코드텍엔진의등장은, 이러한모든노력들을일시에 해결해버렸다. 이제한글문자의식자는더이상문제가되지않는다. 그러나한글문서다운한글문서, 한글문서의타이포그래피의완성을위한길은아직도요원하다. 단순히 글자를찍는 문제가해결되었다고해서모든일이끝난것은아닌것이다. 단지더생산적인문제를더잘구현할수있는바탕이갖추어진것일뿐이라고생각한다. 25