Top Banner

of 43

Manual do pacote Tikz para Latex.

Jun 02, 2018

Download

Documents

Diego oliveira
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 8/10/2019 Manual do pacote Tikz para Latex.

    1/41

    .

    Desenhando no Latex com TikzDiego Oliveira | [email protected]

    www.number.890m.com

  • 8/10/2019 Manual do pacote Tikz para Latex.

    2/41

    Desenhando no Latex com Tikz

    Introdu cao: Apesar de uma extensa documenta cao estar disponvel nainternet, sobre Latex e o pacote Tikz, a maior parte esta em ingles ou setrata apenas de c opia de outras c opias, o que diculta a localiza cao dematerial realmente relevante. Assim, carecemos de trabalhos ou artigostecnicos sobre o uso da linguagem, e principalmente do pacote Tikz, emlngua portuguesa. Por isso esta apostila pretende trazer os principaiscomandos do pacote Tikz para ser usado dento do latex.

    [email protected] | c | www.number.890m.com

  • 8/10/2019 Manual do pacote Tikz para Latex.

    3/41

    Sumario1 O QUE E O TIKZ? 5

    1.1 O Qtikz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.2 O TikzEdt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3 O Geogebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    2 USANDO O TIKZ NO KILE OU NO TEXMAKER 7

    3 LINHAS 73.1 Arestas: Miter Limit . . . . . . . . . . . . . . . . . . . . . . . . . . 93.2 Atributos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    3.2.1 Atributos de Espessura . . . . . . . . . . . . . . . . . . . . 103.2.2 Atributo de Cor . . . . . . . . . . . . . . . . . . . . . . . . 10

    3.2.3 Atributos de Estilo . . . . . . . . . . . . . . . . . . . . . . 113.2.4 Atributos em Grupo . . . . . . . . . . . . . . . . . . . . . . 11

    4 RET ANGULOS 12

    5 CIRCUNFER ENCIAS, ELIPSES E ARCOS 145.1 SETAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    6 COORDENADA POLAR 17

    7 GRADE (Grid) 17

    8 COR 188.1 Fill e Filldraw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198.2 Shade : Gradiente . . . . . . . . . . . . . . . . . . . . . . . . . . . 208.3 Opacidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    9 LEGENDAS: NODE 24

    10 REPETIC AO: FOREACH 25

    11 FUNC OES 26

    12 CURVAS NO TIKZ 2812.1 Parabolas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2812.2 Rounded Corners . . . . . . . . . . . . . . . . . . . . . . . . . . . 2812.3 Comando To . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2912.4 Smooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3012.5 Curvas de Bezier . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    13 Coordenadas (Coordinate) 33

    14 Transforma coes Geometricas 3414.1 O Ambiente Scope . . . . . . . . . . . . . . . . . . . . . . . . . . 3414.2 Rotacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3714.3 Escalamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

  • 8/10/2019 Manual do pacote Tikz para Latex.

    4/41

    SUM ARIO www.number.890m.com

    15 CLIP 39

    15.1 REFERENCIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    4

  • 8/10/2019 Manual do pacote Tikz para Latex.

    5/41

    www.number.890m.com

    1 O QUE E O TIKZ?

    O Tikz e um pacote para latex desenvolvido por Ate Tantau para a producaode imagens vetoriais a partir de descricoes analticas. O Tikz pode ser usado emqualquer ambiente latex como, por exemplo, Kile ou Texmaker embora seu usopara estudo seja mais viavel no software Qtikz ou TikzEdt , pois oferecem umaprevia do que esta sendo desenhado em tempo real sem a necessidade de ter decompilar o documento a cada linha escrita para saber o que esta ocorrendo. OQtikz esta presente na central de programas do Ubuntu mas antes deve se ter umcompilador de latex ja instalado para poder utiliza-lo. Tanto o Qtikz como TikzEdtestao disponveis para Windows. Recomendo a instala cao do TikzEdt por ser maiscompleto.

    O download do Qtikz e TikzEdt podem ser feitos atraves do link abaixo.

    http://www.hackenberger.at/blog/ktikz-editor-for-the-tikz-language/

    1.1 O Qtikz

    Este programa nao e tao completo como seu concorrente, o TikzEdt, masganha do mesmo em questao de estabilidade. Esta disponvel tanto para Windowscomo para Linux.

    1.2 O TikzEdt

    O TikzEdt e o programa mais completo que se pode achar atualmente. Mas, in-felizmente so se encontra disponvel para Windows e nao funciona bem emulado como Wine. Tambem nao esta em sua vers ao nal e como e um projeto desenvolvidopela comunidade ainda esta em sua versao beta e n ao saira dela t ao cedo. Alemdisso, possui alguns problemas que podem acarretar em seu mau funcionamento.

    5

  • 8/10/2019 Manual do pacote Tikz para Latex.

    6/41

    1.3 O Geogebra www.number.890m.com

    1.3 O Geogebra

    Voce pode usar o Geogebra para gerar algum codigo em latex embora issoseja pouco recomendavel. Por exemplo, abra o Geogebra e desenhe um crculo deraio igual a um. Em seguida va no menu: Arquivo > Exportar > Janela deVisualiza cao como PGF/Tikz. Ira aparecer a seguinte janela.

    O campo xMin, yMin, xMax e yMax sao as coordenadas da tela do Geogebra quesera capturada. Apenas os desenhos dentro desse retangulo e que serao consideradaspara geracao dos c odigos. Experimente modica-los enquanto olha para a tela doGeogebra.

    Clicando no botao Gerar c odigo PGF/Tikz . No campo mais abaixo da janelaira ser gerado todo o c odigo latex responsavel por gerar o desenho que voce criou.

    6

  • 8/10/2019 Manual do pacote Tikz para Latex.

    7/41

    www.number.890m.com

    O Geogebra seria perfeito para gerar nossos codigos em latex, entretanto quando

    a gura e muito complexa o programa quase sempre erra na geracao do c odigo esempre escreve linhas desnecessarias que podem necessitar serem apagadas paraserem utilizadas em outros programas.

    2 USANDO O TIKZ NO KILE OU NO TEX-MAKER

    Normalmente o pacote Tikz e instalado junto com o Miktex, ou qualquer outrocompilador de latex, assim basta chamar o pacote no pre-ambulo do documentousando o

    \usepackage{tikz}

    E dentro do document usar o ambiente Tikzpicture.

    \begin{tikzpicture}

    % Toda instru c~ao fica dentro do ambiente.

    \end{tikzpicture}

    Toda instru cao que utiliza-se do pacote Tikz deve ser escrita dentro do ambientetikzpicture, caso contr ario o documento nem sera compilado.

    Se por acaso o pacote tikz nao estiver instalado em sua maquina voce podebaixa-lo. O arquivo baixado tera a extensao .sty , coloque-o no mesmo diretorio doseu arquivo .tex . Com isso ele ja estara pronto para ser usado.

    3 LINHAS

    Para desenhar a maioria das guras usamos o comando draw (desenho) ele eo comando mais basico do Tikz.

    \ begin {t ikzpic ture}\draw(0 ,0) - - (4 ,0) ;\ en d {t ikzpic ture}

    A instrucao acima desenha uma linha reta com extremos em (0, 0) e (4, 0).Voce tambem pode fazer uma sequencia de segmentos que vai de ponto a ponto:

    7

  • 8/10/2019 Manual do pacote Tikz para Latex.

    8/41

    www.number.890m.com

    \ begin {t ikzpic ture}\ d ra w (0 , 0) - - ( 1 ,2 ) - - ( 2 ,3 )

    --(1,0);\ en d {t ikzpic ture}

    Por padrao essas coordenadas estao em centmetros.

    Outra forma de desenhar linhas e indicando seu ponto inicial e depois o quantocada coordenada desse ponto deve ser incrementada para que seja formado o se-gundo extremo da reta. Por exemplo, imagine um segmento com uma extremidadeem (1, 2) e outra em (2, 3). Escrevendo esse segundo ponto em funcao do primeirocaria.

    (2, 3) = (1, 2) + (1, 1)

    Assim poderamos desenhar essa linha do seguinte modo:

    \ begin {t ikzpic ture}\d r aw(1 , 2 ) - -++(1 , 1 ) ;\ en d {t ikzpic ture}

    Que seria o equivalente a escrever:

    \ begin {t ikzpic ture}\d r aw(1 , 2 ) - - (2 , 3 ) ;\ en d {t ikzpic ture}

    Esse recurso pode ser usado tambem com n umeros negativos e racionais.

    \ begin {t ikzpic ture}[ l inewidth=5pt ]

    \draw[mi ter l imit=25](6 ,0)

    --++(5, .5) --++(-5, .5);\ en d {t ikzpic ture}

    Esse ultimo exemplo mostra um resultado muito importante. O ++ realiza oincremento do ponto menos a esquerda e nao a partir do ponto inicial.

    Se voce e do tipo que nao gosta muito de escrever existe uma maneira dedesenhar varias linha de um modo mais enxuto. Por exemplo, o codigo a seguir

    8

  • 8/10/2019 Manual do pacote Tikz para Latex.

    9/41

    3.1 Arestas: Miter Limit www.number.890m.com

    \ begin {t ikzpic ture}\draw[ l ine width=1pt ](0,0) --(1,0)(0, .5) --(1, .5)

    (0 ,1) - - (1 ,1) ;\ en d {t ikzpic ture}

    e equivalente a:

    \ begin {t ikzpic ture}[ l inewidth=1pt ]

    \draw(0 ,0) - - (1 ,0) ;\draw (0, .5) --(1, .5);\draw(0 ,1) - - (1 ,1) ;\ en d {t ikzpic ture}

    3.1 Arestas: Miter Limit

    Um problema que pode surgir ao usar o line width ocorre na questao das arestasque tendem a se formar. Observe o desenho abaixo.

    \ begin {t ikzpic ture}[ l inewidth=5pt ]

    \draw(6,0) --(11, .5)--(6,1);\ en d {t ikzpic ture}

    Aqui temos dois segmentos um segmento denido pelas coordenadas (6, 0) e(11, .5) e outro com as coordenadas (11, .5) e (6, 1). Note que no ponto onde osdois segmentos se encontram formou-se duas arestas.

    3.2 Atributos

    As linhas possuem tres tipos de atributos que sao:

    Atributos de espessura; Atributo de cor; Atributos de estilo.

    9

  • 8/10/2019 Manual do pacote Tikz para Latex.

    10/41

    3.2 Atributos www.number.890m.com

    Para modicar esses atributos voce deve coloca-los entre chaves depois do co-

    mando draw e separados por vrgula caso haja mais de um.Por exemplo, a linha a seguir teve sua espessura alterada para 10 pontos atraves

    do atributo line whidth e cor modicada para vermelho atraves do atributo color .

    \ begin {t ikzpic ture}\d r aw [ l i ne w idth=10pt ,

    co lor = red] (0 ,0) - - (4 ,0) ;\ en d {t ikzpic ture}

    A ordem com que os atributos sao informados nao faz a menor diferenca.

    3.2.1 Atributos de Espessura

    Esse grupo de atributos sao compostos pelos comandos: ultra thin , very thin ,thin , semithick , thick e o mais importante o line whidth .

    \ begin {t ikzpic ture}\d r aw [u l tr a t hin ] (0 ,0 )

    --(4,0);\ d r aw [ve ry t h in ] (0 ,0)

    --(4,0);\draw [ th in] (0 ,0) - - (4 ,0) ;\draw [ semi thick] (0 ,0)

    --(4,0);\draw [ th ick] (0 ,0) - - (4 ,0) ;\ d r aw [ l i ne w idth=10pt ] (0 ,0)

    --(4,0);\ en d {t ikzpic ture}

    O line whidth altera a espessura da linha de acordo com a sua necessidade. Noexemplo acima usamos 10pt (10 pontos) como parametro, mas esse valor pode serdado tambem em centmetros ou espa cos.

    \ begin {t ikzpic ture}

    \d r aw [ l i ne w idth= .5cm] (0 ,1)--(4,1);

    \ d r aw [ l i ne w idth=2ex ] (0 ,0)--(4,0);

    \ en d {t ikzpic ture}

    3.2.2 Atributo de Cor

    Para alterar a cor de uma linha o processo e semelhante. Usamos o draw e entrechaves colocamos o nome da cor.

    10

  • 8/10/2019 Manual do pacote Tikz para Latex.

    11/41

    3.2 Atributos www.number.890m.com

    \ begin {t ikzpic ture}\draw [ red] (0 ,0) - - (4 ,0) ;\ en d {t ikzpic ture}

    Outra possibilidade seria:

    \ begin {t ikzpic ture}\d r aw [ co lo r = r ed ] (0 ,0)

    --(4,0);\ en d {t ikzpic ture}

    3.2.3 Atributos de Estilo

    Os atributos de estilo sao quatro dotted , dashed e o cap . O exemplo a seguirdeixa bem claro a funcao de cada um dos tres primeiros.

    \ begin {t ikzpic ture}%linha pont i lhada\draw[dotted](0,0) --(4,0);%l inha t race jada\draw[dashed](0 , -1) - - (4 , -1) ;%l inha com bo rda\ en d {t ikzpic ture}

    Voce pode ler sobre setas mais adiante.

    3.2.4 Atributos em Grupo

    Tanto o dashed como o dotted e o line width (e todos os outros atributos)podem ser aplicados ao ambiente tikzpicture. So que nesse caso todas as linhassofrerao inuencia do atributo.

    % d as he d a pl ic ad o a oambiente

    \ begin {t ikzpic ture}[dashed]\draw(0 ,0) - - (4 ,0) ;\ en d {t ikzpic ture}

    % d ot te d a pl ic ad o a oambiente

    \ begin {t ikzpic ture}[dot ted]\draw(0 ,0) - - (4 ,0) ;\ en d {t ikzpic ture}

    11

  • 8/10/2019 Manual do pacote Tikz para Latex.

    12/41

    www.number.890m.com

    % l in e w id th a pl ic ad o a oambiente

    \ begin {t ikzpic ture}[ l inew id th = . 4 cm ]

    \draw(0 ,0) - - (4 ,0) ;\ en d {t ikzpic ture}

    4 RET ANGULOS

    Voce pode usar o draw para desenhar retangulo informando a coordenada decada vertice

    \ begin {t ikzpic ture}% Q ua dr a do d ef in id o p el os 4

    vert ices\ d ra w ( 0 ,0 ) - - ( 2 , 0) - -

    ( 2 ,2 ) - - ( 0 ,2 ) - - c yc le ;\ en d {t ikzpic ture}

    no entanto, isso pode ser trabalhoso.

    O Tikz possui um comando proprio para desenhar retangulos no seu documento.Para exemplicar vamos desenhar o mesmo retangulo acima.

    \ begin {t ikzpic ture}\draw(0 ,0) rec tangle(2 ,2) ;\ en d {t ikzpic ture}

    No primeiro exemplo tivemos de informar as coordenadas dos quatro vertices edepois zemos a ligacao entre eles (isso e feito com o comando cycle ).

    Ja no segundo exemplo informamos apenas a coordenada inferior esquerda e acoordenada superior direita. O que e bem mais pratico. Alem disso so de olharpara linha ja sabemos o que ela faz (desenha um retangulo), o que facilita futura

    manuten cao do seu codigo caso haja necessidade.Outra forma de desenhar o mesmo retangulo seria:

    \ begin {t ikzpic ture}\draw(0 ,0) rec tangle++(2 ,2) ;\ en d {t ikzpic ture}

    12

  • 8/10/2019 Manual do pacote Tikz para Latex.

    13/41

    www.number.890m.com

    Lembre se que o ++ incrementa a coordenada a esquerda.

    Usando um pouco de criatividade, retangulos, e tendo uma boa base em latexvoce pode criar imagens bem chamativas com facilidade.

    Um homem.

    Um gato.

    Super Mario 8-bits.

    Livro.

    13

  • 8/10/2019 Manual do pacote Tikz para Latex.

    14/41

    www.number.890m.com

    5 CIRCUNFER ENCIAS, ELIPSES E ARCOS

    Para desenhar uma circunferencia basicamente devemos informa seu centro emedida de seu raio:

    \ begin {t ikzpic ture}% Ci r cun fer enci a de r a io 0 .5

    c m e c en tr o e m ( 0 , 0)\draw(0 ,0)c i rc le (0 .5cm);% C en tr o e m ( 2 , 0) e r ai o d e

    1 r ad .\ d r aw (7 ,0.5 ) c i rc l e [ r ad iu s

    =1];\ en d {t ikzpic ture}

    ja uma elipse

    \ begin {t ikzpic ture}% E l ip se :\draw(1 ,1)e l l ipse(1 .5cm and

    0.5cm);\ en d {t ikzpic ture}

    No caso da elipse informamos o seu centro (1, 1) e depois a largura e alturaconforme indicado na imagem abaixo.

    1.5cm 0.5cm

    O comando para arcos depende de tres parametros: angulo inicial, angulo nale raio do arco.

    \ begin {t ikzpic ture}% A rc o\d r aw(6 ,0 ) a rc [ r ad iu s=3cm,

    s t ar t angl e=0 , end angl e=75];

    \ en d {t ikzpic ture}

    O arco acima tem origem em (3, 0) raio de 3cm e faz um angulo no sentidohorario que vai de 0 a 75 .

    14

  • 8/10/2019 Manual do pacote Tikz para Latex.

    15/41

    www.number.890m.com

    Para que voce visualize melhor o que esta sendo dito observe o mesmo arco

    desenhado sob uma grade marcada e com origem no ciclo trigonometrico.

    (0,0) (3,0)0

    90

    45 60

    30

    O comando arc pode ser escrito de uma forma mais sintetizada, veja:

    \ begin {t ikzpic ture}% A o i nv es d e [ r ad iu s =3 cm ,

    s t ar t angl e=0 , end angl e=75 ]

    \draw(6 ,0)arc(0 :75:3cm);

    \ en d {t ikzpic ture}

    Veja mais alguns exemplos de arcos.

    \ begin {t ikzpic ture}% Arco i nve r ti do\d r aw [ r ed ](3 ,0) a r c

    (0 : -75: -3cm);\ en d {t ikzpic ture}

    \ begin {t ikzpic ture}% A rc o n o s en ti do a nt i -

    horario\d r aw[b lue ] ( 3 , 0) a rc

    (0 :75: -3cm);\ en d {t ikzpic ture}

    15

  • 8/10/2019 Manual do pacote Tikz para Latex.

    16/41

    5.1 SETAS www.number.890m.com

    5.1 SETAS

    Setas sao inseridas tambem como atributo de estilo do draw. Veja:

    % S et a p ar a d ir ei ta\ begin {t ikzpic ture}\draw[->](3 ,0) - - (4 ,0) ;\ en d {t ikzpic ture}

    Nesse caso a seta ca voltada para o ponto mais a direita do comando draw.No caso (4, 0).

    % Se ta pa ra e sque rda\ begin {t ikzpic ture}\draw[ ] ( 3 , 0) - - (4 ,0) ;\ en d {t ikzpic ture}

    Nesse caso, cada extremidade do segmento recebe uma ponta de seta.

    Qualquer linha reta ou curva pode ser setada colocando se [-> ]. No exemploabaixo, por exemplo, temos um arco setado.

    \ begin {t ikzpic ture}

    % A rc o s et ad o\d r aw [ l i ne w idth=3pt , ->] (3 ,0 ) a rc ( 0: -75: -3cm) ;

    \ en d {t ikzpic ture}

    Outros exemplos de setas sao:

    16

  • 8/10/2019 Manual do pacote Tikz para Latex.

    17/41

    www.number.890m.com

    % S et a d up la\ begin {t ikzpic ture}\d r aw [ | ->] ( 0 , 0) - - (1 ,0) ;\draw[dot ted , >->>](0 ,1) - -

    (1,1);\ d r aw[ |< -> | ] (0 ,2 ) - - ( 1 , 2) ;\ dr aw [ dashed , o -) ] (0 ,3)

    - - ( 1 , 3) ;\ d r aw[ loose ly da shed ] ( 0 , 4)

    - - ( 1 , 4) ;\ d r aw[dense ly do tt ed ] ( 0 , 5)

    - - ( 1 , 5) ;\ en d {t ikzpic ture}

    6 COORDENADA POLARE possvel em alguns momentos usar coordenadas polares no Tikz. Veja um

    exemplo.

    \ begin {t ikzpic ture}% Coordenada Po la r\draw (0,0) --++(45:2);\ en d {t ikzpic ture}

    O exemplo acima desenha um segmento com origem em (0, 0) com comprimentode 2 cm, 45 no sentido horario.

    \ begin {t ikzpic ture}\ f i l ld raw[f i l l=yellow , d raw=

    black](0 ,0) --++(45:1)arc(45:360:1cm)--cyc le ;

    \ f i l ld raw[f i l l=whi te , d raw=black]( -0 .2 , .5 )c i rc le ( .1cm);

    \ en d {t ikzpic ture}

    7 GRADE (Grid)

    Algumas vezes e interessante que se utilize grades, para facilitar o desenho deimagens. No TikzEdt uma grade ja vem desenhada e pode ser facilmente modicadaou ate desativada, se necess ario. No Qtikz, caso se deseje usar a grade, deve seinformar ao programa por meio da forma que sera descrita.

    17

  • 8/10/2019 Manual do pacote Tikz para Latex.

    18/41

    www.number.890m.com

    \ begin {t ikzpic ture}\draw[s tep=1cm](-1 , -1)gr id

    (3,3);\ en d {t ikzpic ture}

    O step informa que cada quadro da grade tera um centmetro de largura e altura.

    \ begin {t ikzpic ture}% g rade pon ti l hada\d r aw[dash pa tt e rn=on 3p t

    o ff 3pt , s t ep=1cm](-0 .9 , -0 .9)gr id(2 .9 ,2 .9);

    \ en d {t ikzpic ture}

    Uma opcao ao atributo step sao o xstep e o ystep . Com eles podemos termaior controle sobre o tamanho dos quadros na grade.

    \ begin {t ikzpic ture}\draw[xs tep=1, ys tep

    =.5] ( -1 , -1)gr id(3 ,3) ;\ en d {t ikzpic ture}

    Nesse caso os quadros da grid terao um centmetro de largura e meio de altura.

    8 COR

    Podemos fazer imagens coloridas com o Tikz. Para isso e necessario apenas queo pacote xcolor esteja carregado no pre-ambulo. As cores que poderao ser usadassao:

    18

  • 8/10/2019 Manual do pacote Tikz para Latex.

    19/41

  • 8/10/2019 Manual do pacote Tikz para Latex.

    20/41

    8.2 Shade : Gradiente www.number.890m.com

    \ begin {t ikzpic ture}% P in ta o r et an gu l o s em

    contorno\ fill [cyan](0 ,0) rec tangle

    (2,2);\ en d {t ikzpic ture}

    \ begin {t ikzpic ture}% D es en ha o c on to r no d o

    re tangu lo e p int a s euinterior

    \ f i l ld raw[f i l l=cyan , draw=black](0 ,0) rec tangle(2 ,2)

    ;\ en d {t ikzpic ture}

    O draw desenha apenas linhas ou contornos das guras. Ja o ll e usado parapreencher o interior de guras fechadas mas, nao e capaz de desenhar seus con-tornos. O lldraw alem de preencher a forma com cor mantem uma borda de corespecicada.

    8.2 Shade : Gradiente

    Se em vez de uma cor solida, queremos um gradiente de cor, podemos usar o

    shade ao inves do ll.

    \ begin {t ikzpic ture}\shade[ le f t co lor=blue ,

    r ight co lor=red](0 ,0)rec tangle(4 ,4) ;

    \ en d {t ikzpic ture}

    \ begin {t ikzpic ture}\shade[ top co lor=blue ,

    bot tom color=red](0 ,0)rec tangle(4 ,4) ;

    \ en d {t ikzpic ture}

    20

  • 8/10/2019 Manual do pacote Tikz para Latex.

    21/41

    8.2 Shade : Gradiente www.number.890m.com

    \ begin {t ikzpic ture}\shade[ inner co lor=blue ,

    outer co lor=red](0 ,0)rec tangle(4 ,4) ;

    \ en d {t ikzpic ture}

    \ begin {t ikzpic ture}\shade[shading=bal l , ba l l

    co lo r=b lue ] ( 0 , 0) c i rc l e(2);

    \ en d {t ikzpic ture}

    O estranho e que podemos conseguir o mesmo efeito com o ll, veja.

    \ begin {t ikzpic ture}\ fill [ l e ft co lo r=b lue , r i gh t

    color=red](0 ,0) rec tangle(4,4);

    \ en d {t ikzpic ture}

    \ begin {t ikzpic ture}% Em c im a e em b ai xo\ fill [ t op co lo r=b lue , bo tt om

    color=red](0 ,0) rec tangle(4,4);

    \ en d {t ikzpic ture}

    21

  • 8/10/2019 Manual do pacote Tikz para Latex.

    22/41

  • 8/10/2019 Manual do pacote Tikz para Latex.

    23/41

    8.3 Opacidade www.number.890m.com

    \ begin {t ikzpic ture}[opac i ty=0.5]

    % C i r cu lo s com bo rdas negra s\ f i l ld raw[f i l l=red , l ine

    width=3pt ] ( 0 :1cm) c i rc l e(12mm);

    \ f i l ld raw[f i l l=green , l inewidth=3pt ] (120:1cm)ci rc le (12mm);

    \ f i l ld raw[f i l l=blue , l inewidth=3pt ] ( -120:1cm)ci rc le (12mm);

    \ en d {t ikzpic ture}

    No exemplo acima as bordas tambem se mantem opacas fazendo com que asbordas negras quem acinzentadas. Se quisermos retirar esta opacidade das bordasacrescentamos o comando fill .

    \ begin {t ikzpic ture}[ f i l lopacity=0.5]

    \ f i l ld raw[f i l l=red , l inewidth=3pt ] (0 :1cm)ci rc le(12mm);

    \ f i l ld raw[f i l l=green , l inewidth=3pt ] (120:1cm)ci rc le(12mm);

    \ f i l ld raw[f i l l=blue , l inewidth=3pt ] ( -120:1cm)ci rc le (12mm);

    \ en d {t ikzpic ture}

    23

  • 8/10/2019 Manual do pacote Tikz para Latex.

    24/41

    www.number.890m.com

    9 LEGENDAS: NODE

    Para escrever uma legenda no Tikz procedemos do seguinte modo.

    Legenda

    Legenda

    Legenda

    LegendaLegenda

    \ begin {t ikzpic ture}% Escr i ta no rma l\draw(0 ,0)node{Legenda};% E sc ri ta e m i ta li co\draw(0 ,1)node{{\ i t Legenda

    }} ;% L et ra d e m aq ui na\draw(0 ,2)node{{\ t t Legenda

    }} ;% Tamanho g r ande\draw(0 ,3)node{{\ Huge

    Legenda}};% Negr i to\draw(0 ,4)node{{\bf Legenda

    }} ;\ en d {t ikzpic ture}

    Em cada caso o centro da palavra Legenda e colocado nas posicoes indicadas.

    Quando usamos legendas em pontos pode ser util deslocar a legenda para cimapara baixo ou mesmo para os lados. Veja os exemplo:

    D

    C

    B

    A

    \ begin {t ikzpic ture}% L eg en da a ba ix o d o p on to\ fill (0 ,3)c i rc le (0 .05cm)node

    [above]{D};% L eg en da a ci ma d o p on to\ fill (0 ,2)c i rc le (0 .05cm)node

    [be low]{C};% L eg en da a d ir ei ta d o p on to\ fill (0 ,1)c i rc le (0 .05cm)node

    [r ight ]{B};% L eg en da a e sq ue r da d o

    ponto\ fill (0 ,0)c i rc le (0 .05cm)node

    [ le f t ]{A};\ en d {t ikzpic ture}

    Tambem e possvel colorir texto ou mesmo colocar equacoes.

    24

  • 8/10/2019 Manual do pacote Tikz para Latex.

    25/41

    www.number.890m.com

    Legenda

    a 2

    8

    \ begin {t ikzpic ture}% Tex to\draw[red] (0 ,0)node{Legenda

    };% Equacao\draw(0 ,1)node{$\df rac{a

    ^2}{8}$};\ en d {t ikzpic ture}

    10 REPETIC AO: FOREACH

    O foreach e usado como uma especie de loop dentro do latex. Veja um exemplo.

    \ begin {t ikzpic ture}\ fo r each \ x i n {0 ,1 ,2 ,3 ,4}\d r aw( \x cm,1) - - ( \ x cm , -1) ;\ en d {t ikzpic ture}

    A primeira linha

    \foreach \x in {0,1,2,3,4}

    cria uma variavel x igual a zero e indica que todos os comandos escritos aposele, e que possuem a variavel x, serao repetidos 5 vezes. Na primeira vez o xsera igual a 0, depois 1 ate chegar ao 4.

    Finalmente escrevemos a linha que sofrera a repeticao.

    \draw(\x cm,1)--(\x cm,-1);

    Em teoria ela cria um segmento na vertical. Com o foreach o x varia de 0 ate

    4 desenhando nao apenas um mas 5 segmentos.Se nao fosse o foreach teramos de fazer assim:

    \ begin {t ikzpic ture}\draw(0 ,1) - - (0 , -1) ;\draw(1 ,1) - - (1 , -1) ;\draw(2 ,1) - - (2 , -1) ;\draw(3 ,1) - - (3 , -1) ;\draw(4 ,1) - - (4 , -1) ;\ en d {t ikzpic ture}

    25

  • 8/10/2019 Manual do pacote Tikz para Latex.

    26/41

  • 8/10/2019 Manual do pacote Tikz para Latex.

    27/41

    www.number.890m.com

    % g ra fi co d e f un ca o\ begin {t ikzpic ture}\draw[->]( -3 ,0) - - (3 ,0) ;\draw[->](0 , -1) - - (0 ,4) ;% P lo ta ge m de -2 a 0\draw[blue ,domain=-2:0]p lo t

    ( \x ,{( \x)^2}) ;% P lo ta ge m de 0 a 2\draw[blue ,domain=0:2]p lo t ( \

    x ,{ \x^2}) ;\ en d {t ikzpic ture}

    A sntese geral para as funcoes e: draw[atributo, domnio]plot ( \ x, {funcao }).As funcoes que podemos utilizar sao:

    sin(\ x, r)factorial(\ x)sqrt( \ x)pow(\ x,y) que x y .exp(\ x)ln(\ x)log10(\ x)log2(\ x)abs( \ x) valor absoluto.

    mod(\ x,y) x modulo y.round( \ x)oor(\ x) inteiro mais proximo.ceil(\ x) o menor numero maior que x.sin(\ x) seno expresso em graus.sin(\ x r) seno expresso em radiano.cos(\ x)cos(\ x r)tan( \ x)tan( \ x)tan( \ x r)min(\ x,y,)max(\ x,y)

    Voce pode ate usar rnd (sem argumento) que produz um n umero aleat orioentre 0 e 1 ou pi .

    Mais um exemplo.

    27

  • 8/10/2019 Manual do pacote Tikz para Latex.

    28/41

    www.number.890m.com

    % g ra fi co d e f un ca o\ begin {t ikzpic ture}[sca le

    =0.8]\draw[->](-3.14,0) --(3.14,0)

    ;\draw[->](0,-1.1) --(0,1.1);\draw[ blue,smooth ,samples

    =100,domain=-3 .14:3 .14]p lo t ( \x ,{s in( \x r )}) ;

    \ en d {t ikzpic ture}

    12 CURVAS NO TIKZ

    12.1 Parabolas

    Desenhar parabolas e muito simples.

    \ begin {t ikzpic ture}\draw(0 ,0)parabola(2 ,2) ;\ en d {t ikzpic ture}

    Acima vemos uma parabola com origem em (0, 0) e extremo em (2, 2). Poderamostambem ter usado o ++ para incremento.

    \ begin {t ikzpic ture}\draw(0 ,0)parabola++(2 ,2) ;\ en d {t ikzpic ture}

    12.2 Rounded Corners

    O rounded corners e uma propriedade de fronteira que permite um desenho maisarredondados de polgonos com arestas.

    \ begin {t ikzpic ture}\draw(0 ,0) rec tangle++(2 ,2) ;\draw[rounded corners=0.5cm

    ](2 .5 ,0) rec tangle++(2 ,2) ;\ en d {t ikzpic ture}

    28

  • 8/10/2019 Manual do pacote Tikz para Latex.

    29/41

    12.3 Comando To www.number.890m.com

    Ao aumentar o valor de contorno os vertices do quadrilatero vao cando cada

    vez mais arredondados.

    \ begin {t ikzpic ture}\draw(0 ,0) rec tangle++(1 ,1) ;\draw[rounded corners=0.1cm

    ](2 ,0) rec tangle++(1 ,1) ;\draw[rounded corners= .5cm

    ](4 ,0) rec tangle++(1 ,1) ;\ en d {t ikzpic ture}

    12.3 Comando To

    O comando To e utilizado para unir com uma linha dois pontos sendo que, existeum angulo inicial para sada da linha e um angulo nal para o ponto de destino.

    Por exemplo, a instrucao a seguir cria uma reta.

    \ begin {t ikzpic ture}% R et a\draw(0 ,0) to(2 ,3) ;\ en d {t ikzpic ture}

    Mas a instrucao a seguir desenha uma curva.

    \ begin {t ikzpic ture}\draw(3 ,0) to[out=90, in=180]

    (5 ,3) ;\ en d {t ikzpic ture}

    Nesse caso a curva parte do ponto (3, 0) fazendo um angulo de 90 graus echega ate o ponto (5, 3) fazendo um angulo de 180 .

    29

  • 8/10/2019 Manual do pacote Tikz para Latex.

    30/41

    12.4 Smooth www.number.890m.com

    Veja outros exemplos.

    \ begin {t ikzpic ture}\draw[blue] (0 ,0) to[out=90, in

    =225](1 ,2) to[out=-45 , in=90](2 ,0) ;

    \draw[brown](3 ,0) to[out=90,in=-90](4 ,2) to[out=-90 , in=90](5 ,0) ;

    \ en d {t ikzpic ture}

    12.4 Smooth

    A funcao smoth faz com que os pontos de uma curva sejam conectados demaneira suave. Um exemplo de sua estrutura e:

    \ begin {t ikzpic ture}\draw[smooth] p lo t

    coordina tes{(0 ,0) (1 ,1)(2 ,0) (3 ,1)} ;

    \draw[ dashed ,color= gray](0,0) --(1,1)--(2,0)--(3,1);

    \ en d {t ikzpic ture}

    Tem-se tambem o atributo tension , que permite um ajuste maior na curva.Veja na proxima gura a mesma curva anterior usando o atributo.

    \ begin {t ikzpic ture}\draw[smooth , t ens ion=1]

    plo t coord ina tes{(0 ,0)(1 ,1) (2 ,0) (3 ,1)} ;

    \draw[ dashed ,color= gray](0,0) --(1,1)--(2,0)--(3,1);

    \ en d {t ikzpic ture}

    30

  • 8/10/2019 Manual do pacote Tikz para Latex.

    31/41

    12.5 Curvas de Bezier www.number.890m.com

    O smoth e uma ferramenta muito poderosa. Com ela varios esbo cos podem

    ser feitos. Inclusive a de funcoes matematicas complexas.

    Desenho vetorial feito apenas com Smooth.

    12.5 Curvas de Bezier

    E possvel desenhar qualquer coisa usando uma ou mais curvas de bezier, excetouma circunferencia. Isso e o que torna essas cuvas tao especiais.

    Sintaxe:

    \draw(x0, y0)..controls(x1,y1)and(x2,y2)..(y3,x3);

    O desenho de uma curva de bezier depende das coordenadas de quatro pontoschamados de pontos de controle .

    (5, 2)

    (6, 1)

    (8, 0.1)

    (9, 0.5)

    Curva de Bezier (vermelho) e seus pontos de controle (azul).

    \ begin {t ikzpic ture}\draw[red] (5 , -2) . . cont ro ls

    (6 , -1)and(8 , -0 .1). . (9 , -0 .5) ;

    \ en d {t ikzpic ture}

    31

  • 8/10/2019 Manual do pacote Tikz para Latex.

    32/41

  • 8/10/2019 Manual do pacote Tikz para Latex.

    33/41

    www.number.890m.com

    13 Coordenadas (Coordinate)

    Quando tem de se lidar com uma quantidade muito grande pontos e pretende-sefazer referencia a eles uma quantidade muito grande de vezes e conveniente usar ocomando coordinate.

    Sintase:

    \coordinate[legenda](Nome do ponto)at(x,y);

    Veja um exemplo.

    B

    C

    \ begin {t ikzpic ture}% G ra de\draw[s tep=1cm,gray]( -1 , -1)

    gr id(3 ,3) ;% P on to A\coordina te(A)a t (0 ,0) ;% P on to B c om l eg en da a

    esquerda\coordina te[ labe l=lef t :B](B)

    a t (1 .5 ,1) ;% P on to C c om l eg en da a

    direi ta\coord ina te[ labe l=r ight :C](C)a t (2 ,2) ;

    \ en d {t ikzpic ture}

    Uma vez usado o coordenate e possvel utilizar os pontos (0,0), (1.5,1) e (2,2)atraves das letras A, B e C.

    B

    C

    \ begin {t ikzpic ture}\draw[s tep=1cm, gray] ( -1 , -1)

    gr id(3 ,3) ;\coord ina te(A)a t (0 ,0) ;\coord ina te[ labe l=lef t :B](B)

    a t (1 .5 ,1) ;\coord ina te[ labe l=r ight :C](C

    )a t (2 ,2) ;% R et a\draw(A)-- (B)- - (C) ;\ en d {t ikzpic ture}

    33

  • 8/10/2019 Manual do pacote Tikz para Latex.

    34/41

    www.number.890m.com

    14 Transforma coes Geometricas

    14.1 O Ambiente Scope

    O ambiente scope pode ser capaz de realizar as transformacoes geometricas dereexao e transla cao. Olhe por exemplo o desenho anterior.

    \ begin {t ikzpic ture}% G ra de

    \draw[opaci ty=0.1 ,s tep=.1] (0 ,0)gr id(2 ,8 .4) ;

    % E ix o d e s im et ri a\draw[red](0,0) --++(0,8.4);% t ac a\draw (0,0) --(1.4,0);\draw[blue] (1 .4 ,0) . . cont ro ls

    (1 .4 ,0)and(1 .9 ,0). . (1 .9 , .2 ) . . cont rols(1 .9 , .3 )and(1 .6 , .2). . (1 .5 , .2 ) . . cont ro ls(1 .3 , .2 )and( .2 , .7 ). . ( .2,1.1) --( .2,3.5) . .cont ro ls (1 ,4)and(2 .3 ,5 .0). . (1 .5 ,8 .3) ;

    \draw (1.5,8.3) --(0,8.3);\ en d {t ikzpic ture}

    Agora vamos usar o ambiente scope para produzir um espelhamento vertical.

    34

  • 8/10/2019 Manual do pacote Tikz para Latex.

    35/41

    14.1 O Ambiente Scope www.number.890m.com

    \ begin {t ikzpic ture}% G ra de\draw[opaci ty=0.1 ,s tep

    =.1] (0 ,0)gr id(2 ,8 .4) ;% E ix o d e s im et ri a\draw[red](0,0) --++(0,8.4);% t ac a\draw (0,0) --(1.4,0);\draw[blue] (1 .4 ,0) . . cont ro ls

    (1 .4 ,0)and(1 .9 ,0). . (1 .9 , .2 ) . . cont rols(1 .9 , .3 )and(1 .6 , .2). . (1 .5 , .2 ) . . cont ro ls(1 .3 , .2 )and( .2 , .7 ). . ( .2,1.1) --( .2,3.5) . .

    cont ro ls (1 ,4)and(2 .3 ,5 .0). . (1 .5 ,8 .3) ;\draw (1.5,8.3) --(0,8.3);% Re f lexao\ begin {scope}[x=-1cm]\draw (0,0) --(1.4,0);\draw(1 .4 ,0) . . cont ro ls

    (1 .4 ,0)and(1 .9 ,0). . (1 .9 , .2 ) . . cont ro ls(1 .9 , .3 )and(1 .6 , .2). . (1 .5 , .2 ) . . cont ro ls(1 .3 , .2 )and( .2 , .7 ). . ( .2,1.1) --( .2,3.5) . .cont ro ls (1 ,4)and(2 .3 ,5 .0). . (1 .5 ,8 .3) ;

    \draw (1.5,8.3) --(0,8.3);\ en d {scope}\ en d {t ikzpic ture}

    O ambiente scoope recebe como atributo um valor, no caso x = 1cm , essevalor ira multiplicar todos os valores da abscisa de todos os pontos dentro doambiente scope por 1. Isso provoca um espelhamento em relacao ao eixo desimetria que neste caso e uma reta vertical que passa pela origem.

    Esse ambiente tambem pode ser usado para gerar translacoes, rota cao e escala-mento.

    Vejamos um exemplo de translacao.

    35

  • 8/10/2019 Manual do pacote Tikz para Latex.

    36/41

    14.1 O Ambiente Scope www.number.890m.com

    \ begin {t ikzpic ture}% r e tangu lo negro\draw[s tep=.5 , l igh tgray

    ] (0 ,0)gr id(3 ,2) ;\ d r aw (0 ,0) r e ct ang l e

    (1 ,0 .5) ;% s co pe\ begin {scope}[xshi f t=1cm]% r et an gu lo d es lo ca do 1 cm a

    direi ta\draw [ red] (0 ,0) rec tangle

    (1 ,0 .5) ;% r et an gu lo d es lo ca do 1 cm a

    d ir ei ta e 1 cm a o n or te\draw[yshi f t=1cm, b lue] (0 ,0)

    rec tangle(1 ,0 .5) ;\ en d {scope}\ en d {t ikzpic ture}

    O xshift desloca para todos os desenhos dentro do ambiente scope 1cm paradireita. J a o yshift desloca as guras 1cm ao norte. Mas, como ele esta associ-ado apenas ao ultimo retangulo (e n ao ao ambiente), entao apenas ele sofre suasconsequencias.

    Tambem poderamos fazer o seguinte

    \ begin {t ikzpic ture}% G ra de\draw[s tep=1cm, co lor=

    l ightgray] ( -1 , -1)gr id(3,3);

    % P on to\draw[xshi f t=1cm, yshi ft=1cm

    ](1,1) --(2,1) --(1.5,2)--cycle;

    \ en d {t ikzpic ture}

    Isso mostra que tanto o xshift como o yshift podem ser usados fora do ambientescope.

    O proximo exemplo mostra um espelhamento em relacao a uma reta horizontalque passa pela origem.

    36

  • 8/10/2019 Manual do pacote Tikz para Latex.

    37/41

    14.2 Rota c ao www.number.890m.com

    \ begin {t ikzpic ture}% G ra de\draw[s tep=1cm, co lor=

    l ightgray] ( -3 , -3)gr id(3,3);

    % E ix o d e s im et ri a\draw[red] (0 , -3) - - (0 ,3) ;% Po l igono\draw(2,2)--(3,2) --(2.5,3)--

    cycle;% Po l igono e spe lhado\ begin {scope}[y=-1cm]\draw(2,2)--(3,2) --(2.5,3)--

    cycle;\ en d {scope}

    \ en d {t ikzpic ture}

    A seguir temos uma reexao feita em relacao a uma reta horizontal e verticalque passe pela origem.

    \ begin {t ikzpic ture}% G ra de\draw[s tep=1cm,color=

    l i gh tgr ay ] ( - 3 , -3 ) g r id(3,3);

    % E ix os d e s im et ri a

    \draw[red] ( -3 ,0) - - (3 ,0) ;\draw[red] (0 ,3) - - (0 , -3) ;% Po l igono\draw(2,2)--(3,2) --(2.5,3)--

    cycle;% Po l igono e spe lhado\ begin {scope}[x=-1cm, y=-1cm

    ]\draw(2,2)--(3,2) --(2.5,3)--

    cycle;\ en d {scope}\ en d {t ikzpic ture}

    14.2 Rota cao

    A rotacao e outra transformacao geometrica e pode ser feita atraves do atributorotate .

    37

  • 8/10/2019 Manual do pacote Tikz para Latex.

    38/41

    14.3 Escalamento www.number.890m.com

    \ begin {t ikzpic ture}% r ot ac ao d e 3 0 g ra us\draw[ro ta te=30](0 ,0)

    rec tangle(1 ,0 .5) ;% 9 0 g r a us\draw[ro ta te=90](0 ,0)

    rec tangle(1 ,0 .5) ;% 1 20 g ra us\draw[ro ta te=120](0 ,0)

    rec tangle(1 ,0 .5) ;\ en d {t ikzpic ture}

    14.3 Escalamento

    A ampliacao ou redu cao de um desenho podem ser feitas de duas maneiras:Uma delas atraves do atributo scale .

    \ begin {t ikzpic ture}% F igu ra com d imensoes

    normais\draw (0 ,0) - - (1 ,0) - - (0 .5 ,1)

    - -cyc le ;\ en d {t ikzpic ture}

    \ begin {t ikzpic ture}[sca le=2]% F igu ra ampl i ada duas veze s\draw(0,0)--(1,0) --(0.5,1)--

    cycle;\ en d {t ikzpic ture}

    \ begin {t ikzpic ture}% F igu ra r eduz ida pel a

    me tade\draw[scale=.5](0,0) --(1,0)

    --(0.5,1)--cycle;\ en d {t ikzpic ture}

    Outra forma seria

    \ begin {t ikzpic ture}% Tr iangu lo\draw(0,0)--(1,0) --(0.5,1)--

    cycle;% Tr iangu lo ampl i ado 2 veze s\draw[x=2cm, y=2cm](0 ,0)

    --(1,0) --(0.5,1)--cycle ;\ en d {t ikzpic ture}

    38

  • 8/10/2019 Manual do pacote Tikz para Latex.

    39/41

    www.number.890m.com

    Ou poderamos ate usar o ambiente scope para isso.

    \ begin {t ikzpic ture}% Tr iangu lo\draw(0,0)--(1,0) --(0.5,1)--

    cycle;% Tr iangu lo ampl i ado 2 veze s\ begin {scope}[x=2cm, y=2cm]\draw(0,0)--(1,0) --(0.5,1)--

    cycle;\ en d {scope}\ en d {t ikzpic ture}

    15 CLIP

    A funcao clip seleciona um trecho de uma imagem. Por exemplo, considere aimagem a seguir.

    \ begin {t ikzpic ture}[sca le=2]\draw[s tep=.5cm, gray

    ] ( -1 .4 , -1 .4)gr id(1 .4 ,1 .4);

    \draw (-1.5,0) --(1.5,0);

    \draw (0, -1.5) --(0,1.5);\draw(0 ,0)c i rc le (1cm);\ shadedraw[lef t co lor=gray ,

    r i gh t co lo r=g reen , d r aw=green!50!black](0 ,0) - - (3 mm ,0 mm )ar c (0:3 0:3 mm ) --cycle;

    \ en d {t ikzpic ture}

    Usando o clip podemos criar um retangulo com vertice inferior esquerdo nacoordenada (-0.1, -0.2) e vertice superior direito em (1.1, 0.75). Com isso apenasa imagem que caria dentro desse retangulo e exibida.

    39

  • 8/10/2019 Manual do pacote Tikz para Latex.

    40/41

    www.number.890m.com

    \ begin {t ikzpic ture}[sca le=2]\c l ip( - .1 , - .2 ) rec tangle

    (1 .1 , .75) ;\draw[s tep=.5cm, gray] ( -1.4 ,

    -1 .4)gr id(1 .4 , 1 .4) ;\ d r aw( -1 .5 , 0 ) - - (1.5 , 0 ) ;\ d r aw(0 , - 1. 5) - - (0 , 1 . 5) ;\draw(0 , 0)c i rc le (1cm);\ shadedraw[lef t co lor=gray ,

    r i gh t co lo r=g reen , d r aw=green!50!black](0 , 0) - - (3 mm , 0mm )ar c (0:30:3 mm ) --cycle;

    \ en d {t ikzpic ture}

    40

  • 8/10/2019 Manual do pacote Tikz para Latex.

    41/41

    15.1 REFER ENCIA www.number.890m.com

    15.1 REFER ENCIA

    TANTAU, Ate Till. TIKZ and PGF: Manual for version 1.18 . 12 June2007.