목적 TikZ ( 틱즈?) 강의목적 TikZ가처음인 L A TEX 사용자를대상으로, 최대한간추려서, 뒤에있을강의들을따라갈수있도록. + 원하는그림을 TikZ로그릴수있게. 본자료의목적 워크숍종료후참고자료로활용 워크숍비참여자를위한지침서 박승원 ( 서울대물리천문학부 ) Tik

Similar documents
The Not So Short Introduction to L A TEX 2ε Chapter 4 5 특별한기능 수학관련그림그리기 KINS 2013 년 1 월 1 일

LaTeX입문 - Day 2

I LATEX LATEX

Week3

2013 <D55C><ACBD><C5F0><BC31><C11C>(<CD5C><C885>).pdf

제 1 절 복습 \usepackage{ g r a p h i c x }... \ i n c l u d e g r a p h i c s [ width =0.9\ textwidth ] { b e a r. j p g } (a) includegraphics 사용의일반적인유형

c

º»¹®b60�µ¿£03ÖÁ¾

슬라이드 1

이장에서다룰내용 테두리를제어하는스타일시트 외부여백 (Margin) 과내부여백 (Padding) 관련속성 위치관련속성 2

수식모드수식의표현법 수학식표현 조남운 조남운 수학식표현

2014밝고고운동요부르기-수정3

2005프로그램표지

Microsoft PowerPoint - logo_2-미해답.ppt [호환 모드]

자식농사웹완


표1.4출력

003-p.ps

중앙도서관소식지겨울내지33

표1~4


chungo_story_2013.pdf

*중1부

2

Çѱ¹ÀÇ ¼º°øº¥Ã³µµÅ¥

...._


전반부-pdf

<4D F736F F F696E74202D20312E20B0E6C1A6C0FCB8C15F3136B3E2C7CFB9DDB1E25F325FC6ED28C0BA292E >

_

12월월간보고서내지편집3

에너지포커스 2007년 가을호


01_당선자공약_서울

인권문예대회_작품집4-2




목차

A°ø¸ðÀü ³»Áö1-¼öÁ¤

±¹³»°æÁ¦ º¹»ç1

¿¡³ÊÁö ÀÚ¿ø-Âü°í ³»Áö.PDF

전반부-pdf

뉴스레터6호

Microsoft PowerPoint 하반기 크레딧 전망_V3.pptx

50차 본문 최종

양성내지b72뼈訪?303逞

³»Áöc03âš

fsb9¿ù³»ÁöÃÖÁ¾Ãâ

¾ç¼º-¾÷¹«Æí¶÷-³»¿ëÃà¼Ò4

전도대회자료집


< DBAB4B9ABC3BB5FBAB9B9ABB0FCB8AEB8C5B4BABEF32D33B1C72E706466>

<3344C7C1B8B0C6C320BFE4BEE02D E706466>

µ¶ÀÏÅëÀÏÁý1~2Æíq36£02Ð


gnu-lee-oop-kor-lec06-3-chap7

CAD 화면상에 동그란 원형 도형이 생성되었습니다. 화면상에 나타난 원형은 반지름 500인 도형입니다. 하지만 반지름이 500이라는 것은 작도자만 알고 있는 사실입니다. 반지름이 500이라는 것을 클라이언트와 작업자들에게 알려주기 위 해서는 반드시 치수가 필요하겠죠?

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

FD¾ØÅÍÇÁ¶óÀÌÁî(Àå¹Ù²Þ)-ÀÛ¾÷Áß

Microsoft 을 열면 깔끔한 사용자 중심의 메뉴 및 레이아웃이 제일 먼저 눈에 띕니다. 또한 은 스마트폰, 테블릿 및 클라우드는 물론 가 설치되어 있지 않은 PC 에서도 사용할 수 있습니다. 따라서 장소와 디바이스에 관계 없이 언제, 어디서나 문서를 확인하고 편집

쉽게 풀어쓴 C 프로그래밍

PowerPoint Template

언어학에서의 라텍 활용

Microsoft PowerPoint - chap01-C언어개요.pptx

쉽게 풀어쓴 C 프로그래밍

ÃູÀÇÅë·Î

Microsoft PowerPoint - 05geometry.ppt

MVVM 패턴의 이해

예제 <!DOCTYPE html><html><head> <script type="text/javascript"> function arcto() { var canvas = document.getelementbyid('canvas'); context = canvas.get

mobile_guide_SA

Contents 3 Info Desk 4 Cover Story 10 New Product A to Z 15 Web Technique 18 Gallery 22 Designer World 27 Customer Spotlight 29 Illustrator Tutorial 3

Structure and Interpretation of Computer Programs: Assignment 3 Seung-Hoon Na October 4, George (아래 3개의 문제에 대한 구현이 모두 포함된 george.rkt파일을 제출하시오.

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

커버컨텐츠

π >> x=linspace(0,2*pi,30); >> y=sin(x); >> plot(x,y) π

2 C freetype ttf2tfm 18 D ttf.sh 19 E FD 20

Contents 3 Info Desk 4 Cover Story 7 New Product A to Z 21 Web Technique 27 Gallery 32 Designer World 35 Customer Spotlight 36 Illustrator Tutorial 39

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - Java7.pptx

PowerPoint Presentation

LaTeX. [width=1em]Rlogo.jpg Sublime Text. ..

Orcad Capture 9.x

쉽게 풀어쓴 C 프로그래밍

교육실습 소감문

<4D F736F F D C1A6BEC8BCAD20C0DBBCBAB0FA20C7C1B8AEC1A8C5D7C0CCBCC720B1E2B9FD2E646F63>

2_안드로이드UI

열거형 교차형 전개형 상승형 외주형 회전형 도해패턴 계층형 구분형 확산형 합류형 대비형 상관형 (C) 2010, BENESO All Rights Reserved 2

!K_InDesginCS_NFH

KT Community Relations White Book

Infinity(∞) Strategy

Contents 3 Info Desk 7 Cover Story 10 New Product A to Z 16 Web Technique 22 Gallery 26 Designer World 32 Customer Spotlight 34 Illustrator Tutorial 3

BibLaTeX을 이용한 한국어 참고 문헌 처리의 가능성

유아-주요업무내지(1-3)

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과


untitled

PowerPoint 프레젠테이션

Transcription:

TikZ 기초 박승원 http://swpark.me 서울대학교물리천문학부 2017 년 11 월 18 일

목적 TikZ ( 틱즈?) 강의목적 TikZ가처음인 L A TEX 사용자를대상으로, 최대한간추려서, 뒤에있을강의들을따라갈수있도록. + 원하는그림을 TikZ로그릴수있게. 본자료의목적 워크숍종료후참고자료로활용 워크숍비참여자를위한지침서 박승원 ( 서울대물리천문학부 ) TikZ 기초 2 / 31

목차 목적 / 목차 TikZ 개관 Main: TikZ 주요문법 사용빈도순으로소개. TikZ 사용팁 / 관련논의 읽을거리 / 참고문헌 박승원 ( 서울대물리천문학부 ) TikZ 기초 3 / 31

TikZ 개관 TikZ ist kein Zeichenprogramm TikZ is not a drawing program 마우스 / 태블릿으로그리는것이아니다! TEX 에서그림그리기, 판면꾸미기등에사용. PSTricks 이후로 TikZ가대세. 박승원 ( 서울대물리천문학부 ) TikZ 기초 4 / 31

그림도구로서의 TikZ 자주쓰이는그림도구들 : PowerPoint / 아래아한글 Adobe Illustrator GeoGebra TikZ Inkscape / GIMP / Windows 그림판 https://draw.io 손으로그리기 ( 볼드 : 자유소프트웨어.) 박승원 ( 서울대물리천문학부 ) TikZ 기초 5 / 31

TikZ 준비하기 template.tex (examples 폴더에있습니다.) 그림을그리기위한기본템플릿. 1 \documentclass{standalone} 2 \usepackage{tikz} 3 \begin{document} 4 \begin{tikzpicture} 5 \draw (0,0) -- (1,1); % contents goes here 6 \end{tikzpicture} 7 \end{document} standalone 클래스의사용 tikzpicture 외에는아무것도없어야함. 옆에미리보기창을띄워놓고수시로컴파일해보며작업. 박승원 ( 서울대물리천문학부 ) TikZ 기초 6 / 31

TikZ 준비하기 taegeukgi.tex TeXstudio 의경우, 이렇게... 박승원 ( 서울대물리천문학부 ) TikZ 기초 7 / 31

TikZ 좌표계 오늘은 2차원데카르트좌표계, 극좌표계만사용한다. 3차원, 택시거리계, 무게중심좌표계, pgfmanual(tikz 매뉴얼 ) 13 장참조 여기에서부터 pgfmanual 이라는말은생략. y ( 2, 1) (60 : 2) O x 박승원 ( 서울대물리천문학부 ) TikZ 기초 8 / 31

들어가기에앞서 intro.tex 아래의코드는어떤그림을그릴까요? 1 \draw (0,0) -- (1,1); 2 \draw (0,0) rectangle (2,1); 3 \draw (0,0) circle [radius=0.5]; 4 \node at (0,0) {Some text}; 5 \draw (0,0) -- (120:2); 간결하고알아보기쉬운 TikZ 의문법. 보통의 L A TEX 과다르게, 각명령은세미콜론 (;) 으로종결. 박승원 ( 서울대물리천문학부 ) TikZ 기초 9 / 31

경로그리기 path.tex 1 \draw (0,0) -- (1,1); 2 \draw (0,0) -- (1,-1) -- (2,-2); 3 \draw (0,0) -- (2,0) -- (2,3) -- (0,3) -- cycle; 4 \draw (3,0) arc (0:120:3) -- cycle; cycle: 첫번째 / 마지막점을이어폐곡선을만듦 -- 외에도, -, arc, parabola, sin,... visualtikz 2장참조. 박승원 ( 서울대물리천문학부 ) TikZ 기초 10 / 31

도형그리기 shapes.tex 1 \draw (0,0) circle [radius=0.5]; 2 \draw (0,0) rectangle (2,3); 3 \draw (0,0) grid (5,5); 엄밀히는도형도 path. 따라서도형내부는투명. 박승원 ( 서울대물리천문학부 ) TikZ 기초 11 / 31

경로꾸미기 path-style.tex 1 \draw [ 옵션1, 옵션2] 경로 ; 2 \draw[blue, <->, dashed] (0,0) -- (4,1) -- (3,3); 3 \draw (1,2) -- (2,2) [->] -- (3,1) -- (4,2); % Nope. 색 : red, blue, white,... 두께 : line width = 2pt, thick,... (15.3.1절) 형태 : dashed, dotted,... 화살표촉 : ->, <->, <-> 등자유롭게 더다양한촉모양은 visualtikz 4.10 절참조 ( 번거로우니 ) 웬만하면그냥씁시다. 박승원 ( 서울대물리천문학부 ) TikZ 기초 12 / 31

이런것도있습니다 coil.tex 경로의형태는정말다양한것이가능. ex) 코일 : ( 와, PPT 에는없는도구다!) \usetikzlibrary{...} 는 preamble 1 에삽입. 1 % \usetikzlibrary{decorations.pathmorphing} 2 \draw[decoration={segment length=2mm, amplitude=2mm, coil}, decorate] (0,0) -- (2,2); 1 \begin{document} 이전 박승원 ( 서울대물리천문학부 ) TikZ 기초 13 / 31

도형꾸미기 shapes-style.tex 테두리조정 : 경로와동일 색채우기 (\draw는투명 ): \fill, \filldraw 무늬 : (60장참조 ) \usetikzlibrary{patterns} north east lines, dots, bricks,... 1 % \usetikzlibrary{patterns} 2 \fill[red] (0,0) circle [radius=1]; 3 \filldraw[pattern=bricks, draw=blue, ultra thick] (0,0) rectangle (2,3); 4 \filldraw[fill=green, opacity=0.8, draw=blue, ultra thick] (1,1) rectangle (3,4); 박승원 ( 서울대물리천문학부 ) TikZ 기초 14 / 31

텍스트삽입 text.tex 새로운명령어 : \node 1 \node at (0,2) {Some text}; 2 \draw (2,-1) -- (2,2) node[right] {A}; 3 \draw[ <-> ] (0,0) -- node[midway, above] {$ l $} (3,1); 텍스트대신그림도삽입할수있다. 박승원 ( 서울대물리천문학부 ) TikZ 기초 15 / 31

상대적위치사용하기 relative.tex 아래셋은모두같은결과를낸다. 1 \draw (10,10) -- (10,11) -- (11,11); 2 \draw (10,10) -- +(0,1) -- +(1,1); 3 \draw (10,10) -- ++(0,1) -- ++(1,0); + 1 개 : 임시적. 뒤의상대좌표에영향을끼치지않는다. 가지처럼뻗어나가는그림 + 2 개 : 구한좌표를뒤의상대좌표계산에사용 계속이어지는경로 박승원 ( 서울대물리천문학부 ) TikZ 기초 16 / 31

텍스트삽입 상대적위치 text-rel.tex 점라벨링하기 : 크게 2 가지방법이있다. (17.5 절참조 ) 1 \fill (0,0) circle [radius=2pt] node[above right] {A}; 2 \fill (1,0) circle [radius=2pt] +(0.25,0.25) node {B}; above left above above right left right below left below below right 박승원 ( 서울대물리천문학부 ) TikZ 기초 17 / 31

calc calc.tex \usetikzlibrary{calc} 1 \draw (0,0) -- (3,1) -- ($ (3,1) + (-1,1) $); 2 \draw (0,0) -- ($ 2*(1,2) $); 13.5 절참조 보다다양한수학계산은 pgfmath 관련명령사용 x y, floor(x), isprime(x), int(x), rand,... 89.2, 89.3, 90장참조힘들면 LuaT EX 사용 \RequirePackage{luatex85} 박승원 ( 서울대물리천문학부 ) TikZ 기초 18 / 31

node 와 coordinate coordinate.tex 점에이름짓기 : 1 \node [ 옵션 ] ( 이름 ) 위치 { 내용 }; 2 \coordinate [ 옵션 ] ( 이름 ) 위치 ; 1 \node (A) at (1,1) {a}; 2 \node (B) at (2,2) {b}; 3 \draw (A) -- (B); 4 % \usetikzlibrary{positioning} 5 \node (C) [below=of A] {c}; 박승원 ( 서울대물리천문학부 ) TikZ 기초 19 / 31

반복문의활용 foreach.tex pgffor 패키지의 \foreach 문은평소에도사용가능. TikZ 에서잘사용하면강력한도구가된다. 1 % \usepackage{pgffor} 2 \draw (0,0) grid (5,5); 3 \foreach \i in {1,2,...,5}{ 4 \draw (\i,\i) circle [radius=0.1*\i] 5 node [below right] {$ (x_{\i}, y_{\i}) $}; 6 } 박승원 ( 서울대물리천문학부 ) TikZ 기초 20 / 31

예시 : 각도기그리기 protractor.tex 140 130 50 120 60 110 70 100 80 90 90 80 100 70 110 60 120 50 130 40 40 140 150 30 30 150 160 20 20 160 170 10 10 170 180 0 + 0 180 ifthen 의 \ifthenelse 문, intcalc 의 \intcalcmod 사용. 소스 : git.io/vfrvl 박승원 ( 서울대물리천문학부 ) TikZ 기초 21 / 31

scope 환경 scope.tex 원래 tikzpicture 환경에서전역옵션사용가능. \begin{tikzpicture}[... ], 혹은 tikzset/tikzstyle 이를국소적으로사용가능케한것이 scope 환경. 1 \begin{tikzpicture}[blue] 2 \draw (0,0) -- (1,1); 3 \begin{scope}[red] 4 \draw (1,0) -- (2,1); 5 \draw (2,0) -- (3,1); 6 \end{scope} 7 \draw (3,0) -- (4,1); 8 \end{tikzpicture} 박승원 ( 서울대물리천문학부 ) TikZ 기초 22 / 31

clip clip1.tex 기본적으로는 \draw 와동일. 그려진도형내부의객체들만그려짐 1 % draw option: draw a margin. 2 \clip[draw] (0,0) circle [radius=2.6]; 3 \draw (-3,-3) grid (1,1); 4 \draw (1,1.5) circle [radius=1]; 5 \fill (4,0) circle [radius=2.6]; 박승원 ( 서울대물리천문학부 ) TikZ 기초 23 / 31

scope + clip clip2.tex scope를사용하지않으면 clip은전체에적용됨. scope를통해, 하나의 tikzpicture에여러그림작도가능 1 \begin{scope} 2 \clip (-2,0) circle [radius=3]; 3 \fill[red] (-2,0) circle [radius=3]; 4 \end{scope} 5 \begin{scope} 6 \clip (2,0) circle [radius=3]; 7 \fill[blue] (2,0) circle [radius=3]; 8 \fill[green] (-2,0) circle [radius=3]; 9 \end{scope} 박승원 ( 서울대물리천문학부 ) TikZ 기초 24 / 31

기타팁 컴파일이끝나질않아요 세미콜론 (;) 을빠트렸을가능성이높습니다. 보통에러메시지로알려주는데, 가끔무한루프를도는듯... 미리보기에서선이안보여요 선이수평 / 수직일경우 화면 에서보이지않는경우도. \documentclass{standalone} 의유용성 그림이본문속에작게보이면그리기힘듦. 문서전체를조판할때마다그림을새로그리는것은낭비. pdfcrop, convert(imagemagick) 등의후처리가편해짐 박승원 ( 서울대물리천문학부 ) TikZ 기초 25 / 31

이번시간에안한것들 그라데이션 (Shading) / 색배합 (xcolor) \tikzset, \tikzstyle의활용 TikZ 관련패키지의활용 애니메이션만들기 GeoGebra에서의 TikZ 기타 ; 수없이많은명령어의수없이많은옵션 등등... 박승원 ( 서울대물리천문학부 ) TikZ 기초 26 / 31

TikZ 의왕도 기초문법에익숙해지기 여기저기서최대한많이써보기 // 쓸일이많아야... 간결하게코딩하려노력하기 TikZ의이점을살리는길. 같은결과라도더간단하고직관적인방법이있을수도! 남의코드에서배우기 심심할때마다 pgfmanual, texample.net 오늘워크숍을열심히보고듣기... 박승원 ( 서울대물리천문학부 ) TikZ 기초 27 / 31

TikZ 의장단점 ( 사용자입장에서.) 장점 : 무료! 반복작업가능 / 다양한패키지 단순하지만품위있는그림을빠르게... 단점 : 표현수단의확대 표현의확대 생각의확대 좌표설정이까다로움 너무긴분량의매뉴얼 과거의 PSTricks 에비하여빈약한생태계 박승원 ( 서울대물리천문학부 ) TikZ 기초 28 / 31

읽을거리 pgfmanual: TikZ/PGF의바이블. 너무길다는단점. VisualTikZ: 시각적인사용가이드. (VisualPSTricks에서유래 ) awesome-tikz: TikZ 관련읽을거리모음 그중에서도 : minimaltikz: 급한사람들을위하여 : TeXample.net: 다양한 TikZ 예시수록 Nice Scientific Pictures: 걸작모음 seungwonpark/tikz-gallery: 본발표자의 TikZ 작품 (?) 모음 그냥, 심심하다면 (?)... TikZ의저자, TIll Tantau의 2015 dante 컨퍼런스발표자료 : Small TikZ miracles ( 독일어 ) 박승원 ( 서울대물리천문학부 ) TikZ 기초 29 / 31

참고문헌 T.Tantau (2015), The TikZ and PGF Packages (texdoc tikz) 윤석천 (2015), LaTeX 쉽게쓰기, bit.ly/2txsrgi J.P.Casteleyn (2017), Visual TikZ (texdoc visualtikz) 박승원 (2017), Graphing/Drawing Tools for Physics Research, goo.gl/lz2gbl 조인성 (2017), 개인서신 박승원 ( 서울대물리천문학부 ) TikZ 기초 30 / 31

감사합니다 박승원 ( 서울대물리천문학부 ) TikZ 기초 31 / 31