> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/overleaf-learn-latex-pt/figuras-e-tabelas/05-tikz-package.md).

# Pacote TikZ

## Introdução

[Ti*k*Z](https://en.wikipedia.org/wiki/PGF/TikZ) é provavelmente a ferramenta mais complexa e poderosa para criar elementos gráficos no LaTeX. Começando com um exemplo simples, este artigo apresenta alguns conceitos básicos: desenhar linhas, pontos, curvas, círculos, retângulos etc.

Primeiramente, carregue o `tikz` pacote incluindo a linha `\usepackage{tikz}` no preâmbulo do seu documento e depois desenhe um gráfico usando o `tikzpicture` ambiente.

```latex
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[gray, thick] (-1,2) -- (2,-4);
\draw[gray, thick] (-1,-1) -- (2,2);
\filldraw[black] (0,0) circle (2pt) node[anchor=west]{Intersection point};
\end{tikzpicture}
\end{document}
```

[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=First+TikZ+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Btikz%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%0A%5Cdraw%5Bgray%2C+thick%5D+%28-1%2C2%29+--+%282%2C-4%29%3B%0A%5Cdraw%5Bgray%2C+thick%5D+%28-1%2C-1%29+--+%282%2C2%29%3B%0A%5Cfilldraw%5Bblack%5D+%280%2C0%29+circle+%282pt%29+node%5Banchor%3Dwest%5D%7BIntersection+point%7D%3B%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![OLV2tikz1.png](/files/e1fa0a314d0348c0df36378ab8a660799a672dc4)

Neste exemplo, são desenhadas duas linhas e um ponto. Para adicionar uma linha, o comando `\draw[gray, thick]` define um elemento gráfico cuja *cor* é `cinzento` e com um `traço espesso.` A linha é, na verdade, definida pelos seus dois pontos finais, `(-1,2)` e `(2,-4)`, ligados por `--`.

O *ponto* é, na verdade, um `círculo` desenhado com `\filldraw[black]`, este comando não só desenhará o círculo como também o preencherá a preto. Neste comando, o ponto central `(0,0)` e o raio `(2pt)` são declarados. Junto ao ponto há um `nó`, que é, na verdade, uma caixa contendo o texto `ponto de interseção`, e ancorada a `oeste` do ponto.

É importante notar o ponto e vírgula `;` usado no final de cada `comando draw` comando.

Nota: O `tikzfigure` ambiente pode ser incluído dentro de um ambiente figure ou semelhante. Veja o [Inserção de imagens](/latex/overleaf-learn-latex-pt/mais-topicos/27-inserting-images.md) artigo para mais informações sobre este tópico.

## Elementos básicos: pontos, linhas e caminhos

Nesta secção, apresentamos alguns exemplos que mostram como criar alguns elementos gráficos básicos, que podem ser combinados para criar figuras mais elaboradas.

```latex
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}

\draw (-2,0) -- (2,0);
\filldraw [gray] (0,0) circle (2pt);
\draw (-2,-2) .. controls (0,0) .. (2,-2);
\draw (-2,2) .. controls (-1,0) and (1,0) .. (2,2);

\end{tikzpicture}
\end{document}
```

[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Second+TikZ+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Btikz%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%0A%0A%5Cdraw+%28-2%2C0%29+--+%282%2C0%29%3B%0A%5Cfilldraw+%5Bgray%5D+%280%2C0%29+circle+%282pt%29%3B%0A%5Cdraw+%28-2%2C-2%29+..+controls+%280%2C0%29+..+%282%2C-2%29%3B%0A%5Cdraw+%28-2%2C2%29+..+controls+%28-1%2C0%29+and+%281%2C0%29+..+%282%2C2%29%3B%0A%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![OLV2tikz2.png](/files/48105424e67454471d75394c356c86854ea25271)

Há três comandos básicos neste exemplo:

* **`\draw (-2,0) -- (2,0);`**: Isto define uma linha cujos pontos finais são `(-2,0)` e `(2,0)`.
* **`\filldraw [gray] (0,0) circle (2pt);`**: O ponto é criado como um muito pequeno `cinzento` `círculo` centrado em `(0,0)` e cujo raio é `(2pt)`. O `\filldraw` o comando é usado para desenhar elementos e preenchê-los com uma cor específica. Veja a secção seguinte para mais exemplos.
* **`\draw (-2,2) .. controls (-1,0) and (1,0) .. (2,2);`**: Desenha uma [curva de Bézier](https://en.wikipedia.org/wiki/B%C3%A9zier_curve). Há 4 pontos que a definem: `(-2,2)` e `(2,2)` são os seus pontos finais, `(-1,0)` e `(1,0)` estiver [*pontos de controlo*](https://en.wikipedia.org/wiki/Control_point_\(mathematics\)) que determinam o quão "curva" ela é. Pode pensar nestes dois pontos como "pontos de atração".

## Formas geométricas básicas: círculos, elipses e polígonos

As figuras geométricas podem ser construídas a partir de elementos mais simples, por isso comecemos com círculos, elipses e arcos.

```latex
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\filldraw[color=red!60, fill=red!5, very thick](-1,0) circle (1.5);
\fill[blue!50] (2.5,0) ellipse (1.5 and 0.5);
\draw[ultra thick, ->] (6.5,0) arc (0:220:1);
\end{tikzpicture}
\end{document}
```

[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Third+TikZ+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Btikz%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%0A%5Cfilldraw%5Bcolor%3Dred%2160%2C+fill%3Dred%215%2C+very+thick%5D%28-1%2C0%29+circle+%281.5%29%3B%0A%5Cfill%5Bblue%2150%5D+%282.5%2C0%29+ellipse+%281.5+and+0.5%29%3B%0A%5Cdraw%5Bultra+thick%2C+-%3E%5D+%286.5%2C0%29+arc+%280%3A220%3A1%29%3B%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![TikzEx3.png](/files/73aac3d39e02309af2f67699e00c649dd7dd342b)

* **`\filldraw[color=red!60, fill=red!5, very thick](-1,0) circle (1.5);`**: Este comando foi usado na secção anterior para desenhar um *ponto*, mas neste caso há alguns parâmetros adicionais dentro dos parênteses retos. Estes são explicados abaixo:
  * **`color=red!60`**: A cor do anel em redor do círculo é definida para 60% de vermelho (mais claro do que o vermelho "puro"). Veja o [guia de referência](#reference-guide) para uma lista das cores predefinidas disponíveis no LaTeX; veja também [Utilizar cores no LaTeX](/latex/overleaf-learn-latex-pt/formatacao/13-using-colors-in-latex.md) para aprender a criar as suas próprias cores.
  * **`fill=red!5`**: O círculo é preenchido com um tom de vermelho ainda mais claro.
  * **`muito espesso`**: Este parâmetro define a espessura do traço. Veja o [guia de referência](#reference-guide) para uma lista completa de valores.
* **`\fill[blue!50] (2.5,0) ellipse (1.5 and 0.5);`**: Para criar uma elipse, fornece-se um ponto central `(2.5,0)`, e dois raios: horizontal e vertical (`1.5` e `0.5` respetivamente). Note também o comando `fill` em vez de `comando draw` ou filldraw, isto porque, neste caso, não há necessidade de controlar as cores exterior e interior.
* **`\draw[ultra thick, ->] (6.5,0) arc (0:220:1);`**: Este comando desenhará um arco começando em `(6.5,0)`. O parâmetro extra `->` indica que o arco terá uma seta no final. Para além do ponto inicial, deve fornecer três valores adicionais: os ângulos inicial e final, e o raio; aqui, esses três valores de parâmetro são fornecidos no formato `(0:220:1)`.

Para além de formas geométricas curvas, também pode criar elementos que usam linhas retas, utilizando uma sintaxe semelhante:

```latex
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[blue, very thick] (0,0) rectangle (3,2);
\draw[orange, ultra thick] (4,0) -- (6,0) -- (5.7,2) -- cycle;
\end{tikzpicture}
\end{document}
```

[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Fourth+TikZ+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Btikz%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%0A%5Cdraw%5Bblue%2C+very+thick%5D+%280%2C0%29+rectangle+%283%2C2%29%3B%0A%5Cdraw%5Borange%2C+ultra+thick%5D+%284%2C0%29+--+%286%2C0%29+--+%285.7%2C2%29+--+cycle%3B%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![OLV2tikz4.png](/files/60685e6e3b49ed654de3a815db3c78a5e89e1e01)

* **`\draw[blue, very thick] (0,0) rectangle (3,2);`**: Os retângulos são criados pelo comando especial `rectangle`. Tem de fornecer dois pontos: o primeiro é onde o "lápis" começa a desenhar o retângulo e o segundo é o ponto do canto diagonalmente oposto.
* **`\draw[orange, ultra thick] (4,0) -- (6,0) -- (5.7,2) -- cycle;`**: Para desenhar um polígono, desenhamos um *fechado* caminho de linhas retas: uma linha de `(4,0)` para `(6,0)` e uma linha de `(6,0)` para `(5.7,2)`. O `cycle` instrução significa que os pontos inicial e final devem coincidir para criar um caminho (forma) "fechado", o que resulta na construção do segmento de linha final.

## Diagramas

Os nós são provavelmente os elementos mais versáteis no TikZ. Já usámos um nó na introdução — para adicionar algum texto à figura. O exemplo seguinte usa nós para criar um diagrama.

```latex
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[
roundnode/.style={circle, draw=green!60, fill=green!5, very thick, minimum size=7mm},
squarednode/.style={rectangle, draw=red!60, fill=red!5, very thick, minimum size=5mm},
]
%Nodes
\node[squarednode]      (maintopic)                              {2};
\node[roundnode]        (uppercircle)       [above=of maintopic] {1};
\node[squarednode]      (rightsquare)       [right=of maintopic] {3};
\node[roundnode]        (lowercircle)       [below=of maintopic] {4};

%Lines
\draw[->] (uppercircle.south) -- (maintopic.north);
\draw[->] (maintopic.east) -- (rightsquare.west);
\draw[->] (rightsquare.south) .. controls +(down:7mm) and +(right:7mm) .. (lowercircle.east);
\end{tikzpicture}
\end{document}
```

[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=More+advanced+TikZ+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Btikz%7D%0A%5Cusetikzlibrary%7Bpositioning%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%5B%0Aroundnode%2F.style%3D%7Bcircle%2C+draw%3Dgreen%2160%2C+fill%3Dgreen%215%2C+very+thick%2C+minimum+size%3D7mm%7D%2C%0Asquarednode%2F.style%3D%7Brectangle%2C+draw%3Dred%2160%2C+fill%3Dred%215%2C+very+thick%2C+minimum+size%3D5mm%7D%2C%0A%5D%0A%25Nodes%0A%5Cnode%5Bsquarednode%5D++++++%28maintopic%29++++++++++++++++++++++++++++++%7B2%7D%3B%0A%5Cnode%5Broundnode%5D++++++++%28uppercircle%29+++++++%5Babove%3Dof+maintopic%5D+%7B1%7D%3B%0A%5Cnode%5Bsquarednode%5D++++++%28rightsquare%29+++++++%5Bright%3Dof+maintopic%5D+%7B3%7D%3B%0A%5Cnode%5Broundnode%5D++++++++%28lowercircle%29+++++++%5Bbelow%3Dof+maintopic%5D+%7B4%7D%3B%0A%0A%25Lines%0A%5Cdraw%5B-%3E%5D+%28uppercircle.south%29+--+%28maintopic.north%29%3B%0A%5Cdraw%5B-%3E%5D+%28maintopic.east%29+--+%28rightsquare.west%29%3B%0A%5Cdraw%5B-%3E%5D+%28rightsquare.south%29+..+controls+%2B%28down%3A7mm%29+and+%2B%28right%3A7mm%29+..+%28lowercircle.east%29%3B%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![OLV2tikz5.png](/files/191343b731d86ba717115e93e922a287c9544e73)

Há essencialmente três comandos nesta figura: uma definição de nó, uma declaração de nó e linhas que unem dois nós.

* **`roundnode/.style={circle, draw=green!60, fill=green!5, very thick, minimum size=7mm}`**: Passado como parâmetro ao `tikzpicture` ambiente. Define um nó que será referenciado como `roundnode`: este nó será um círculo cujo anel exterior será desenhado usando a cor `green!60` e será preenchido com `green!5`. O traço será `muito espesso` e o seu `tamanho mínimo` é `7mm`. A linha abaixo define um segundo nó em forma de retângulo chamado `squarednode`, usando parâmetros semelhantes.
* **`\node[squarednode] (maintopic) {2};`**: Isto criará um `squarednode`, conforme definido no comando anterior. Este nó terá um id de `maintopic` e conterá o número `2`. Se deixar um espaço vazio dentro das chavetas, nenhum texto será apresentado.
* **`[above=of maintopic]`**: Note que todos os nós, exceto o primeiro, têm um parâmetro adicional que determina a sua posição relativamente a outros nós. Por exemplo, `[above=of maintopic]` significa que este nó deve aparecer acima do nó chamado `maintopic`Para este sistema de posicionamento funcionar, tem de adicionar `\usetikzlibrary{positioning}` ao preâmbulo. Sem a `positioning` biblioteca, pode usar a sintaxe `above of=maintopic` em alternativa, mas a `positioning` sintaxe é mais flexível e poderosa: pode estendê-la para escrever `above=**3cm** of maintopic` ou seja, controlar a distância real a partir de `maintopic`.
* **`\draw[->] (uppercircle.south) -- (maintopic.north);`**: Será desenhada uma linha reta semelhante a uma seta. A sintaxe já foi explicada na [elementos básicos](#basic-elements-points-lines-and-paths) secção. A única diferença é a maneira como escrevemos os pontos finais da linha: referenciando um nó (é por isso que lhes demos nomes) e uma posição relativa ao nó.

## Guia de referência

Possíveis parâmetros de cor e espessura no `tikz` pacote:

| parâmetro | valores                                                             | picture                                                              |
| --------- | ------------------------------------------------------------------- | -------------------------------------------------------------------- |
| color     | branco, preto, vermelho, verde, azul, ciano, magenta, amarelo       | ![BasicColours.png](/files/107c362dce992e2e1ae49026c500f894b627994f) |
| espessura | ultra fino, muito fino, fino, espesso, muito espesso, ultra espesso | ![Thickness.png](/files/d94dd57c350fd4e12bc96e6c0e82e9794fada006)    |

Podem estar disponíveis mais cores na sua distribuição do LaTeX. Veja [Utilizar cores no LaTeX](/latex/overleaf-learn-latex-pt/formatacao/13-using-colors-in-latex.md)

## Leitura adicional

Para mais informações, consulta:

* [Utilizar cores no LaTeX](/latex/overleaf-learn-latex-pt/formatacao/13-using-colors-in-latex.md)
* [pacote Pgfplots](/latex/overleaf-learn-latex-pt/especifico-da-area/08-pgfplots-package.md)
* [Inserção de imagens](/latex/overleaf-learn-latex-pt/mais-topicos/27-inserting-images.md)
* [Listas de tabelas e figuras](/latex/overleaf-learn-latex-pt/figuras-e-tabelas/03-lists-of-tables-and-figures.md)
* [Posicionamento de imagens e tabelas](/latex/overleaf-learn-latex-pt/figuras-e-tabelas/02-positioning-images-and-tables.md)
* [Desenhando diagramas diretamente em LaTeX](/latex/overleaf-learn-latex-pt/figuras-e-tabelas/04-picture-environment.md)
* [Manual dos Pacotes TikZ e PGF](http://mirrors.ctan.org/graphics/pgf/base/doc/pgfmanual.pdf)
* [Exemplos de TikZ e PGF em TeXample.net](http://www.texample.net/tikz/examples/all/)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/overleaf-learn-latex-pt/figuras-e-tabelas/05-tikz-package.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
