워드프로세서사용자를위한 L A TEX version 1.0.7 Guido Gonzato, Ph.D. guido.gonzato@univr.it Università di Verona (Italy) Direzione Informatica 김강수 ( 옮김 ) 2010년 9월 14일 2010년 9월 18일 요약 L A TEX 텍스트처리는워드프로세서를사용하는것에비해상당한장점이있다. 그러나초보자들은그일을어떻게해야하는지, 필요한특정기능을어디서찾아야하는지알아내기가어렵다. 이안내서는워드프로세서와 L A TEX 조판을비교함으로써워드프로세서에서 L A TEX 으로이행하는것을도와주려한다. 주요워드프로세서기능을열거하고각각이 L A TEX 에서어떻게실현되는가를보여준다. 많은예를첨부하였다. 역자는이문서에두가지로개입하였다. 본문을충실히번역하는이외에역자의의견을방주형태로추가하였다. 그리고일부소절이나단락을추가한것도있다. 원칙적으로원문은손상하지않았으며교정하거나코멘트할것이있으면모두위와같은형식에의해서했다. 본문에추가한단락과소절은그사실을방주에서밝혔다. 차례 1 서론.................................................. 1 1.1 기본사항............................................ 1 1.2 명심할사항........................................... 4 2 File 메뉴............................................. 4 2.1 File/New...................................... 5 2.2 File/Save As............................ 5 2.3 File/Save As Template......................... 6 2.4 File/Import.................................... 6 2.5 File/Page Setup................................ 6 2.6 File/Printer Setup............................... 8 2.7 File/Print Preview............................. 8 2.8 File/Print....................................... 8 i
2.9 File/Versions................................... 8 3 Edit 메뉴............................................. 9 3.1 Edit/Autotext.................................. 9 4 Insert 메뉴............................................ 9 4.1 Insert/Breaks.................................... 9 4.2 Insert/Enumerated List............................ 10 4.3 Insert/Special Character............................ 11 4.4 Insert/Formula.................................... 13 4.5 Insert/Footnote................................... 14 4.6 Insert/Indices..................................... 15 4.7 Insert/Vertical and Horizontal Space................... 15 4.8 Insert/Tabs....................................... 16 4.9 Insert/Cross Reference............................. 16 4.10 Insert/Margin Notes................................. 16 4.11 Insert/Frame.................................... 17 4.12 Insert/Figure..................................... 17 4.13 Insert/Shapes.................................. 19 4.14 Insert/Line....................................... 21 4.15 Insert/Hyperlink................................ 21 4.16 Insert/Comment.................................. 22 5 Format 메뉴........................................... 22 5.1 Format/Line Spacing............................... 22 5.2 Format/Character.................................. 22 5.3 Format/Paragraph.................................. 26 5.4 Format/Paragraph Border and Shade................ 29 5.5 Format/Colour.................................... 30 5.6 Format/Columns................................... 30 5.7 Format/Styles................................... 31 6 Table 메뉴............................................. 31 6.1 표의행간격........................................... 33 6.2 괘선두께............................................ 34 6.3 숫자정렬............................................ 34 6.4 slashbox 패키지......................................... 35 6.5 LATEX 테이블로데이터가져오기................................ 35 6.6 그밖에재미난것........................................ 36 7 Tools 메뉴............................................ 37 7.1 Tools/Mail Merges................................ 37 7.2 Tools/Labels................................. 37 7.3 Tools/Default Language............................ 38 7.4 Tools/Hyphenation.............................. 39 7.5 Tools/Spell Check................................ 40 8 Help 메뉴........................................... 40 9 마지막으로.............................................. 40 ii
A 문서본보기.............................................. 41 표차례 1 Emacs, Vim, Jed의유용한단축키................................ 3 2 몇가지특수문자를입력하는방법................................. 12 3 글꼴속성.............................................. 23 4 폰트사이즈............................................. 23 5 일반적인폰트패밀리........................................ 25 6 표준적인 LATEX 환경........................................ 27 7 A sample table........................................... 32 그림차례 1 A smiley representing the author of this guide......................... 17 2 A Gnuplot graph.......................................... 18 3 Xfig로만든드로잉......................................... 20 4 sidewaystable과 tabularx의예.................................. 33 A.1 Book template........................................... 41 A.2 Report template.......................................... 41 A.3 Letter template........................................... 42 A.4 How to write a notice....................................... 42 A.5 How to write a poster....................................... 43 A.6 한글문서샘플........................................... 44 iii
서론 1 1 서론 시작하기전에이안내서가 L A TEX 입문서가 는점을말해두고자한다. 이문서를읽고있다는것은적어도 L A TEX 이무엇인지, 기본명령은어떤것이있는지를알고있다는뜻이다. 이안내서에서내가설명하려하는것은 L A TEX 을사용함으로써어떻게워드프로세서를효과적으로대체할수있는가하는것이다. 워드프로세서는오늘날사무자동화에서 킬러프로그램 이다. 익숙한 WYSIWYG 인터페이스를가지고있기때문에 L A TEX 에비해더쉬운것으로여겨진다. 평균적인사무보조원은꽤짧은시간에그사용법을익힌다. 문제는이물건이날이갈수록느려지고비대해지고 1 버그투성이가되고심심하면죽고비싸고바이러스에감염되고서로간에호환불가능하게되어간다는것이다. 그기본출력품질에대해서는말하지않겠다. L A TEX 은훌륭한대인이다. 그렇지만당신이작성하려하는것이즉흥적이고비구조적인문서라면무슨방법이있는걸까. 요약하면이따금워드프로세서와같은기능을쓰고싶은데그걸 L A TEX 으로하고싶을때가있다. 한때좋아했던 :-) 워드프로세서로했던작업을 L A TEX 으로어떻게하면되는지알수있다면좋을것이다. 이것이내가이짧은안내서를쓰게된동기이다. 이미말한대로나는 L A TEX 의기본을알고있는사람을전제로하고있다. 만약당신이진정한초심자라면 http://www.ctan. org/starter.html로가서 The (Not So) Short Introduction to L A TEX 2ε 를읽어볼것을권한다. 그외의좋은처음시작문서로 http://en.wikibooks.org/wiki/latex/ 이있다. 이어지는절에서어떤가상의워드프로세서를상정하고그메뉴와메뉴항목을살펴보면서각각에대응하는 L A TEX 방식을찾아보겠다. 자신이 L A TEX 순수주의자라서이런식의접근이지겹게느껴진다면 맘상하지말고여기서접어라. LATEX 2ε 1.1 기본사항 워드프로세서의기능가운데많은부분은에디터의몫이다. 그밖에 L A TEX 명령에의해 구현되는것이있고패키지 (packages) 에의해이루어지는것이있다. 패키지란 L A TEX 을 확장하여새로운명령과환경을제공하는매크로모음이다. 수많은패키지가존재하는데 유일한문제는그게어디에있는지, 무슨일을하는지, 그리고사용하려면어떤절차를 거쳐야하는지를알아야한다는것이다. 패키지에대해서는 1.1 절에서더다룬다. 패키지를포함하여그밖의 TEX 에관련된자료들은 CTAN(the Comprehensive TeX Archive Network) 을구성하는여러사이트를통해이용할수있다. http://www.ctan. org 사이트를이미소개했다. 이사이트는여러곳의미러사이트를가지고있다. 이제부터 CTAN: 이라하면 자신이선호하는 CTAN 미러사이트의 TEX 디렉터리 를가리키는것 으로하겠다. 예를들면자신의플랫폼에적합한 L A TEX 을얻기위해서는 CTAN://systems \usepackage (.sty) ( 여기서는 http://www.tex.ac.uk/tex-archive/systems/) 를접속하면된다. KTUG CTAN 문서작성을위해서는좋은텍스트에디터가필요하다. 초심자에게더좋은것은 L A TEX 1 옛날에나는나의학위논문을 128k 램을가진 Z80 가정용컴퓨터에서작성했다. WordStar 워드프로세서와나의논문이단면 CP/M 부팅가능 720k 플로피디스크한장에다들어가고도남는공간이많았다.
2 서론 shell, 즉소스를작성하고미리보기를할수있는등 L A TEX 에필요한기능을갖춘에디터이다. 아래에나열된프로그램은추천할만한것이다. 이모두가 Free/Open Source 소프트웨어들이다. Texmaker (multiplatform): http://www.xm1math.net/texmaker/index.html TeXworks (multiplatform): http://tug.org/texworks/ LyX, an almost-wysiwyg L A TEX editor (multiplatform): http://www.lyx.org/ TeXShop (Mac OS X): http://www.uoregon.edu/~koch/texshop/ TeXnicCenter (Windows): http://www.texniccenter.org/ Windows 를위한 L A TEX 용편집기의완전한목록은 http://home.arcor.de/itsfd/ texwin 에서찾을수있다. 매킨토시상의 L A TEX 에관한정보를얻으려면 http://www. esm.psu.edu/mac-tex/ 을참고하라. 에디터가지원하는기능 L A TEX 은조판기일뿐이다. 잘라붙이기, 찾기와바꾸기등은에디터에게맡겨진다. 표 1은 geek들에게유명한편집기인 GNU emacs와 vim의기본키바인딩과 Borland IDE 키바인딩을적용한 jed의주요명령을요약한것이다. 패키지추가 Ubuntu LATEX ko.tex TeX Live Ubuntu Windows MacTeX TeX Live tlmgr Windows TeX Live %USERPROFILE%\texmf mktexlsr Windows %HOME% 아래의사항은 TeX Live에적용된다. TeX Live는대부분의 GNU/Linux 배포판에포함되어있다. MacTeX에도적용될것이지만내가직접경험해보지는못했다. MiKTEX( 아마가장유명한 Windows 텍시스템 ) 을위한안내는그뒤에이어진다. 방대한분량의 L A TEX 패키지들이기본으로지원된다. 예를들면 Ubuntu는많은 texlive-* 패키지를제공한다. 만약지원되지않는패키지를사용해야한다면아래와같이하라. 1. 다음과같은디렉터리구조를만든다. $ mkdir -p ~/texmf/tex/latex 이디렉터리아래새로운패키지를인스톨한다. 2. 가까운 CTAN 미러사이트에서패키지를 ( 대부분 zip-압축디렉터리이다 ) 내려받는다. 예컨대 foo.zip이라하자.
기본사항 3 Action Emacs Vim Jed command mode Alt -X Esc Alt -X insert mode n/a i a o O n/a line editor mode n/a : n/a 파일조작 file operations open file Ctrl -X Ctrl -F :e Ctrl -KE insert file Ctrl -Xi :r Ctrl -KR save file Ctrl -X Ctrl -S :w Ctrl -KD save as Ctrl -X Ctrl -W name :w name Ctrl -KS close file Ctrl -XK :q Ctrl -KQ change buffer Ctrl -XB bn Ctrl -KN undo Ctrl -XU u Ctrl -U redo Ctrl - Ctrl -R Ctrl -G Ctrl -U exit Ctrl -X Ctrl -C :qa! Ctrl -KX 이동 moving around word left Alt -B b Ctrl -A word right Alt -F w Ctrl -F start of line Ctrl -A 0 Ctrl -QS end of line Ctrl -E $ Ctrl -QD page up Alt -V Ctrl -U Ctrl -R page down Ctrl -V Ctrl -D Ctrl -C start of buffer Alt -< 1G Ctrl -QR end of buffer Alt -> G Ctrl -QC line n. Alt -G n. n.g Ctrl -QI 삭제 deleting character left Ctrl -H X BS character right Ctrl -D x Alt -G word left Alt -DEL db Alt -BS word right Alt -D dw Ctrl -T end of line Ctrl -K d$ Ctrl -QY line Ctrl -A Ctrl -K dd Ctrl -Y 찾기와바꾸기 search & replace search Ctrl -S text /text Ctrl -QS replace Alt -% :s/old/new/g Ctrl -QA 선택영역 blocks start selection Ctrl - v Ctrl -KB cut Ctrl -W D Ctrl -KY copy Alt -W Y Ctrl -KH paste Ctrl -Y P Ctrl -KC 표 1: Emacs, Vim, Jed 의유용한단축키
4 File 메뉴 3. 적당한곳에압축을푼다. $ mkdir ~/texmf/tex/latex/foo $ mv foo.zip ~/texmf/tex/latex/foo $ cd ~/texmf/tex/latex/foo ; unzip foo.zip 4. 만약.sty 파일이없으면 latex foo.ins 또는 latex foo.dtx 를실행하여만들 어내게한다. 5. texhash /texmf 명령을실행한다. MiKTeX 2.4 MiKTeX 2.8 2.9 %APPDATA% %PROGRAMDATA% texmf localtexmf TeX roots MiKTEX 에새로운패키지를추가하려면 \latex\newpackage를 C:\localtexmf\tex\ 아래만들고거기에필요한파일을가져다둔다. 앞서와같은과정을진행한다음 MiKTeX Options를실행하여 Refresh now 버튼을클릭한다. 또는 initexmf -u 명령을실행한다. 그것으로되었다. 일단패키지가설치되면 documentclass 선언이후에다음한줄추가하는것으로자신의문서에사용하게할수있다. \usepackage{foo} 1.2 명심할사항 시작하기전에, 다음사항을꼭기억하자. 1. 문서의 에익숙해져야한다. part, chapter, section와같은구조적요소에신경을쓰자. 학술문서를작성하는경우가아니라도이것은중요하다. 2. L A TEX 은확실히포매팅파라미터로문서를난잡하게만드는것을기피하게한다. 에너무신경쓰지말고 에집중하라. 스스로확신을가지고위의황금률을적용해보라. 그러면인쇄된문서가신기하게도전문가가만든것처럼보일것이다. 다시강조하거니와진정한 L A TEX 초심자가되어공부해볼것을권장한다. 이규칙은대부분의문서에적용된다. 그러나주로비구조적인문서 ( 회람, 쪽지등 ) 를작성해야하고그방법을꼭찾고싶다면, 이안내서를계속읽어보기로하자. 2 File 메뉴 이메뉴에속하는항목중많은것이자명하게 L A TEX 과는별상관이없다. File/Open, File/Save, File/Close 등은에디터에서해줄일들이다.
File/New 5 2.1 File/New 빈문서에해당하는 L A TEX 소스는다음과같다. \documentclass{article} \begin{document} % This is a comment. Write your stuff here. % 이것은주석문입니다. 내용을쓰세요. \end{document} L A TEX 으로쓰여진문서는본질적으로구조화되어있다. 좀더현실적인보기는다음과 같다. \documentclass[a4paper,12pt]{article} \begin{document} \title{my Document} \author{john Smith} \date{london, \today} \maketitle \begin{abstract} This is a very short article. \end{abstract} \tableofcontents \listoftables \listoffigures \section{first Section} \label{sec:start} This is the text of the section. See \cite{gonzato} for details. \section{end} \label{sec:end} This is the end of the document. Please go to Section \ref{sec:start} to read it again. \begin{thebibliography}{99} \bibitem{gonzato} Gonzato G. \textit{\latex{} for Word Processor Users}. CTAN, 2001. \end{thebibliography} \end{document} 더많은문서표본이부록 A 에있다. 2.2 File/Save As 다음도구들은 L A TEX 을다른포맷으로변환할때유용하다. TEX4ht은아마도가장훌륭한 L A TEX HTML 변환기일것이다. http://www.cse.ohio-state.edu/~gurari/tex4ht/ latex2html, 또다른 HTML 변환기이다. http://saftsack.fs.uni-bayreuth.de/~latex2ht/, CTAN://support/latex2html latex2rtf, Rich Text Format으로변환기이다. CTAN://support/latex2rtf
6 File 메뉴 detex은명령행변환기인데모든 L A TEX 태그를제거하여플레인텍스트로만들어준다. http://www.cs.purdue.edu/homes/trinkle/detex/, CTAN://support/detex/ 그밖에 PDF 변환에관한자세한사항은 2.7 절을참고하라. 2.3 File/Save As Template L A TEX 본보기문서 로저장한다는것은, 아마도새로운 L A TEX 패키지를만든다는것과같은말일지도모른다. 만약그렇다면그것은너무복잡한문제라서이가이드의범위를넘어선다. 2.4 File/Import 다음도구들은다른포맷으로부터 L A TEX 으로변환한다. sourceforge rtf2latex2e rtf2latex: CTAN://support/rtf2latex html2latex: CTAN://support/html2latex wvware는 MS Word를 L A TEX 을포함하여여러포맷으로변환하는도구의모음이다. http://wvware.sourceforge.net Abiword는프리워드프로세서이다. http://www.abisource.com, MS Word 문서를불러올수있고 L A TEX 으로저장가능하다. txt2tex: CTAN://support/txt2tex 플레인텍스트파일을 L A TEX 으로변환하는데꽤좋은결과를보여준다. 그밖의 *2latex 컨버터를같은주소에서찾아볼수있다. OpenOffice writer2latex http://writer2latex. sourceforge.net 또한가지재미있는것은 OOoLatex 이라는 OpenOffice 확장매크로이다. http:// ooolatex.sourceforge.net 2.5 File/Page Setup 페이지크기, 방향, 여백을설정하는일반적인방법은 \documentclass의인자로이를지정하는것이다. 페이지크기는 a4paper, a5paper, b5paper, letterpaper, legalpaper, executivepaper 중에서고를수있고, 방향은 portrait가디폴트이며 landscape를사용할수있다. 예를들어보자. \documentclass[a5paper,landscape,12pt]{article} 문서전체에걸친여백설정은다음명령으로한다.
File/Page Setup 7 \setlength{\leftmargin}{2cm} \setlength{\rightmargin}{2cm} \setlength{\oddsidemargin}{2cm} \setlength{\evensidemargin}{2cm} \setlength{\topmargin}{-1cm} \setlength{\textwidth}{18cm} \setlength{\textheight}{25cm} geometry 패키지는 paper size, margin width 등의파라미터를완전히제어하게해준다. geometry는여기에모두열거하기에너무많은옵션이있으므로패키지문서를꼭읽어보기바란다. 아래보인예는간단한사용법으로서이중몇가지파라미터는상충하는것도있으며보기를보일목적으로지정된것일뿐이다. memoir geometry memoir oblivoir fapapersize \usepackage{geometry} % top of document... \geometry{paperwidth=25cm} \geometry{paperheight=35cm} % or: \geometry{papersize={25cm,35cm}} \geometry{width=20cm} % total width \geometry{heigth=30cm} % total heigth % or: \geometry{total={20cm,30cm}} \geometry{textwidth=18cm} % width - marginpar \geometry{textheight=25cm} % heigth - header - footer % or: \geometry{body={18cm,25cm}} \geometry{left=3cm} % left margin \geometry{right=1.5cm} % right margin % or: \geometry{hmargin={3cm,2cm}} \geometry{top=2cm} % top margin \geometry{bottom=3cm} % bottom margin % or: \geometry{vmargin={2cm,3cm}} \geometry{marginparwidth=2cm} \geometry{head=1cm} % header space 선택사항은다음과같이지시할수도있다. \usepackage[left=3cm, right=2cm]{geometry} Page Setup/Headers and Footers fancyhdr 패키지는 \pagestyle{fancy} 라는새로운명령을제공한다. 이것은현재섹션 ( 또는 book.cls 에서는챕터 ) 과서브섹션으로헤더를만들고페이지번호를바닥에찍어 준다. 제법팬시하다. 머리말과꼬리말은당연히사용자가변경할수있다. 세부분으로 이루어지는데, 각각왼쪽으로정렬되는부분, 가운데오는부분, 오른쪽으로정렬되는 부분이다. 이들을사용자가설정하려면다음보기와같이한다. \usepackage{fancyhdr}... \lhead{} % empty \chead{hello, world!} \rhead{page \thepage} % page number \lfoot{} \cfoot{\textbf{hello!}} \rfoot{} memoir oblivoir fancyhdr memoir fancyhdr memoir fancyhdr
8 File 메뉴 2.6 File/Printer Setup 이것은운영체제의존적인문제로서 L A TEX 과는아무상관없는것이다. 만약 UNIX 계열의 시스템을사용한다면다음팁이도움이될것이다. lpr -P printername 특정트린터로프린트한다. lpr -# 10 10 장을인쇄한다. lpr -r 인쇄후에파일을삭제한다. 더많은팁에대해서아래를볼것. 2.7 File/Print Preview L A TEX 입력파일이준비되었다면다음중에서선택할수있다..dvi로변환 (latex file.tex) 하여 xdvi나 yap과같은프리뷰어로미리보기할수있다..dvi를 dvips를통하여 POSTSCRIPT로변환한다. 그런다음에 Ghostview와같은프로그램으로미리보기한다..dvi.ps TEX LuaTEX XƎTEX.pdf b.pdf annotation layer.pdf annotation pdfcomment pdf PDFLATEX XƎTEX LuaTEX pdf media15 SVN dvipdf를이용하여.dvi를.pdf로변환하거나직접 pdflatex으로.pdf 파일을생성한다. 내생각에,.pdf 파일을만드는것이가장좋다. 활용가능성이가장폭넓기때문이다. dvipdf가.dvi를.ps를거쳐.pdf로만드는스크립트인데반해, pdflatex을사용하는것은더흥미롭다. 사실 hyperref이나 url과같은패키지들은.pdf 파일이브로우징가능하게만들어준다. 4.15절을보라. 그러나 pdflatex을사용하려면주의해야할점이좀있다. 다른패키지와의호환성문제를경험할수도있기때문이다. 자세한것은 4.12절을보라. 2.8 File/Print (UNIX 계열운영체제에서 ) 간단히 lpr file.ps를명령행에서주거나프리뷰어의 File/Print 메뉴항목을선택하면된다. 2.9 File/Versions version 패키지가 L A TEX 소스의버전관리를위한기본적인기능을제공하기는하지만 RCS (Revision Control System) 이나 CVS (Concurrent Version Control System) 와같은외부프로그램을사용하는것이낫다. 에디터와연동할수있으면더좋다. CVS와 RCS 에대한간단한소개로 http://www.faqs.org/docs/linux-howto/cvs-rcs-howto. html을찾아보기바란다.
Edit 메뉴 9 3 Edit 메뉴 이메뉴는 L A TEX 기능보다는에디터와더많이관계된다.,,,, 와같은에디터에공통되는항목들에대한단축키는표 1에서이미보였다. 텍스트일부를선택하는것은자르기, 붙이기를위해서이기도하지만선택된텍스트에특정스타일을적용하기위해서이기도하다. 이에대응하는 L A TEX 의작용은텍스트일부를중괄호나환경 (environment) 으로감싸는것이다. 예를들면텍스트일부에두꺼운글씨속성을부과하려면다음가운데한가지방식을쓰면된다. this is bold text; this is also bold text; this is bold text, too! this is \textbf{bold text;}\\ this is also {\bfseries bold text;}\\ \begin{bfseries} this is bold text, too! \end{bfseries} 3.1 Edit/Autotext 이란예를들어 PS 라고입력하면 PostScript 라고자동으로입력되는기능을 말한다. 이것도에디터의역할이지만대략여기에해당하는 L A TEX 기능이있다. \def\ps {\textsc{postscript}} 이렇게하면 \PS 라고입력하는곳마다 \textsc{postscript} 에해당하는 POSTSCRIPT 가찍힌다. 대소문자구별에주의하자. 4 Insert 메뉴 \def \newcommand 4.1 Insert/Breaks 행이잘라지지않는강제공백한칸은 ~(tilde) 로나타낸다. 행나눔을강제하려면 \linebreak나 \newline을쓴다. 이둘의차이는아래를보라. \\ 도새줄을시작한다. \\[1cm] 와같이길이를지시하면문단사이의간격을조절할수도있다. 새문단은빈줄하나를넣고시작한다. \par 명령과같다. \\ \par \newline 끝으로강제페이지나누기는 \newpage 나 \clearpage 를쓴다. \linebreak 와 \newline 의차이는, 앞의것이행의나머지를다채우고다음행을시작 한다는것이다. 다음을보자. I am stretched! But I am not. Ok, now you get it. I am stretched!\linebreak But I am not.\newline Ok, now you get it.
10 Insert 메뉴 또한, \clearpage 는 \newpage 와마찬가지로새페이지를시작하지만그시점까지출 력되지않고대기중인 floats 들, 즉 figure 나 table 들을모두출력한다음에새페이지를 만든다는점이다르다. float 에대해서는 4.12 절에서설명한다. 4.2 Insert/Enumerated List 숫자나기호붙은리스트는 itemize 와 enumerate 환경에해당한다. 리스트환경에서 글머리에붙는기호를바꾸려면 \item 명령의인자로특정하면된다. * with an asterisk; - with a dash;. with a dot. \begin{itemize} \item[*] with an asterisk; \item[-] with a dash; \item[.] with a dot. \end{itemize} 다른방법은첫째수준에서넷째수준까지각수준의숫자에대응하는카운터스타일을재정의하는것이다. 2 숫자표현에몇가지스타일이있는데, \arabic은 보통 숫자이고 \roman은로마숫자소문자 ( 예를들면 8을 viii로표시 ), \Roman은로마숫자대문자, \alph와 \Alph는각각알파벳문자소문자와대문자이다. 숫자형식가운데 \fnsymbol 에대해서는나중에설명한다. * first level, item 1 * first level, item 2 - second level, item 1 - second level, item 2 * first level, item 3 \begin{itemize} \renewcommand{\labelitemi}{*} \renewcommand{\labelitemii}{-} \item first level, item 1 \item first level, item 2 \begin{itemize} \item second level, item 1 \item second level, item 2 \end{itemize} \item first level, item 3 \end{itemize} 말하자면, 숫자붙인문단의숫자를로마숫자와알파벳대문자로하려면다음과같이한다. A first level, item 1 B first level, item 2 i second level, item 1 ii second level, item 2 C first level, item 3 \begin{enumerate} \renewcommand{\labelenumi} {\Alph{enumi}} \renewcommand{\labelenumii} {\roman{enumii}} \item first level, item 1 \item first level, item 2 \begin{enumerate} \item second level, item 1 \item second level, item 2 \end{enumerate} \item first level, item 3 \end{enumerate} 또다른방법으로 enumerate 패키지를사용할수있다. 이패키지는 enumerate 환경을재 정의하여옵션인자로주어진형식을쓰게한다. A a I i 1 가운데한글자가오면그것을 카운터값에각각 \Alph, \alph, \Roman, \roman, \arabic 이주어진것으로대치한다. 2 각각 \labelitemi, \labelitemii, \labelitemiii, \labelitemiv 라는매크로이름을갖는다.
Insert/Special Character 11 그밖의글자로이루어진텍스트를글머리에쓰려면중괄호로해당텍스트를묶어주면 된다. example I. First example. example II. Second example. example III. Last example. Go to Item I. \begin{enumerate}[{example} I.] \item First example.\label{item:first} \item Second example. \item Last example. Go to Item~\ref{item:first}. \end{enumerate} 문단속에포함된리스트를쓰려면 paralist 패키지를이용한다. 이패키지도 enumerate 와 마찬가지로문단머리를선택인자로지정할수있다. inparaenum 환경을쓸수있다. I ll throw in a list of items: 1. apples, 2. pears, and 3. oranges. The same list can be labelled with letters: a) apples, b) pears, and c) oranges. The first item is a. I'll throw in a list of items: \begin{inparaenum} \item apples, \item pears, and \item oranges. \end{inparaenum} The same list can be labelled with letters: \begin{inparaenum} [\itshape a) \upshape] \item apples, \label{first} \item pears, and ko.tex enumerate dhucs-enumerate, paralist dhucs-paralist oblivoir xob-paralist dhucs-enumerate oblivoir memoir enumerate 1, ⑴,, a, ⅰ, Ⅰ, ㄱ, ᄀ, 가,, \item oranges. The first item is \ref{first}. \end{inparaenum} 이상에서본대로, A a I i 1 문자는카운터를수식하기위해사용된다. paralist는더많은일을할수있다. 해당패키지문서를읽어볼것을권장한다. 한글식 paralist가어떻게구현되는지를여기서잠깐보고가기로하자. 이것은 xobparalist 패키지로한것이다. 문단안에서항목을나열하고자한다. ㄱ ) 사과, ㄴ ) 배, 그리고ㄷ ) 복숭아. 다른방식의라벨을달아본다. 1 사과, 2 배, 그리고 3 복숭아. 첫번째아이템을참조하면, ㄱ. 문단안에서항목을나열하고자한다. \begin{inparaenum}[ ㄱ )] \item 사과, \label{firstk} \item 배, 그리고 \item 복숭아. \end{inparaenum} 다른방식의라벨을달아본다. \begin{inparaenum}[1] \item 사과, \item 배, 그리고 \item 복숭아. 첫번째아이템을참조하면, \ref{firstk}. \end{inparaenum} 4.3 Insert/Special Character 먼저 L A TEX 입력파일을만들때몇가지글자는입력방법이정해져있다는것을상기하자. 예를들면여는따옴표는 ``로, 닫는따옴표는 '' 로입력하는것이관행이다. 그리고 --는 en-dash( ), ---는 em-dash( ) 를입력하는방법이다. { 과 } 는특히중요한데이것은 L A TEX 에서 범위 를설정하는기호로쓰이기때문에이대로입력하여도텍스트에
12 Insert 메뉴 Character L A TEX Sequence $ \$ or \textdollar & \& % \% _ \_ or \textunderscore { \{ or \textbraceleft } \} or \textbraceright < $<$ or \textless > $>$ or \textgreater \ \textbackslash \textbar \textbullet \textdaggerdbl \textdagger \textparagraph \textsection \textcopyright ^ \textasciicircum ~ \textasciitilde or \~{} $\sim$ \textregistered \texttrademark ª \textordfeminine º \textordmasculine 표 2: 몇가지특수문자를입력하는방법 XƎTEX xltxtra textcomp textcomp ASCII XƎTEX one two three 나타나지않는다. 이괄호기호를텍스트로나타내고싶다면반드시 \{ 와같이입력해야 한다. L A TEX 의문법과관련된특수기호 ( 이른바 예약문자 ) 는 { } ^ _ # $ % ~ \ & 와 같은것이있다. 이문자를그대로입력하면오류를만날수있다. 이와같이, 몇가지문자들은 L A TEX 에서특별한의미를갖는다는것을명심해야한다. 이 글자들을문장에나오게하려면 \ 를앞에붙이거나수학모드에서쓰거나하는등특별한 방법으로입력하여야한다. 표 2 를보라. 이표에있는일부명령은 textcomp 패키지가 필요하다. 유럽어의액선트붙은문자를예를들어 \'e 와같이입력하여 é 를얻는것은비슷하지만 이와는또다른문제이다. 이에대해서는 7.3 절을보라. 특수문자를입력하는또한가지방법은해당 ASCII 코드를 \char 명령으로주는것이다. 예를들면 $ & ^ ~ 을얻으려면 \char36 \char38 \char94 \char126 이라고입력한다. 특별한글자와심볼을많이제공하는패키지가있다. 예를들면 pifont 는 \ding, \dingfill, \dingline, \dinglist 와같은명령을제공한다. 첫번째의 \ding 명령은특정코드에해 당하는딩뱃문자를찍어준다. 다른명령들은각각 \fill, \line, \list 명령과환경에 해당하는것으로특정딩뱃코드를인자로주도록되어있다. \begin{dinglist}{43} \item one \item two \item three \end{dinglist}
Insert/Formula 13 다음보기는좀더그럴싸하다. 1 one 2 two 3 three \begin{dingautolist}{172} \item one \item two \item three \end{dingautolist} 심볼문자는여기서언급하기에너무그수가많아서차라리 The Comprehensive L A TEX Symbol List 라는문서를읽어보는편이낫다. CTAN://info/symbols/comprehensive 에서찾을수있다. 유로화기호 (AC) 공식유로화기호는 eurosym 패키지가제공한다. 이것은다음두가지방법으로사용가 능하다. \usepackage[gen]{eurosym} \usepackage[official]{eurosym} 둘다 \euro 명령을제공하며결과는 AC 로나타난다. 이기호가실제찍히는모양은 [gen] 옵션을주느냐 [official] 옵션을주느냐에달려있는데, [gen] 의경우는 AC 로찍히고 [official] 의경우는 e 로찍힌다. 차이점을눈여겨보라. 두번째것은 \officialeuro 명령으로도얻을수있다. marvosym 패키지도유로기호를제공한다. 이패키지는이외에도꽤많은멋진기호문 자를포함하고있다. 이패키지를쓸때유로화기호는 \EUR 명령으로 AC 과같은결과를 얻는다. TEX texdoc texdoc symbols XƎTEX eurosym marvosym ([U+20AC]) \char"20ac xltxtra \texteuro( ) TnXTEX marvosym \textwon \textyen 4.4 Insert/Formula L A TEX 은특히수식조판에강하다. 수학기호를텍스트속에넣으려면그것을 $ 로감싸주 어야한다. $ \( \) I like math: x n + y n z n my favourite theorem. n 2 is I like math: $x^n + y^n \neq z^n\quad \forall n \neq 2$ is my favourite theorem. displaymath 와 equation 은별행수식을식자한다. 뒤의것은나중에참조할수있도록 수식번호를붙여준다. Fermat s Last Theorem is defined as: x n + y n z n n 2 (1) Can you prove Eq. 1? Fermat's Last Theorem is defined as: \begin{equation} x^n + y^n \neq z^n\quad \forall n \neq 2 \label{eq:fermat} \end{equation} Can you prove Eq.~\ref{eq:fermat}? displaymath \[ \] displaymath equation AMS-math mathmode \sim ( )
14 Insert 메뉴 4.5 Insert/Footnote \footnote[n]{footnotetext} 명령으로충분하다. 선택적인자인 [n] 은각주번호를수정한다. \footnote 명령은단어뒤에이어붙는반점, 온점, 그밖의문장부호뒤에위치해야한다. 숫자대신기호문자나임의의텍스트를각주표지로쓰고싶다면 \footnote 명령에관련된카운터를재정의한다. \renewcommand{\thefootnote}{read me!} This footnote\footnote {I mean this one.} says it all. This footnote read me! says it all. read me! I mean this one. 이런방식으로각주번호를로마숫자나멋진기호문자로바꿀수있다. \renewcommand{\thefootnote} {\Roman{footnote}} This\footnote{The first.} is the first footnote, and this\footnote{the second.} is the second. \renewcommand{\thefootnote} {\fnsymbol{footnote}} The end.\footnote[8]{at last!} This II is the first footnote, and this II is the second. The end. II The first. II The second. At last! \fnsymbol{footnote} 에주목하자. 이것은아홉개의기호문자를 1에서 9까지의각주번호카운터에할당한다. * ** 동일한각주에대해서여러번참조하려면각주숫자를하나하나써넣지말고다음과같이하라. This\footnote{the first.} \newcounter{\myfootnote} \setcounter{\myfootnote} {\value{footnote}} and that\footnote{the second.} are footnotes: please read note \footnotemark [\value{\myfootnote}] again. This 1 and this 2 are footnotes: please read note 1 again. 1 the first. 2 the second. 주의 : minipage 는그자체의각주번호카운터를별도로가진다. 각각 mpfootnote 와 verbatim, parbox footnote footmisc LATEX thempfootnote이다. 문서끝의각주 ( 미주 ) endnotes 패키지는모든각주를문서끝으로몰아준다. preamble에다음한줄을추가해야한다. \let\footnote=\endnote 그리고다음몇줄을문서의마지막에둔다.
Insert/Indices 15 \newpage \begingroup \parindent 0pt \parskip 2ex \def\enotesize{\normalsize} \theendnotes \endgroup 이이외의다른명령도있다. endnotes.sty 소스파일을읽어보라. 4.6 Insert/Indices 차례, 표차례, 그림차례를생성하고넣는것은 L A TEX 에서아주간단한일이다. 다음몇 줄을첫번째 \section 이나 \chapter 보다이전에써주기만하면된다. \tableofcontents \listoffigures \listoftables [ 역자추가 ] 목차의점선이나페이지표시방법등을사용자가수정하려면 tocloft 패키지를 이용할수있다. 그리고 float 패키지를이용하여새로운플로트를정의할때그목록을 만들수도있다. 이두가지패키지는모두 memoir 에이미들어있다. 4.7 Insert/Vertical and Horizontal Space 이항목이존재하는워드프로세서는내가아는한없다. L A TEX 은이일을아주우아한방식으로처리한다. 그러나워드프로세서는여기에대응하는기능이없다. 는텍스트를수직으로수평으로가운데두기위해사용한다. 워드프로세서에서는이것이매우어려운일이다. 여러번시행착오를거쳐야만겨우비슷하게된다. \null이나 ~ 를고정점으로사용하고그뒤에이어 \vfill이나 \hfill을다음보기와같이써보라. one four three two five one \hfill two\\ \vfill ~ \hfill three \hfill ~\\ \vfill four \hfill five \null 보통 L A TEX 은사용자가마음대로빈공간을넣는것을허락하지않는다. 소스에서스페 이스를두번친다고해서출력물에서두칸의스페이스가나타나는것은아니다. 그러나 문서가엉망이되어도상관없다면잘라지지않는공백기호 ~(tilde) 를두번써보라. 실 제로출력에도두개의공백이찍힐것이다. 또, \hspace 를다음과같이사용할수있다. 4.11 textpos This is a 2-cm-wide hole. This is a \hspace{2cm} 2-cm-wide hole. [ 역자추가 ] \hspace 는 앞글자 가있어야동작한다. 왼쪽끝에서 \hspace 는아무의미가 없을것이다. 이럴때도강제로간격을주려한다면 \null\hspace 와같이하거나또는 별표붙은명령 \hspace* 를쓸수있다.
16 Insert 메뉴 4.8 Insert/Tabs tabbing 환경은 키의동작과거의비슷한기능을제공한다. 다음보기를보라. Zero One Two Three Zero One Three Zero Two Three Zero One Two new tab 1 new tab 2 new tab Zero One Two Three \begin{tabbing} % let's set the tab positions ~ \hspace{1cm} \= ~ \hspace{1.5cm} \= ~ \hspace{2.5cm} \= \kill % discard text Zero \> One \> Two \> Three \\ Zero \> One \> \> Three \+ \\ % go right Zero \> Two \> Three \- \\ % go left Zero \> One \> Two \\ \pushtabs % save tab positions new tab 1{\ldots} \= new tab 2 \\ new \> tab \\ \poptabs % restore tab positions Zero \> One \> Two \> Three \end{tabbing} tabbing tabto tab tab AMS-math \eqref 또 tabular 와 table 환경을참고하라. 4.9 Insert/Cross Reference \label, \ref, \pageref 명령만있으면텍스트에레이블을달고그것에대해교차참조 할수있다. 레이블의표준포맷은 prefix:suffix 꼴인데, prefix 는 cha( 장 ), eq( 수식 ), fig( 그림 ), sec( 절 ), tab( 표 ) 와같은것이될수있다. 이와같이 prefix 를붙이는것은 소스를좀더알아보기쉽게만들려는것으로꼭이런형식이어야만하는것은아니다. 절번호, 표번호, 그림번호, 페이지번호등을참조하려면 \label 과 \ref 명령을다음 보기와같이사용한다. Example. This paragraph appears in Section 4.9 on page 16. \paragraph{example.} \label{par:example} This paragraph appears in Section~\ref{par:example} on page \pageref{par:example}. 물론사용자가 prefix 를마음대로정할수도있다. 다음과같은 enumerate 리스트를생 각해보자. 1. first step: skip to 3 2. another step (unreferenced) 3. end: go back to 1 \begin{enumerate} \item{first step: skip to \ref{item:end} \label{item:start}} \item{another step (unreferenced)} \item{end: go back to \ref{item:start} \label{item:end}} \end{enumerate} 4.10 Insert/Margin Notes 정말쉽다. \marginpar{text}.
Insert/Frame 17 4.11 Insert/Frame 포스터나광고판을조판한다고생각해보자. 특정텍스트나그림을페이지상의고정된 위치에갖다두어야할때가있다. 이럴경우 textpos 패키지를이용한다. 샘플이그림 A.5 에있다. ( 부록 A 를보라.) 4.12 Insert/Figure 더쉬운접근은 minipage 를사용하는것이다. miniature page 라는뜻이다. minipage 환경안에 는텍스트, 그림, 어떤것이라도올수있다. 나아가 boxedminipage 패키지가제공하는 boxedminipage 환경도있다. 이름그대로 minipage 에박스테두리 를그려준다. 이문단은다음과같이선언된것이다. \begin{boxedminipage}[c]{0.6\linewidth}... text... \end{boxedminipage} LATEX flowfram framed boxedminipage, boites framed, boites 5.4 (L A TEX 에서그림을포함하는문제에대한안내서로 Using Imported Graphics in L A TEX 2ε, a.k.a. epslatex.ps 가있다.) figure 라함은비단그림파일만을의미하는것이아니라텍스트, 표등 figure 환경안에 놓을수있는것은뭐든지상관없다. 다음보기를보자. eps \begin{figure}[htbp] % [htbp] specifies the % preferred placement: here, top, % bottom, or separate page. \begin{center} \texttt{=8-)} \end{center} \caption{a smiley representing the author of this guide.} \label{fig:mysmiley} \end{figure} =8-) 그림 1: A smiley representing the author of this guide. 그림들이 figure 관련코드를작성한바로그위치에정확하게나타난다는보장이없음에주의하자. 사실워드프로세서와 L A TEX 의가장중요한차이중하나가그림들이고정된위치를갖지않는다는점이다. 그림은 L A TEX 이스스로결정하는최적의위치로 떠다닌다. 그러므로문장을쓸때는 아래그림 이나 위의그림 과같이써서는안되고 그림 ~\ref{fig:label} 과같이작성해야한다. 그림이어느위치에올지모르기때문이다. 이런속성때문에그림이나표를 라고부른다. 특정의표나그림이정확하게어떤위치에있어야할이유가꼭있다면, here 패키지를사용하라. 이패키지는위지지정인자로 H를제공한다. Encapsulated POSTSCRIPT (.eps) 포맷의그림이하나있다고하자. 이그림을 L A TEX 소스파일에삽입하려면 graphicx 패키지와그림 2에보인것과같은명령을이용한다. b LATEX LATEX LATEX float
18 Insert 메뉴 \begin{figure} \begin{center} \fbox{\includegraphics [width=0.5\textwidth, angle=-90] {gnuplot}} \caption{a Gnuplot graph.} \label{fig:gnuplot} \end{center} \end{figure} Gnuplot 3D graph sin(x*x + y*y)/(x*x + y*y) Z 1 0.8 0.6 0.4 0.2 0-0.2-0.4 4 3 2-4 -3-2 -1-1 0 1 Y 0-2 1 X 2-3 3 4-4 그림 2: A Gnuplot graph. TeX Live 2010 pdflatex EPS pdflatex.eps XƎTEX latexdvips.eps PDFLATEX, XƎLATEX, latex-dvipdfmx.png,.jpg,.pdf,.eps \usepackage{epstopdf} (PDFLATEX). XƎTEX pdflatex latex-dvips latex 과 dvips 로문서를조판할때는 EPS 파일만이동작한다. 반면 pdflatex 은 JPG, PNG, ( 당연히 ) PDF 파일을받아들인다. 일반그래픽포맷 (.jpg,.gif,.png 등 ) 을.eps 로변환하는패키지들이몇가지있다. 예 를들면 ImageMagick (http://www.imagemagick.org), GIMP (http://www.gimp. org) 등. 그러나이런응용프로그램들은엄청난크기의 POSTSCRIPT 파일을만들어낸다. 제일좋은것은비트맵을내장하여컴팩트한 POSTSCRIPT 파일을만들어내는응용프로 그램을이용하는것이다. jpeg2ps (http://www.pdflib.com/jpeg2ps/index.html), bmeps (CTAN://support/bmeps) 와같은유틸리티가좋다. 앞의것은.jpg 파일을내장 하는데제일낫다고하고, 뒤의것은다양한그래픽포맷을지원한다. Z PDFLA TEX 을사용할때는그림을.pdf 로변환해야한다. 이를위해 epstopdf 프로그램을명령행에서쓰면되고이에맞추어소스를수정해야한다! 같은소스에서.pdf 와.ps 를모두만들려한다면다음과같은코드를포함하는방법이 있다. \usepackage{ifpdf}... % include the right options \ifpdf \usepackage[pdftex]{graphicx} \pdfcompresslevel=9 \else \usepackage{graphicx} \fi... % include the right graphic file \ifpdf \includegraphics{file.pdf} \else \includegraphics{file.eps} \fi 한글문서를 XƎTEX 용으로작성하는경우의예를들어보자. \usepackage{iftex} \ifxetex \usepackage{graphicx} \else\ifpdftex \usepackage{graphicx}
Insert/Shapes 19 \usepackage{epstopdf} \else \usepackage[dvips]{graphicx} \fi\fi... \ifxetex \includegraphics{file} \else\ifpdftex \includegraphics{file} \else \includegraphics{file.eps} \fi\fi Z 18개이상의플로트가처리되지않은상태로대기중이면 Too many unprocessed floats 라는에러를만나게된다. 이문제를해결하는가장빠른방법은 \clearpage를서너개의그림사이에넣어주는것이다. 또는 morefloats 패키지를이용할수도있다. 문단을파고드는그림잡지등의레이아웃에서볼수있는그림이텍스트문단을파고들어가는것은 wrapfig 패키지를이용한다. If you meet this guy, give him some money. If you meet this guy, give him some money. The reason may not be apparent to you, but I can assure that your money will end up in good hands. I say again, if you meet this guy, give him some money: he knows how to use it properly. OK? =8-) \begin{wrapfigure}[4]{l}[5pt]{2cm} {\Huge \texttt{=8-)} } \end{wrapfigure} The reason may not be apparent to you, but I can assure that your money will end up in good hands. I say again, if you meet this guy, give him some money: he knows how to use it properly. OK? 인자는좁아지는문단의행수, 그림의위치, 그림걸이길이 (overhang), 그림의폭 (width) 이다. 4.13 Insert/Shapes L A TEX 자체가 picture 환경을제공하고있다. \circle, \oval 등의명령을이용해서그림을그릴수있다. 내생각에그림그리기환경없이뭔가를그린다는것은너무어렵고 picture 환경은자체의한계를몇가지가지고있기도하다. 차라리 Xfig (http: //www.xfig.org) 와같은드로잉프로그램을이용하는것이훨씬낫다. 이프로그램은 UNIX에서만사용할수있고몇가지지적할만한훌륭한기능을가지고있다. Xfig는겉모양이별로다. 그러나매우강력하다. 멋진장점중의하나는여러포맷으로드로잉을내보내기할수있다는점이고그가운데는 L A TEX 이이해하는포맷이포함된다. xfig platform-free java jfig (http://tams-www. informatik.uni-hamburg. de/applets/jfig/) Windows TpX (http://tpx.sf. net)
20 Insert 메뉴 그림 3: Xfig 로만든드로잉 또다른장점으로 special flag 필드가세트되면텍스트오브젝트가 L A TEX 으로렌더링된다는것이다. 이것은드로잉안에일반적인 TEX 수식을넣을수있다는뜻이된다. 따라서, small.jpg라는드로잉 ( 그림 3) 을만들었다고해보자. pdflatex을사용할것이라면 File/Export 를열어서 Combined PDF/LaTeX (both parts) 항목을선택하자. 그러면 Xfig는두개의파일을만들어주는데, 하나는 small.pdf이고다른하나는 small.pdf_t이다. 문서에이드로잉을포함하려면다음과같이한다. \usepackage[pdftex]{graphicx}... Here's an Xfig drawing: \input{small.pdf_t} Here s an Xfig drawing: L A TEX e iπ = 1 플레인 latex 을사용할것이라면 File/Export 를열어서 Language 메뉴에서 LaTeX picture + eepic macros 를선택한다. 그러면 small.eepic 라는파일을얻을수있다. 문서에그림을포함하려할때 epic 과 eepic 패키지를사용해야한다. pgf pgf tikz beamer tikz pstricks latex-dvips pgf/tikz \usepackage{epic} \usepackage{eepic}... This is a picture drawn with Xfig:\\ \input{small.eepic} 주의할점이있다. epic 와 eepic 는 hyperref 과충돌이있는것같다. hyperref 이 \path 명령 을재정의하기때문이다. pdflatex 을써야할또하나의이유이다. 진짜멋진그림을그리고싶다면 pgf http://sourceforge.net/projects/pgf/ 패키지 나 pstricks http://tug.org/pstricks/main.cgi 를고려해보라. 이패키지들은 L A TEX 으로멋진 POSTSCRIPT 드로잉을그릴수있게해준다. 또다른괜찮은프로그램으로 epix
Insert/Line 21 http://mathcs.holycross.edu/~ahwang/current/epix.html 라는것도있는데이것 은 L A TEX 문서안에포함할학문적인플로트나그림을생성해주는데특화하고있다. 이 밖에도많은도구가있다. 웹을 LaTeX vector graphics 로검색해보라. 4.14 Insert/Line 임의의길이와굵기로된선분을그리는명령은 \rule 이다. This is a page-wide rule: but this one is shorter and thicker: This is a page-wide rule:\\ \rule{\linewidth}{1pt} but this one is shorter and thicker:\\ \rule{2cm}{2mm} \dotfill 은점으로만들어진재미있는 선 을그어준다. 이것은서로연관된것들을이어 주는데가끔쓰인다. Total price...................... AC 10 Total price \dotfill \euro~10 4.15 Insert/Hyperlink url 패키지는 URL 주소를쓰고하이프네이션을적용해준다. hyperref 패키지와함께사 용하면 dvipdf, pdflatex 을통해서하이퍼링크가동작하는.pdf 문서를만들수있다. 예를들면이문서는다음과같이선언하여만들어진것이다. \usepackage[colorlinks,urlcolor=blue,filecolor=magenta]{hyperref} %\usepackage{url} hyperref url hyperref url 예를하나들어보자. The CTAN main site is http://www. ctan.org, a.k.a CTAN://. Listen to this MIDI file. Click here to go back to the top. The \hypertarget{ctan}{ctan} main site is \url{http://www.ctan.org}, a.k.a \href{http://www.ctan.org}{ctan://}. Listen to \href{run:midifile.mid} {this MIDI file}. Click \hyperlink{ctan}{here} to go back to the top. \hypertarget 과 \hyperlink 명령은 HTML 에서와같은내부링크를만들어준다. \href 는 URL 이나외부파일에대한링크를만든다. run: 파라미터에주의하라. 이것은멀티 미디어플레이어, 오피스프로그램등과같은외부프로그램을실행시켜준다. 내가아는 한이기능은오직 Adobe Reader, Okular, Evince 에서만동작한다. Linux 나다른 UNIX 계열운영체제에서는외부파일이참조되었을때어떤 PDF 리더를 실행해야할지를지정해주어야한다. 자신의.mailcap 이나 /etc/mailcap 에다음내용을 써넣으면된다. audio/midi;/usr/bin/timidity %s audio/*; xmms %s video/*; xine -pfhq %s
22 Format 메뉴 pdf bookmark Adobe Acrobat hyperref 의패키지문서를읽어보면더많은예와기능을알수있다. 4.16 Insert/Comment 각행앞에 % 기호를붙이면그행은주석문이되어문서의출력에반영되지않는다. 여 기에출력물에는보이지않는저자자신의메모나노트를기록할수있다. 또는 comment 패키지를통하여 comment 환경을쓰면문서의일부를무시하게만들수있다. 5 Format 메뉴 일반적으로문서의주요포맷설정은 \documentclass의파라미터로지정한다. 기본글꼴크기 (10, 11, 12pt), 용지 (a4paper, a5paper, b5paper, letterpaper, legalpaper, executivepaper), 방향 (portrait, landscape) 등. \documentclass[a5paper,landscape,12pt]{article} 위의세가지이외의폰트크기를지정하는것도가능한데이에대해서는 5.2 절에서설명 한다. memoir setspace \Spacing. 5.1 Format/Line Spacing setspace 패키지는 singlespace, onehalfspace, doublespace 환경을제공한다. 그리고 \spacing{amount} 명령 ( 환경 ) 은주어진크기만큼행간격을설정해준다. These two lines are crazily spaced! Much better, these lines have a pretty space. \begin{spacing}{2.5} These two lines \\ are crazily spaced! \end{spacing} \begin{spacing}{1} Much better, these lines\\ have a pretty space. \end{spacing} 1.333 전체문서의행간격을적용하려면 \linespread{factor} 명령을 preamble 에서사용한 다. 기본값은 factor = 1 로되어있다. 이값이커지면행간격도커진다. 1.6 이면대략 double line spacing 에해당한다. 5.2 Format/Character 표준적인글자속성은표 3에열거하였다. 글자크기는표 4를보라. 이탤릭체와강조체사이의차이에주의하라. \emph 명령은이탤릭체안에서는 upright 체로변한다. For example, this portion of text is typeset in italics, and these words are emphasised in upright. \emph 명령은타이포그래피지정명령이아니라 강조 를의미하는논리적인명령임을알수있다. 또한아래첨자는수학모드안에서만동작한다는것도알아두자. 일부 \textsubscript가정의되어있는클래스를쓴다면이를이용하여 this is \textsubscript{subscript}
Format/Character 23 Text attribute Environment form WBoth \textnormal textnormal main document font \textrm rmfamily roman \textit itshape italics \emph n/a emphasis \textmd mdseries medium weight (default) \textbf bfseries boldface \textup upshape upright (default) \textsl slshape slanted \textsf sffamily sans serif \textsc scshape SMALL CAPS \texttt ttfamily typewriter \underline underline underline \textsuperscript n/a this is superscript \mathrm n/a x n + y n z n n 2 \mathbf n/a x n + y n z n n 2 \mathsf n/a x n + y n z n n 2 \mathtt n/a x n + y n z n n 2 \mathit n/a x n + y n z n n 2 \mathnormal n/a x n + y n z n n 2 \mathcal n/a \ + \ \ \ 표 3: 글꼴속성 Font size WBoth tiny sample text scriptsize sample text footnotesize sample text small sample text normalsize sample text large sample text Large sample text LARGE huge Huge sample text sample text sample text 표 4: 폰트사이즈 로입력하여 this is subscript 와같이쓰는것이가능하지만그렇지않을경우노멀텍스트 에서첨자를사용하는트릭은다음과같다. this is this is subscript $_{\mbox{\footnotesize{subscript}}}$ \textsuperscript 밑줄긋기 \textsubscript 일반적으로밑줄긋기는사용하지않는다. 이것은옛날텔레타이프시대의유물로서보기 memoir 에좋지도않다. 정말로밑줄을긋지않으면안되는경우, 보통은 \underline 명령으로 처리할수있지만밑줄그어진단어단위가행자름이되지않는불편이있다. 이런문제를
24 Format 메뉴 해결하고몇가지더재미있는밑줄스타일을제공하는 ulem 패키지를사용할수있다. 다음보기를보자. important urgent boat wrong /////////// removed \uline{important} \uuline{urgent} \uwave{boat} \sout{wrong} \xout{removed} HLATEX ulem myulem 주의 : ulem은 \emph 명령을재정의하여밑줄긋기로바꾼다. 이것을피하려면패키지를다음과같이불러야한다. \usepackage[normalem]{ulem} Format/Character Size 표준폰트사이즈로충분치않다면 extsizes가도움이된다. 표준문서클래스의글자크기옵션을 확장 하여 8 12, 14, 17, 20pt 옵션을추가해준다. 예를들어어떤글을본문 17포인트로조판하기를원한다고하자. preamble에다음과같이쓰면된다. \documentclass[17pt]{extarticle} 큰글자를얻는또다른방법은 type1cm 패키지를이용하는것이다. 다음과같은명령이 가능하다. \fontsize{72pt}{72pt}\selectfont No Smoking ( 이샘플은너무커서이페이지에맞추기가어렵기때문에결과를보이지못한다.) 인자두개는각각폰트의사이즈와베이스라인스킵의크기이다. 또다른방법은다음과 같은것이다. 1-cm tall \resizebox{!}{1cm}{1-cm tall} XƎTEX legacy TEX LATEX 2ε NFSS XƎTEX Format/Character Font L A TEX 은자체폰트를사용하는데필요하면자동으로 METAFONT 시스템에의하여생성한다. 이렇게하면이식성이보장되며매우좋은출력품질을얻을수있다. 그러나우리는 Times, Helvetica, Sans Serif 와같은다른폰트에익숙하다. 다행히 L A TEX 은 POSTSCRIPT 폰트를사용할수있다. 다음패키지들은익숙한 POSTSCRIPT 폰트를사용할수있게하는것들이다. avant, avangar, bookman, chancery, charter, courier, helvet, helvetic, ncntrsbk, newcent, palatcm, palatino, pifont, times, utopia, zapfchan. 문서에 \usepackage{times} 라고써넣고결과를살펴보라. 유일한주의사항은 L A TEX 이수식을다룰때 Computer Modern보다나은폰트가없다는점이다. POSTSCRIPT 폰트를수식에썼을때는품질이좀떨어지는것으로보일수도있다.
Format/Character 25 Family cmr cmss cmtt pag pbk phv pnc ppl ptm pcr Name Computer Modern Roman Computer Modern Sans Serif Computer Modern Typewriter Avantgarde Bookman Helvetica New Century Schoolbook Palatino Times Courier 표 5: 일반적인폰트패밀리 위에열거한패키지들은문서전체의폰트를설정한다. POSTSCRIPT 폰트를텍스트영역 에만적용하고자한다면폰트패밀리를아래예와같이지정해주도록하라. 일반적인폰트 패밀리를표 5 에열거하였다. Z 주의. 몇몇폰트는시스템에따라이용불가능할수있다. This is Computer Modern Roman, This is Computer Modern Roman, this is Helvetica! {\fontfamily{phv}\selectfont this is Helvetica!} 다른가능성은표준 L A TEX 폰트를 POSTSCRIPT 폰트로교체하는것이다. 예를들면 Computer Modern Sans Serif 가나타날위치의폰트를전부 Avantgarde 로바꾸는것이다. 재정의가능한명령은다음과같고, Computer Modern TEX CM ( LM) \rmdefault (roman) \sfdefault (sans serif) \ttdefault (typewriter) \bfdefault (boldface) \mddefault (medium) \itdefault (italics) \sldefault (slanted) \scdefault (small caps) \updefault (upright) sffamily 기본글꼴을 Computer Modern Sans Serif 로부터 Avantgarde 로바꾸는것은 다음과같이한다. % Avantgarde replaces sans serif \renewcommand{\sfdefault}{pag}
26 Format 메뉴 [ 역자 ] XƎTEX 은 legacy TEX 의폰트사용방법에일대혁신을가져왔다. Jonathan Kew 가제작한 XƎTEX 은기존의 TEX 시스템에서폰트를처리하는부분을유니코드폰트사용방식으로교체한것이다. 그결과운영체제에설치된오픈타입, 트루타입폰트를.tfm에의존하지않고즉시사용할수있게되었다. 물론 legacy TEX 의 METAFONT와 L A TEX 2ε의 NFSS( 우리에게익숙한폰트선택명령들 ) 가호환을위해서 XƎTEX 에서도동작하지만오픈타입이나트루타입을사용하려면 fontspec 패키지의 \fontspec 명령을익히는것이좋다. 역자는본문의 전통적인 폰트패밀리선택방식에대한설명을수정하지않고그대로보이면서이문단하나를추가한다. xcolor Format/Character Colour color 패키지를이용하면색상이름과적절한명령을사용할수있다. 미리정의된색상은 black, white, red, green, blue, cyan, magenta, yellow이다. 자신의색상을정의하는것도가능하다. This is red. This text is blue! So is this. Let s change. This is my shade of green! A cyan box A green box in a blue frame \textcolor{red}{this is red.}\\ \color{blue} This text is blue!\\ So is this. Let's change.\\ \definecolor{mygreen} {rgb}{0.1,1,0.1} \color{mygreen} This is my shade of green!\\ \color{black} \colorbox{cyan}{a cyan box}\\ \fcolorbox{blue}{green} {A green box in a blue frame} wallpaper \\ \\ \par \\ ( ) \pagecolor 라는명령도있다. 이명령을쓰면어떤일이일어날까? 5.3 Format/Paragraph L A TEX 에있어서문단이란무엇을의미하는것인지상기하자. 문단이란 \\ 나빈줄로끝나 는텍스트의일부이다. (environments) 이라하는것은텍스트의일부분에대해정렬 (alignment) 이나글꼴 선택과같은특정속성을부여하는 L A TEX 의방식이다. 이것은마우스로텍스트를선택한 다음에원하는속성을메뉴나버튼클릭으로부여하는것과비슷하다. 중괄호로텍스트 일부를둘러싸는것도영역선택과비슷한효과를갖는다. 환경의일반적형태는다음과같다. \begin{environment}...text goes here... \end{environment} 예를들어어떤문단을가운데정렬하고싶으면 center 환경을사용한다. this text is centered \begin{center} this text is centered \end{center}
Format/Paragraph 27 Environment Purpose array 수식의 array center 가운데정렬 description 주제어리스트환경 enumerate 숫자붙은리스트환경 eqnarray 여러줄수식 equation 수식번호가붙는별행수식 figure 그림플로트환경 flushleft 왼쪽정렬 flushright 오른쪽정렬 itemize 불릿문자붙은리스트환경 letter Letters list 리스트환경 ( 다른리스트환경을정의하는데사용 ) minipage 미니페이지 ( 박스 ) picture 선, 화살표, 원등을그릴수있는그림환경 quotation 긴인용문. 둘이상의문단이올수있음. quote 짧은인용문. 한문단만올수있음. tabbing tab ( ) 키를사용하는것과같은정렬환경 table 표플로트환경 tabular 행과열로이루어진표를만드는환경 thebibliography 참고문헌 theorem Theorems, lemmas, etc titlepage 수동타이틀페이지 verbatim 타자를치는것과같은입력한대로보이기환경 verse 시나가사등운문을조판하는환경 표 6: 표준적인 L A TEX 환경 표준적인환경들을표 6 에열거하였다. 다음절에서언제어떤환경을사용하는지예를 들어보겠다. Format/Paragraph Horizontal Alignment 텍스트는좌우정렬되는것이기본이다. 왼쪽정렬, 오른쪽정렬, 가운데정렬하기를원 할때는 flushleft, flushright, center 환경을쓴다. \raggedright, \raggedleft, \centering 은순서대로각각의환경에대응하는명령들이다. 그러나이명령은새문단을 시작하지않는다. 예를들어약간의텍스트를오른쪽정렬로배열해보자.( 예시는역자추가 ) 저자 : Guido Gonzato 박사역자 : Karnes Kim 씨 \begin{flushright} 저자 : Guido Gonzato 박사 \\ 역자 : Karnes Kim 씨 \end{flushright} ( ) \justifying ragged2e (e.g., center) (e.g., \centering) (scope) { } Format/Paragraph Vertical Alignment 문단사이가벌어지는방식은워드프로세서사용자를종종당황하게만든다.. 따라서소스에서
28 Format 메뉴 \vskip These paragraphs will be separated by 1.3 cm: 여러개의빈줄을넣는다고해서그만큼문단사이에간격이늘어나는것이아니다. 문단 사이간격을강제로벌리려면 \smallskip, \medskip, \bigskip 명령을사용해야한다. 더넓은간격이필요하다면 \vskip 명령을다음보기와같이사용한다. These paragraphs will be separated by 1.3 cm: there is a 1.3 cm gap above me. \vskip 1.3cm there is a 1.3 cm gap above me. 또는, \\ 에옵션을주어서다음과같이한다. These paragraphs will be separated by 1.3 cm: These paragraphs will be separated by 1.3 cm:\\[1.3cm] there is a 1.3 cm gap above me. there is a 1.3 cm gap above me. \vspace \vspace \vskip \vspace \vspace* \vskip 명령은문단사이에서만동작한다는것을알아두자. 따라서이전문단이없는 페이지의제일윗쪽에이명령이오더라도아무런의미가없다. 새페이지를시작하고 추가로, 예컨대 1.5cm 를남기고싶을때는어떻게할것인가? 이럴때는 \null 명령을 이용해서텍스트에 표지 를설정한다. This text comes after 1.3 cm... \null \vskip 1.3 cm This text comes after 1.3 cm... LATEX \vfil \vfill (1/2) 마지막으로 \vfill 명령은두문단사이에가변적인빈공간을넣어서두번째문단이 페이지의하단에맞추어지도록한다. 예를들면, This appears at the top of the page{\ldots} \vfill {\ldots}and this at the bottom. This appears at the top of the page and this at the bottom. quote memoir changepage adjustwidth Format/Paragraph Margins 일반적으로여백은 2.5 절에서본바와같이문서전체에대해설정되는것이다. 일부텍스 트의여백폭을바꾸기위해서문서중간에이파라미터값을바꾼다고해도동작하지않 는다. 한편문단폭이달라지는환경이 L A TEX 에이미정의되어있다. quote 나 quotation 환경은좌우여백을변경한다. 그런데이런환경을쓰지않고임의로문단여백을바꾸고 싶다면다음보기와같이새로운환경을만들어야한다. \newenvironment{margins}[2] { \begin{list}{} {
Format/Paragraph Border and Shade 29 \setlength{\leftmargin}{#1} \setlength{\rightmargin}{#2} } \item } {\end{list}} 그런다음에이새로운환경을사용한다. As you can see, this paragraph has normal margins. But please note that this paragraph has custom margins. As you can see, this paragraph has normal margins. \begin{margins}{0.5cm}{1cm} But please note that this paragraph has custom margins. \end{margins} Format/Paragraph Indentation 문단첫줄의들여쓰기크기를설정하려면 \parindent 명령에적당한값을준다. 다음 예에서첫줄들여쓰기값을 1cm 로설정하였다. \setlength{\parindent}{1cm} LATEX 1.5em 1em( ) \indent 명령과 \noindent 명령은해당문단의첫줄을들여쓰기하게 / 못하게강제한다. 문단첫줄을들여쓰기하지않고문단사이에추가적인간격을주어서구분하는경우도있다. 이런식으로하려면문단사이의추가간격길이인 \parskip 값을정해주어야한다. \setlength{\parskip}{3pt} 5.4 Format/Paragraph Border and Shade 테두리쳐진문단이나단어를얻으려면 \parbox 명령이나 framed 패키지를써서할수있다. \parbox를쓸때는 calc 패키지가필요하다. 가장쉬운방법으로 framed를쓰는것은다음과같다. this is a framed paragraph! this is a shaded paragraph, do you like it? \setlength{\framerule}{2pt} \setlength{\framesep}{5pt} \begin{framed} this is a framed paragraph! \end{framed} \definecolor{shadecolor}{rgb} {0.9,0.8,1} \begin{shaded} this is a shaded paragraph, do you like it? \end{shaded} 마찬가지로 boxedminipage 패키지의같은이름의환경을쓴다. 더자세히알고싶은분을 위해설명하자면다음명령 \framebox{ \begin{minipage}[c]{\linewidth} text to be framed \end{minipage} } framed memoir \usepackage framed paragraph boites
30 Format 메뉴 은 boxedminipage 환경과동일하다. 다음보기는 \parbox 를쓴것이다. again, a framed paragraph! \noindent \fbox{ \parbox{.9\linewidth -2 \fboxsep -2 \fboxrule} {again, a framed paragraph!} } \linewidth 는 minipage 의폭 (width) 를글줄길이와같게한다. 이길이는원하는대로 지정해도된다. 끝으로텍스트폭을알아내어서자동으로테두리치도록해보자. this is a framed word this is a \framebox[\width]{framed} word 파라미터를조작하여프레임의폭을조절할수있다. this is another framed word this is another \framebox[2\width][r]{framed} word 이예에서두번째선택인자는정렬 ( 여기서는 right) 방식을지정하는것이다. soul \hl I am a minipage, my colour is yellow! 5.5 Format/Colour 문단에테두리를치고여기에색을입히려면다음과같이한다. 칼러에대해서 5.2 절을참조. \colorbox{yellow}{ \begin{minipage} {0.8\linewidth} I am a minipage, my colour is yellow! \end{minipage} } multicols multicol multicols 5.6 Format/Columns \twocolumn 과 \onecolumn 은새페이지 를시작하면서정해진다단을설정한다. \documentclass 명령의옵션으로지정할 수있다. 이것만으로충분치않다면 multicols 패키지가같은이름의환경을제공한 다. 이소절은다음과같은명령으로이단 편집하였다. \columnseprule=1pt \begin{multicols}{2}% [\subsection{\entry{format}{columns}}] The commands \cmd{twocolumn}... \end{multicols} 단사이의간격은 \columnsep 파라미터로 제어가능하고 \columnseprule 길이는단 사이에주어진두께의선을그려준다. \onecolumn 이나 \twocolumn 의브래킷 으로둘러싼선택인자로주어지는텍스 트는해당환경에서제외된다. 예를들어 \twocolumn 에일부텍스트를선택인자로 주면해당부분을 1 단으로조판한후에 2 단 을시작한다.
Format/Styles 31 5.7 Format/Styles 워드프로세서문서와는달리 L A TEX 은처음부터 구조화된 문서를만들게되어있다. 따라서 \chapter, \section, \subsection, \paragraph와같은장절명령이마련되어있다. 보통워드프로세서에서장절을표현하기위해서는장절타이틀에해당하는부분을선택하여글자크기를크게하거나두꺼운글씨로바꾸는방법을쓴다. 그리고이렇게만들어진모양을 스타일 로등록하여적용한다. 그렇다면 L A TEX 에서만약 \section 타이틀에해당하는모양을바꾸고싶다면어떻게하는가? 이일을해주는패키지가적어도두개있다. 하나는 sectsty이라는것이고다른하나는 titlesec이라는것이다. 예를들어 sectsty을사용하는경우, section의글자를 sffamily( 산세리프체 ) 의 Large 크기로하고싶다고하자. 그러면다음과같이한다. \sectionfont{\sffamily\large} 또한가지주제로 section에붙는카운터의모양을바꾸는문제가있다. 이카운터는 L A TEX 이자동으로붙여주기때문에편하지만모양을바꿀필요가있기도하다. 이것은별도의패키지를사용하지않고도예를들어 \renewcommand\thesection{\arabic{section}} 과같은방법으로가능한데이재정의이후에수식번호, 표번호, subsection 번호등이자신의의도대로잘바뀌는지를살펴보아야한다. chngcntr라는패키지가이일을좀더쉽게해준다. 예를들어 \counterwithout{section}{chapter} 와같이함으로써 section 카운터를 chapter 카운터로부터분리할수있다. 이때는모양만바뀌는것이아니라 chapter가바뀌어도 section 번호는이어서계속된다. 이와유사한 \numberwithin out 명령을 AMS-math 패키지가제공해주고있기도하다. 위에기술한모든기능을 memoir는모두제공하고있으므로별도의패키지를로드할필요가없다. 6 Table 메뉴 꽤복잡한주제 이다. table 은 (4.12 절에서설명한 ) 떠다니는개체로서한페이지안 에서만존재한다. 즉다음페이지로페이지가나누어지지않는것이원칙이다. 이속에 들어가는것은대부분 tabular 환경인데물론다른것도얼마든지올수있다. table 의 폭은그내용물길이에따라스스로조절되는것이기본이다. 다음에보인것은일반적인테이블의형식이다. \begin{table}[htbp] % placement: here, top, bottom, separate page % \begin{small} % sets the table font \begin{center} % optional, or use \centering command % 4-column table; alignment is left, centered, right, fixed width \begin{tabular}{ l c rp{4cm} } \hline % horizontal line \textbf{left} & \textbf{centre} & \textbf{right} & \textbf{4 cm} \\ \hline tabular table (tabular) array
32 Table 메뉴 row 1, col 1 & row 1, col 2 & row 1, col 3 & row 1, col 4 \\ \cline{1-2} % horizontal line spanning columns 1-2 row 2, col 1 & row 2, col 2 & row 2, col 3 & row 2, col 4 \\ \cline{1-2} \multicolumn{2}{ c }{spanning two columns} & row 3, col 3 & row 3, col 4 \\ \cline{1-3} row 4, col 1 & row 4, col 2 & row 4, col 3 & ~ \hfill right \\ % force a space with "\ " row 5, col 1 & row 5, col 2 & row 5, col 3 & left \hfill ~ \\ row 5, col 1 & row 5, col 2 & row 5, col 3 & ~ \hfill centre \hfill ~ \\ \hline \end{tabular} \caption{a sample table.} % labels are used for cross references; % for example, "see Table~\ref{tab:sampletab}" \label{tab:sampletab} \end{center} % \end{small} \end{table} 표 7 은그결과를보여주고있다. Left Centre Right 4 cm row 1, col 1 row 1, col 2 row 1, col 3 row 1, col 4 row 2, col 1 row 2, col 2 row 2, col 3 row 2, col 4 spanning two columns row 3, col 3 row 3, col 4 row 4, col 1 row 4, col 2 row 4, col 3 right row 5, col 1 row 5, col 2 row 5, col 3 left row 5, col 1 row 5, col 2 row 5, col 3 centre 표 7: A sample table. hvfloat floatrow tabulary tabularx b longtable tabularx ltablex tabularx tabularx xcolor \rowcolors 6.6 Colour by row: one two three one two three one two three 이따금 table 의폭이너무넓어서페이지에맞지않을때가있다. 이럴경우 rotating 패 키지가 sidewaystable 이라는새로운환경을제공해준다. rotating 은이밖에도하나의 셀내용을주어진각도만큼회전시키는것도가능하다. 끝으로 tabularx 패키지는전체 테이블이일정한폭을갖도록지정할수있다. X 컬럼지시자는필요한만큼컬럼의길이를 계산해서늘려주도록하는데사용된다. 이들을종합한예를그림 4 에하나들어본다. 표준 tabular 환경은페이지를넘길수없다. 몇페이지에걸치는긴표를그려야하는 경우도드물지않은데, 이제한을극복하기위한패키지들이몇개있어서여러페이지에 걸치는표를그릴수있도록해준다. longtable, supertabular, xtab 등이그러하다. table 안에서색상을쓰려면 colortbl 패키지가필요하다. Colour by row:\\\vskip 2mm \begin{tabular}{ l c r } \hline \rowcolor{cyan} one & two & three\\ \rowcolor{green} one & two & three\\ \rowcolor{yellow} one & two & three\\ \hline \end{tabular}
표의행간격 33 \begin{sidewaystable} \begin{tabularx}{7.5cm}{ l X X } \hline \textbf{normal} & \textbf{tilted} & \textbf{wider} \\ \hline normal & \rotatebox{30}{i'm tilted!} & I'm wider \\ \hline \end{tabularx} \end{sidewaystable} normal tilted wider I m tilted! wider normal 그림 4: sidewaystable 과 tabularx 의예 가끔편집자들은세로괘선이조판상그다지보기좋지않기때문에가로괘선만으로그리라고요구하는경우가있다. 만약세로괘선이전혀없다면 booktabs 패키지를이용하여더세련된표를만드는것이가능하다. memoir에는이패키지의기능이이미포함되어있으므로별도로로드하지않아도된다. 깔끔한트릭하나. L A TEX 으로표를그리는것이너무복잡하다고생각된다면 OpenOffice Calc와 Calc2LaTeX을사용해보라. OpenOffice는자유스프레드시트프로그램이고 Calc2LaTeX은확장모듈인데일정한셀범위를 L A TEX 테이블로변환해준다. http:// www.openoffice.org/, http://calc2latex.sourceforge.net/. 6.1 표의행간격행의높이는그안에오는텍스트의높이에따라스스로조절한다. 행시작 에간격을추가하려면특정높이 (height) 와 0 길이를가진 \rule로시작하는트릭을쓸수있다. 행 에간격을추가하려면 \\ 에추가간격값을선택인자로지정한다. one two three 0.3 centimeters after this line one two three one two three 1.2 centimeters before this line \begin{tabular}{lll} one & two & three\\ 0.3 centimeters & \textbf{after} & this line\\[0.3cm] one & two & three\\ one & two & three\\ \rule{0pt}{1.2cm}1.2 centimeters & \textbf{before} & this line\\ \end{tabular} [ 역자추가 ] 표전체의행간격을일괄해서바꾸려할때는 \arraystretch 값 ( 기본값은 1) 을변경 (\renewcommand) 시켜준다. 단이값을전역적으로바꾸면 tabular만이아니라수식의 array도영향을받는다. 한가지더추가하자면 setspace 패키지 (memoir에는이미포함되어있음 ) 는플로트안의내용 ( 과각주 ) 을행간격 1.0으로조절하는기능을
34 Table 메뉴 가지고있다. 그러므로 table 안의내용은문서의행간격과별개로기본행간격 1.0 으로 조판된다. 물론 \arraystretch 로이를바꾸는것이가능하다. 6.2 괘선두께 one two three four five six \begin{tabular}{ lll } \hline %\setlength{\arrayrulewidth}{5pt} one & two & three\\ \hline four & five & six\\ %\setlength{\arrayrulewidth}{1pt} \hline \end{tabular} [ 역자추가 ] makecell 을이용하여괘선굵기를바꾸어보는예이다. makecell 과 multirow 패키지가필요하다. Second First multlined column head Cell text A...... some text and more Multicolumn head Third column head 28 31 \renewcommand\theadset{\def\arraystretch{.85}}% \renewcommand\theadgape{} {\begin{tabular}{!{\vrule width1.2pt}c!{\vrule width1.2pt}c c!{\vrule width1.2pt}} \Xhline{1.2pt} \multirowthead{4}{first}& \multicolumn{2}{c!{\vrule width1.2pt}}% {\thead{multicolumn head}}\\ \Xcline{2-3}{.8pt} & \thead{second \\multlined \\ column head} & \thead{third \\ column head}\\ \Xhline{1.2pt} Cell text & A &\multirowcell{4}{28--31}\\... &... & \\ some & text & \\ and & more & \\ \Xhline{1.2pt} \end{tabular}} 앞서언급한 booktabs 는 \toprule \midrule \bottomrule 명령을제공하는데이를통 하여세로괘선이없는표에서가로선의굵기를조절해준다. 6.3 숫자정렬테이블안의숫자들을소수점기준으로정렬해야하는경우가있다. 가장간단한방법은 @ 컬럼지시자를이용하는것인데셀안에숫자만있을때는쓸만하다. 컬럼분리자 & 가소수점으로대치되게하는트릭이다. 3.14159 1.61803 1.41421 100.00000 \begin{tabular}{r@{.}l} 3&14159\\ 1&61803\\ 1&41421\\ 100&00000 \end{tabular}
slashbox 패키지 35 다른방법으로 dcolumn 패키지를사용한다. 이패키지는 D 컬럼지시자를추가해주는데세개의인자를갖는다. L A TEX 소스와출력에서사용할분리자 ( 보통둘다동일하게. 를쓴다 ), 세번째것은소수점아래표시할자릿수. 세번째인자는 4.3과같이점기준왼쪽과오른쪽자릿수를지정할수도있다. 이값이 1 이면컬럼내용은분리자를기준으로가운데정렬된다. 이컬럼의모든내용은숫자라고간주되어수학모드로조판된다. 따라서첫행에헤딩을넣고자한다면 \mbox 안에텍스트를두어야한다. One Two Three 10,33 10.33 10.33 1000 1000 1000 5,1 5.1 5.1 3,14 3.14159 3.14159 \begin{tabular}{ D{.}{,}{4.2} % D{.}{.}{5} D{.}{.}{-1} } \hline \mbox{one} & \mbox{two} & \mbox{three} \\ 10.33 & 10.33 & 10.33 \\ 1000 & 1000 & 1000 \\ 5.1 & 5.1 & 5.1 \\ 3.14 & 3.14159 & 3.14159 \\ \hline \end{tabular} 6.4 slashbox 패키지 이패키지는 \backslashbox 명령을제공한다. Date Monday Tuesday Lesson Stratigraphy room A room A Chemistry room B Lab α Physics room C Lab β 6.5 L A TEX 테이블로데이터가져오기 \begin{tabular}{ l l l } \hline \backslashbox[2cm]{lesson}{date} & Monday & Tuesday \\ \hline Stratigraphy & room A & room A \\ Chemistry & room B & Lab $\alpha$ \\ Physics & room C & Lab $\beta$ \\ \hline \end{tabular} slashbox makecell. 데이터파일은많은사람에게일용할양식이다. 대부분의데이터파일은숫자컬럼을가 지고있는 ASCII 텍스트이지만어떤사람들은스프레드시트를이용하기도한다. 거의 모든스프레드시트프로그램은시트를 ASCII 베이스의.cvf 파일포맷으로내보내기할 수있는데이파일은 ; 문자를분리자로사용한다. 데이터파일을 L A TEX 테이블로변환하는것은지루한작업이다. 아래의 UNIX 용스크립트 는데이터파일을임의의컬럼수를가진테이블로변환하는것이다..cvf 파일에대해서도 동작한다. #!/bin/sh # dat2tex: converts tabular data to a tabular environment if [ $#!= 1 ]; then echo "Usage: $0 <datafile>"