Manual do pacote Tikz para Latex.
-
Upload
diego-oliveira -
Category
Documents
-
view
413 -
download
29
Transcript of Manual do pacote Tikz para Latex.
-
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.