> 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/04-picture-environment.md).

# Desenhar diagramas diretamente em LaTeX

## Introdução

integrado no LaTeX `picture` pode ser usado para criar diagramas/figuras — não é necessário *precisam* carregar quaisquer pacotes externos para o usar, mas pacotes como [`pict2e`](https://ctan.org/pkg/pict2e?lang=en) e [`picture`](https://ctan.org/pkg/picture) foram escritos para expandir ou melhorar as suas funcionalidades.

Este artigo fornece uma introdução concisa ao `picture` ambiente e todos os exemplos usam o [`pict2e` pacote](https://ctan.org/pkg/pict2e?lang=en). A documentação mais extensa e vários exemplos úteis estão facilmente disponíveis nos seguintes recursos:

* [manual de referência não oficial do LaTeX2e](https://latexref.xyz/picture.html)
* [Uma introdução não tão curta ao LaTeX2ε](https://tobi.oetiker.ch/lshort/lshort.pdf) (ver Capítulo 5)
* [Wikibooks](https://en.wikibooks.org/wiki/LaTeX/Picture)
* [questões marcadas com `picture-mode` no tex.stackexchange](https://tex.stackexchange.com/questions/tagged/picture-mode)
* [`pict2e` documentação do pacote](https://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/pict2e/pict2e.pdf)

Quando comparado com ferramentas gráficas poderosas e sofisticadas como [TikZ/PGF](https://en.wikipedia.org/wiki/PGF/TikZ), [MetaPost](https://tug.org/metapost.html), [PSTricks](https://ctan.org/topic/pstricks?lang=en) ou [Asymptote](https://ctan.org/pkg/asymptote?lang=en) o `picture` o ambiente pode parecer bastante limitado, mas, de vez em quando, pode ser suficiente para o que precisa de fazer.

## Criar uma nova figura

Criar uma nova figura normalmente envolve os seguintes passos:

1. definir o tamanho das unidades de desenho que pretende usar;
2. declarar um `picture` ambiente que define o tamanho da figura;
3. desenhar os componentes gráficos individuais usando os `\put`, `\multiput` ou `\qbezier` comandos.

### Definir o tamanho das unidades de desenho

Para criar uma figura normalmente começa por definir as *unidades de desenho* através do comando `\unitlength`, que deve ser usado fora de um `picture` ambiente. Por exemplo, se escrever

```latex
\setlength{\unitlength}{1cm}
```

as unidades de desenho seriam interpretadas como múltiplos de 1cm. A unidade predefinida é 1pt.

### Definir o tamanho da sua figura

A forma geral do `picture` ambiente é a seguinte

```latex
\begin{picture}(width, height)(Xoffset, Yoffset)
 ...
\end{picture}
```

onde

* `largura` e `altura` são valores, em unidades de `\unitlength`, que definem o tamanho da figura. O LaTeX usa estes valores para criar uma caixa cujas dimensões são
  * largura da caixa (figura) = `largura` × `\unitlength`
  * altura da caixa (figura) = `altura` × `\unitlength`
* `(Xoffset, Yoffset)` é uma coordenada opcional que define a origem (canto inferior esquerdo) da figura, expressa como um *deslocamento* relativo à localização predefinida. `Xoffset` e `Yoffset` são também expressos em unidades determinadas pelo valor atual de `\unitlength`.

Note que `Xoffset` e `Yoffset` não afetam a quantidade de espaço que o LaTeX reserva; isto é, as dimensões da caixa.

#### Compreender as dimensões da figura

Vamos criar duas figuras, ambas usando `\setlength{\unitlength}{1cm}` e cada uma com um `largura` e `altura` de 3 unidades.

A primeira figura usa a origem predefinida de `(0,0)`:

```latex
\begin{picture}(3,3)
...
\end{picture}
```

a segunda figura desloca a origem em `(1,1)`:

```latex
\begin{picture}(3,3)(1,1)
...
\end{picture}
```

### Desenhar gráficos

Os gráficos são criados usando uma sequência de `\put`, `\multiput`, ou `\qbezier` comandos que produzem os “componentes” individuais (ou “objetos”) a partir dos quais a figura ou ilustração é construída:

* `\put(x, y){*component*}` desenha o `*component*` na localização `(x, y)`.
* `\multiput(x, y)(dx, dy){n}{*component*}` desenha o `*component*` `n` vezes: começando na localização `(x, y)` e translando repetidamente por `(dx, dy)` para redesenhar o `*component*`.
* `\qbezier[n](x<sub>1</sub>, y<sub>1</sub>)(x, y)(x<sub>2</sub>, y<sub>2</sub>)`: desenha uma [curva de Bézier quadrática](https://en.wikipedia.org/wiki/B%C3%A9zier_curve#Quadratic_B%C3%A9zier_curves) onde:
  * `n` um inteiro opcional que determina o número de pontos usados para desenhar/produzir a curva
  * `(x<sub>1</sub>, y<sub>1</sub>)` é o ponto inicial da curva
  * `(x<sub>2</sub>, y<sub>2</sub>)` é o ponto final da curva
  * `(x, y)` denota o ponto de controlo da curva de Bézier (quadrática)

Um `*component*` é um elemento gráfico normalmente produzido usando primitivas gráficas como `\line`, `\oval`, `\circle`, `\vector` e assim por diante — veja o [manual de referência não oficial do LaTeX2e](https://latexref.xyz/picture.html) ou [Uma introdução não tão curta ao LaTeX2ε](https://tobi.oetiker.ch/lshort/lshort.pdf) (Capítulo 5) para detalhes sobre as primitivas disponíveis.

**Nota**: O [`pict2e` pacote](https://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/pict2e/pict2e.pdf) expande o original `picture` ambiente para fornecer vários comandos para desenhar curvas de Bézier: `\bezier`, `\qbezier`, `\cbezier` e `\qbeziermax`.

### Compreender o deslocamento e a origem

Nos exemplos seguintes o `\put` comando é usado para desenhar pontos coloridos que indicam coordenadas-chave (posições) no gráfico. Ambos os exemplos usam o comando `\fbox` do LaTeX para desenhar uma moldura à volta da caixa que o LaTeX criou para conter a nossa figura, mostrando a *caixa delimitadora* do gráfico.

**Exemplo 1: Usando a origem predefinida**

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\usepackage[dvipsnames]{xcolor}
\begin{document}
\setlength{\unitlength}{1cm}
\setlength{\fboxsep}{0pt}

Esta é a minha figura\fbox{%
\begin{picture}(3,3)
\put(0,0){{\color{blue}\circle*{0.25}}\hbox{\kern3pt \texttt{(0,0)}}}
\put(3,3){{\color{red}\circle*{0.25}}\hbox{\kern3pt \texttt{(3,3)}}}
\end{picture}}
\end{document}
```

[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=understanding+picture+dimensions+example+1\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cusepackage%5Bdvipsnames%5D%7Bxcolor%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Csetlength%7B%5Cfboxsep%7D%7B0pt%7D%0A%0AThis+is+my+picture%5Cfbox%7B%25%0A%5Cbegin%7Bpicture%7D%283%2C3%29%0A%5Cput%280%2C0%29%7B%7B%5Ccolor%7Bblue%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt+%5Ctexttt%7B%280%2C0%29%7D%7D%7D%0A%5Cput%283%2C3%29%7B%7B%5Ccolor%7Bred%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt+%5Ctexttt%7B%283%2C3%29%7D%7D%7D%0A%5Cend%7Bpicture%7D%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![dimensões do ambiente picture do LaTeX](/files/2f035346f7d017a63b41c9277d34be1c4829daaa)

O `\fbox` comando desenha uma moldura à volta da caixa delimitadora do gráfico, mostrando o espaço (área) reservado pelo LaTeX:

* largura da figura = `largura` × `\unitlength` = 3 × 1cm = 3cm.
* altura da figura = `altura` × `\unitlength` = 3 × 1cm = 3cm.

O primeiro exemplo mostra que a origem, `(0,0)`, está no ponto em que o `\begin{picture}` comando foi executado, imediatamente após o texto “Esta é a minha figura”. Além disso, o canto superior direito está na posição `(3,3)`, a `(largura,altura)` valores fornecidos a `\begin{picture}(3,3)`.

**Exemplo 2: Deslocar a origem em (1,1)**

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\usepackage[dvipsnames]{xcolor}
\begin{document}
\setlength{\unitlength}{1cm}
\setlength{\fboxsep}{0pt}

Esta é a minha figura\fbox{%
\begin{picture}(3,3)(1,1)
\put(0,0){{\color{blue}\circle*{0.25}}\hbox{\kern3pt\texttt{(0,0)}}}
\put(1,1){{\color{orange}\circle*{0.25}}\hbox{\kern3pt\texttt{(1,1)}}}
\put(3,3){{\color{red}\circle*{0.25}}\hbox{\kern3pt\texttt{(3,3)}}}
\put(4,4){{\color{black}\circle*{0.25}}\hbox{\kern3pt\texttt{(4,4)}}}
\end{picture}}
\end{document}
```

[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=understanding+picture+dimensions+example+2\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cusepackage%5Bdvipsnames%5D%7Bxcolor%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Csetlength%7B%5Cfboxsep%7D%7B0pt%7D%0A%0AThis+is+my+picture%5Cfbox%7B%25%0A%5Cbegin%7Bpicture%7D%283%2C3%29%281%2C1%29%0A%5Cput%280%2C0%29%7B%7B%5Ccolor%7Bblue%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt%5Ctexttt%7B%280%2C0%29%7D%7D%7D%0A%5Cput%281%2C1%29%7B%7B%5Ccolor%7Borange%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt%5Ctexttt%7B%281%2C1%29%7D%7D%7D%0A%5Cput%283%2C3%29%7B%7B%5Ccolor%7Bred%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt%5Ctexttt%7B%283%2C3%29%7D%7D%7D%0A%5Cput%284%2C4%29%7B%7B%5Ccolor%7Bblack%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt%5Ctexttt%7B%284%2C4%29%7D%7D%7D%0A%5Cend%7Bpicture%7D%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![dimensões do ambiente picture do LaTeX](/files/bd0bb33b9a307e06959d47e22034e4fc3be007e7)

O segundo exemplo mostra os efeitos de deslocar a origem e destaca alguns pontos-chave:

* a moldura criada por `\fbox` mostra que a caixa delimitadora do gráfico, a largura e a altura da caixa criada pelo LaTeX, é *inalterada* pelo deslocamento da origem: continua a ser determinada pelo `(largura,altura)` valores fornecidos a `\begin{picture}(3,3)(1,1)`
  * largura da figura = `largura` × `\unitlength` = 3 × 1cm = 3cm
  * altura da figura = `altura` × `\unitlength` = 3 × 1cm = 3cm
* os elementos de desenho não estão restringidos (cortados) à área (dimensões da caixa delimitadora) criada pelo LaTeX. Por exemplo, o ponto azul e `(0,0)` a coordenada são desenhados fora da linha de fronteira produzida por `\fbox`, que indica a caixa delimitadora.
  * Cabe ao utilizador garantir que os elementos de desenho permanecem dentro da caixa delimitadora e não se sobrepõem a qualquer texto circundante.
* a origem, `(0,0)`, já não *mais* está localizada imediatamente após o texto “Esta é a minha figura”, no ponto em que o `\begin{picture}` comando foi executado: a origem está agora deslocada 1 unidade para a esquerda e 1 unidade para baixo
* o canto superior direito está agora na posição `(4,4)`

## Exemplos do ambiente picture

### Exemplos do manual de referência não oficial do LaTeX2e

O [manual de referência não oficial do LaTeX2e](https://latexref.xyz/picture.html) contém vários `picture` exemplos do ambiente, alguns dos quais são reproduzidos aqui juntamente com ligações que os abrem no Overleaf, permitindo-lhe editar e explorar o código.

#### Exemplo 1: o comando \vector

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{1cm}
\begin{picture}(6,6)      % a caixa da figura terá 6cm de largura por 6cm de altura
  \put(0,0){\vector(2,1){4}}  % por cada 2 para a direita este vetor sobe 1
    \put(2,1){\makebox(0,0)[l]{\ primeira perna}}
  \put(4,2){\vector(1,2){2}}
    \put(5,4){\makebox(0,0)[l]{\ segunda perna}}
  \put(0,0){\vector(1,1){6}}
    \put(3,3){\makebox(0,0)[r]{soma\ }}
\end{picture}
\end{document}
```

[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=picture+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Cbegin%7Bpicture%7D%286%2C6%29++++++%25+picture+box+will+be+6cm+wide+by+6cm+tall%0A++%5Cput%280%2C0%29%7B%5Cvector%282%2C1%29%7B4%7D%7D++%25+for+every+2+over+this+vector+goes+1+up%0A++++%5Cput%282%2C1%29%7B%5Cmakebox%280%2C0%29%5Bl%5D%7B%5C+first+leg%7D%7D%0A++%5Cput%284%2C2%29%7B%5Cvector%281%2C2%29%7B2%7D%7D%0A++++%5Cput%285%2C4%29%7B%5Cmakebox%280%2C0%29%5Bl%5D%7B%5C+second+leg%7D%7D++%0A++%5Cput%280%2C0%29%7B%5Cvector%281%2C1%29%7B6%7D%7D%0A++++%5Cput%283%2C3%29%7B%5Cmakebox%280%2C0%29%5Br%5D%7Bsum%5C+%7D%7D++%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![exemplo do ambiente picture](/files/b13f6e1531c811043fcbdbac8662d99078228fe0)

#### Exemplo 2: os comandos \qbezier, \line, \vector, \thinlines e \thicklines

Note como o `\qbezier` comando *não é* usado dentro de `\put{...}` enquanto outros comandos primitivos, como `\line`, `\vector` *estiver* usado dentro de `\put{...}`.

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{1cm}
\begin{picture}(8,4)
  \thinlines % Começar com linhas finas
  \put(0,0){\vector(1,0){8}}  % eixo x
  \put(0,0){\vector(0,1){4}}  % eixo y
  \put(2,0){\line(0,1){3}}    % lado esquerdo
  \put(4,0){\line(0,1){3.5}}  % lado direito
  \thicklines % Usar linhas mais grossas para os comandos \qbezier
  \qbezier(2,3)(2.5,2.9)(3,3.25)
  \qbezier(3,3.25)(3.5,3.6)(4,3.5)
  \thinlines % Voltar a usar linhas finas
  \put(2,3){\line(4,1){2}}
  \put(4.5,2.5){\framebox{Regra do Trapézio}}
\end{picture}
\end{document}
```

[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=qbezier+picture+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Cbegin%7Bpicture%7D%288%2C4%29%0A++%5Cthinlines+%25+Start+with+thin+lines%0A++%5Cput%280%2C0%29%7B%5Cvector%281%2C0%29%7B8%7D%7D++%25+x+axis%0A++%5Cput%280%2C0%29%7B%5Cvector%280%2C1%29%7B4%7D%7D++%25+y+axis%0A++%5Cput%282%2C0%29%7B%5Cline%280%2C1%29%7B3%7D%7D++++%25+left+side%0A++%5Cput%284%2C0%29%7B%5Cline%280%2C1%29%7B3.5%7D%7D++%25+right+side%0A++%5Cthicklines+%25+Use+thicker+lines+for+the+%5Cqbezier+commands%0A++%5Cqbezier%282%2C3%29%282.5%2C2.9%29%283%2C3.25%29%0A++%5Cqbezier%283%2C3.25%29%283.5%2C3.6%29%284%2C3.5%29%0A++%5Cthinlines+%25+Back+to+using+thin+lines%0A++%5Cput%282%2C3%29%7B%5Cline%284%2C1%29%7B2%7D%7D%0A++%5Cput%284.5%2C2.5%29%7B%5Cframebox%7BTrapezoidal+Rule%7D%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Exemplo do ambiente picture do LaTeX](/files/4e83060d29a2a4eaad479f6760e78c0b3ce4760f)

#### Exemplo 3: os comandos \multiput e \linethickness

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{1cm}
\thicklines
\begin{picture}(10,10)
  \linethickness{0.05mm}
  \multiput(0,0)(1,0){10}{\line(0,1){10}}
  \multiput(0,0)(0,1){10}{\line(1,0){10}}
  \linethickness{0.5mm}
  \multiput(0,0)(5,0){3}{\line(0,1){10}}
  \multiput(0,0)(0,5){3}{\line(1,0){10}}
\end{picture}
\end{document}
```

[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=multiput+command+picture+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Cthicklines%0A%5Cbegin%7Bpicture%7D%2810%2C10%29%0A++%5Clinethickness%7B0.05mm%7D%0A++%5Cmultiput%280%2C0%29%281%2C0%29%7B10%7D%7B%5Cline%280%2C1%29%7B10%7D%7D+%0A++%5Cmultiput%280%2C0%29%280%2C1%29%7B10%7D%7B%5Cline%281%2C0%29%7B10%7D%7D%0A++%5Clinethickness%7B0.5mm%7D%0A++%5Cmultiput%280%2C0%29%285%2C0%29%7B3%7D%7B%5Cline%280%2C1%29%7B10%7D%7D%0A++%5Cmultiput%280%2C0%29%280%2C5%29%7B3%7D%7B%5Cline%281%2C0%29%7B10%7D%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Exemplo do ambiente picture do LaTeX com \multiput](/files/31d092ae101ff3aa12a8d67085e42919dede8709)

### Outros exemplos

#### Uma curva de Bézier básica

O exemplo seguinte utiliza o `\qbezier` comando para desenhar uma curva de Bézier:

```latex
\qbezier(1,1)(5,5)(9,0.5)
```

Note o seguinte:

* o `\qbezier` comando não é usado dentro de um `\put` comando
* o ponto inicial da curva de Bézier é `(1,1)`
* o ponto final da curva de Bézier é `(9,0.5)`
* o ponto de controlo da curva de Bézier é `(5,5)`
* não usamos o inteiro opcional que determina o número de pontos usados para desenhar/produzir a curva de Bézier

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{0.8cm}
\begin{picture}(10,5)
\thicklines
\qbezier(1,1)(5,5)(9,0.5)
\put(2,1){{Curva de Bézier}}
\end{picture}
\end{document}
```

[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=multiput+command+picture+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B0.8cm%7D%0A%5Cbegin%7Bpicture%7D%2810%2C5%29%0A%5Cthicklines%0A%5Cqbezier%281%2C1%29%285%2C5%29%289%2C0.5%29%0A%5Cput%282%2C1%29%7B%7BB%C3%A9zier+curve%7D%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Desenhar uma curva de Bézier usando LaTeX](/files/02d150c3cad519163a6afef92de23facc7908715)

#### Ovais, linhas e círculos

O exemplo seguinte demonstra os `\line`, `\circle` e `\oval` comandos e — note como eles *estiver* todos usados dentro do `\put{...}` comando:

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{1cm}
\thicklines
\begin{picture}(10,6)
\put(2,2.2){\line(1,0){6}}
\put(2,2.2){\circle{2}}
\put(6,2.2){\oval(4,2)[r]}
\end{picture}
\end{document}
```

[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=picture+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Cthicklines%0A%5Cbegin%7Bpicture%7D%2810%2C6%29%0A%5Cput%282%2C2.2%29%7B%5Cline%281%2C0%29%7B6%7D%7D%0A%5Cput%282%2C2.2%29%7B%5Ccircle%7B2%7D%7D%0A%5Cput%286%2C2.2%29%7B%5Coval%284%2C2%29%5Br%5D%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Exemplo do ambiente picture do LaTeX](/files/fd3d515a27acd8a04ad38adbae57fe7bcf58357a)

Segue-se uma descrição dos comandos:

* `\put(2,2.2){\line(1,0){6}}`: desenha uma linha `6` unidades de comprimento usando o “vetor de direção” `(1,0)`
* `\put(6,2.2){\oval(4,2)[r]}`: desenha um oval centrado no ponto `(4,2)`. O parâmetro `[r]` é opcional, pode usar `r`, `l`, `t` e `b` para mostrar a parte direita, esquerda, superior ou inferior do oval.
* `\put(2,2.2){\circle{2}}`: desenha um círculo centrado no ponto `(2,2.2)` e cujo diâmetro é `2`.

#### Combinando linhas, círculos e texto

Diferentes elementos básicos podem ser combinados para criar figuras mais complexas. Neste exemplo, várias linhas e círculos são combinados para criar uma figura, juntamente com texto para identificar os pontos:

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{0.8cm}
\begin{picture}(12,4)
\thicklines
\put(8,3.3){{\footnotesize $3$-simplex}}
\put(9,3){\circle*{0.1}}
\put(8.3,2.9){$a_2$}
\put(8,1){\circle*{0.1}}
\put(7.7,0.5){$a_0$}
\put(10,1){\circle*{0.1}}
\put(9.7,0.5){$a_1$}
\put(11,1.66){\circle*{0.1}}
\put(11.1,1.5){$a_3$}
\put(9,3){\line(3,-2){2}}
\put(10,1){\line(3,2){1}}
\put(8,1){\line(1,0){2}}
\put(8,1){\line(1,2){1}}
\put(10,1){\line(-1,2){1}}
\end{picture}
\end{document}
```

[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=understanding+picture+dimensions+example+1\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B0.8cm%7D%0A%5Cbegin%7Bpicture%7D%2812%2C4%29%0A%5Cthicklines%0A%5Cput%288%2C3.3%29%7B%7B%5Cfootnotesize+%243%24-simplex%7D%7D%0A%5Cput%289%2C3%29%7B%5Ccircle%2A%7B0.1%7D%7D%0A%5Cput%288.3%2C2.9%29%7B%24a_2%24%7D%0A%5Cput%288%2C1%29%7B%5Ccircle%2A%7B0.1%7D%7D%0A%5Cput%287.7%2C0.5%29%7B%24a_0%24%7D%0A%5Cput%2810%2C1%29%7B%5Ccircle%2A%7B0.1%7D%7D%0A%5Cput%289.7%2C0.5%29%7B%24a_1%24%7D%0A%5Cput%2811%2C1.66%29%7B%5Ccircle%2A%7B0.1%7D%7D%0A%5Cput%2811.1%2C1.5%29%7B%24a_3%24%7D%0A%5Cput%289%2C3%29%7B%5Cline%283%2C-2%29%7B2%7D%7D%0A%5Cput%2810%2C1%29%7B%5Cline%283%2C2%29%7B1%7D%7D%0A%5Cput%288%2C1%29%7B%5Cline%281%2C0%29%7B2%7D%7D%0A%5Cput%288%2C1%29%7B%5Cline%281%2C2%29%7B1%7D%7D%0A%5Cput%2810%2C1%29%7B%5Cline%28-1%2C2%29%7B1%7D%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Exemplo do ambiente picture do LaTeX](/files/c7b173c3851a30961d02c2ccab5178f021b9ade1)

Aqui está um resumo de alguns comandos usados:

* `\thicklines`: isto aumenta a espessura das linhas. O `\thinlines` comando tem o efeito oposto.
* `\put(8,3.3){{\footnotesize $3$-simplex}}`: o texto “3-simplex” é inserido no ponto `(8,3.3)`, o tamanho da fonte é definido para `\footnotesize`. O mesmo comando é usado para identificar cada ponto.
* `\put(9,3){\circle*{0.1}}`: isto desenha um círculo preenchido, centrado em `(9,3)` com um pequeno diâmetro de `0.1` (unidade de desenho), para que possa ser usado como ponto.
* `\put(10,1){\line(3,2){1}}`: cria uma linha reta começando em `(10,1)` e desenhada na direção de `(3,2)` com um comprimento de 1 (unidade de desenho).

#### Usando setas

As setas também podem ser usadas dentro de um `picture` ambiente, por isso aqui está um segundo exemplo:

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{0.20mm}
\begin{picture}(400,250)
\put(75,10){\line(1,0){130}}
\put(75,50){\line(1,0){130}}
\put(75,200){\line(1,0){130}}
\put(120,200){\vector(0,-1){150}}
\put(190,200){\vector(0,-1){190}}
\put(97,120){$\alpha$}
\put(170,120){$\beta$}
\put(220,195){estado superior}
\put(220,45){estado inferior 1}
\put(220,5){estado inferior 2}
\end{picture}
\end{document}
```

[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+of+arrows+in+LaTeX+picture+environment\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B0.20mm%7D%0A%5Cbegin%7Bpicture%7D%28400%2C250%29%0A%5Cput%2875%2C10%29%7B%5Cline%281%2C0%29%7B130%7D%7D%0A%5Cput%2875%2C50%29%7B%5Cline%281%2C0%29%7B130%7D%7D%0A%5Cput%2875%2C200%29%7B%5Cline%281%2C0%29%7B130%7D%7D%0A%5Cput%28120%2C200%29%7B%5Cvector%280%2C-1%29%7B150%7D%7D%0A%5Cput%28190%2C200%29%7B%5Cvector%280%2C-1%29%7B190%7D%7D%0A%5Cput%2897%2C120%29%7B%24%5Calpha%24%7D%0A%5Cput%28170%2C120%29%7B%24%5Cbeta%24%7D%0A%5Cput%28220%2C195%29%7Bupper+state%7D%0A%5Cput%28220%2C45%29%7Blower+state+1%7D%0A%5Cput%28220%2C5%29%7Blower+state+2%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Exemplo de setas no ambiente picture do LaTeX](/files/1ea6c1d7db46f278ccfcba22423d8363d08a2707)

O `\vector` comando usa a mesma sintaxe que `\line`:

* `\put(120,200){\vector(0,-1){150}}`: desenha um vetor cujo ponto inicial é `(120,200)`, o comprimento é `150` e a direção do desenho é `(0,-1)`.

## Leitura adicional

Para mais informações, consulte os seguintes recursos:

* [manual de referência não oficial do LaTeX2e](https://latexref.xyz/picture.html)
* [Uma introdução não tão curta ao LaTeX2ε](https://tobi.oetiker.ch/lshort/lshort.pdf) (ver Capítulo 5)
* [Wikibooks](https://en.wikibooks.org/wiki/LaTeX/Picture)
* [questões marcadas com `picture-mode` no tex.stackexchange](https://tex.stackexchange.com/questions/tagged/picture-mode)
* [`pict2e` documentação do pacote](https://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/pict2e/pict2e.pdf)
* [Pacote TikZ](/latex/overleaf-learn-latex-pt/figuras-e-tabelas/05-tikz-package.md)
* [pacote Pgfplots](/latex/overleaf-learn-latex-pt/especifico-da-area/08-pgfplots-package.md)
* [Posicionamento de imagens e tabelas](/latex/overleaf-learn-latex-pt/figuras-e-tabelas/02-positioning-images-and-tables.md)
* [Listas de tabelas e figuras](/latex/overleaf-learn-latex-pt/figuras-e-tabelas/03-lists-of-tables-and-figures.md)


---

# 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/04-picture-environment.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.
