> 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/comandos/01-commands.md).

# Comandos

## Introdução

Este artigo fornece uma primeira introdução a *comandos*, que são um componente vital das capacidades de composição tipográfica do LaTeX. A maioria dos comandos LaTeX são palavras simples precedidas por um carácter especial, geralmente `\`, o carácter barra invertida. Vejamos alguns exemplos:

```latex
\documentclass{article}
\begin{document}
Num documento, existem diferentes tipos de \textbf{comandos}
que definem a forma como os elementos são apresentados. Isto
comandos podem inserir elementos especiais: $\alpha \beta \Gamma$
\end{document}
```

[Abra este exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+commands+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0AIn+a+document+there+are+different+types+of+%5Ctextbf%7Bcommands%7D+%0Athat+define+the+way+the+elements+are+displayed.+This+%0Acommands+may+insert+special+elements%3A+%24%5Calpha+%5Cbeta+%5CGamma%24%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Formatação básica de texto usando LaTeX](/files/c46bee133b275ff22599fa3ba2d58461cb702f7e)

No exemplo anterior, existem diferentes tipos de comandos; por exemplo, `\textbf` irá tornar em negrito o texto passado como parâmetro ao comando. No modo matemático, existem comandos especiais, como `\alpha`, `\beta` e `\Gamma` para apresentar caracteres gregos.

## Comandos

Aqui está um exemplo de código LaTeX com comandos para criar uma lista com marcadores:

```latex
\documentclass{article}
\begin{document}
Um exemplo de lista:
\begin{itemize}
  \item[\S] Primeiro item
  \item Segundo item
\end{itemize}
\end{document}
```

[Abra este exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+itemized+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0AA+list+example%3A%0A%5Cbegin%7Bitemize%7D%0A++%5Citem%5B%5CS%5D+First+item%0A++%5Citem+Second+item%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![A lista básica composta em LaTeX](/files/5dc23932f827235f3c3ad648cb12fc77226daba5)

O comando `\begin{itemize}` inicia um `itemize` *ambiente*—veja o [artigo sobre ambientes](/latex/overleaf-learn-latex-pt/comandos/02-environments.md) para mais detalhes. Abaixo da declaração do ambiente está o comando `\item` que indica ao LaTeX para iniciar uma nova entrada de lista: para a formatar, adicione uma marca especial (um pequeno ponto preto chamado bullet) e recue a entrada.

Alguns comandos requerem um ou mais *parâmetros*; por exemplo, a `\textbf` comando (usado acima) que aceita um único parâmetro — o texto a mostrar em negrito, que é escrito entre chavetas assim: `\textbf{make this bold}`.

Também existem *opcional* parâmetros que podem ser passados a um comando para alterar o seu comportamento; esses parâmetros opcionais têm de ser colocados entre parênteses retos: `[...]`. No exemplo acima, o comando `\item[\S]` faz o mesmo que `\item`, exceto que dentro dos parênteses retos está `\S`, que substitui outro carácter para substituir o ponto preto antes do texto da entrada.

## Definir um novo comando

Embora o LaTeX venha com um enorme número de comandos, muitas vezes torna-se necessário definir os seus próprios comandos especiais para simplificar o seu trabalho, reduzir tarefas repetitivas ou realizar alguma formatação complexa.

### Comandos simples

Os novos comandos são definidos por `\newcommand`; vejamos então um exemplo simples:

```latex
\documentclass{article}
\usepackage{amssymb}
\begin{document}
\newcommand{\R}{\mathbb{R}}
O conjunto dos números reais é geralmente representado
por um R maiúsculo em negrito de quadro: \( \R \).
\end{document}
```

[Abra este exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Creating+a+simple+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bamssymb%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewcommand%7B%5CR%7D%7B%5Cmathbb%7BR%7D%7D%0AThe+set+of+real+numbers+are+usually+represented+%0Aby+a+blackboard+bold+capital+R%3A+%5C%28+%5CR+%5C%29.%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Saída de um novo comando](/files/2f64d9b782c077e55a365d1e11f82c72e725adc4)

A instrução `\newcommand{\R}{\mathbb{R}}` tem dois parâmetros que definem um novo comando, onde:

* `\R`: é o nome do novo comando.
* `\mathbb{R}`: é o que o novo comando faz. Neste caso, a letra R será escrita em estilo de negrito de quadro. A utilização do `\mathbb` comando requer o `amssymb` pacote, que foi adicionado ao exemplo acima (no preâmbulo).

Depois de o comando ser definido, podemos usá-lo no texto, como demonstrado acima. Neste exemplo, o novo comando é definido imediatamente antes do parágrafo em que é usado; no entanto, espalhar tais definições ao longo do seu documento não é considerado uma boa prática. Em geral, as definições de novos comandos são reunidas no preâmbulo do documento ou, para coleções maiores, colocadas num ficheiro separado que pode ser [importado para o seu documento principal](/latex/overleaf-learn-latex-pt/estrutura-do-documento/07-management-in-a-large-project.md#inputting-and-including-files).

### Comandos com parâmetros

Também é possível criar novos comandos que aceitem alguns parâmetros; por exemplo:

```latex
\documentclass{article}
\usepackage{amssymb}
\begin{document}
\newcommand{\bb}[1]{\mathbb{#1}}
Outros sistemas numéricos têm notações semelhantes.
Os números complexos \( \bb{C} \), os racionais
os números \( \bb{Q} \) e os números inteiros \( \bb{Z} \).
\end{document}
```

[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+command+with+1+parameter\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bamssymb%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewcommand%7B%5Cbb%7D%5B1%5D%7B%5Cmathbb%7B%231%7D%7D%0AOther+numerical+systems+have+similar+notations.+%0AThe+complex+numbers+%5C%28+%5Cbb%7BC%7D+%5C%29%2C+the+rational+%0Anumbers+%5C%28+%5Cbb%7BQ%7D+%5C%29+and+the+integer+numbers+%5C%28+%5Cbb%7BZ%7D+%5C%29.%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Saída de um comando LaTeX com um parâmetro](/files/293ef5db068139bdf1f041f1a8610dae589f34a7)

A linha `\newcommand{\bb}[1]{\mathbb{#1}}` define um novo comando que recebe um parâmetro, onde:

* `\bb` é o nome do novo comando.
* `[1]` é o número de parâmetros que o novo comando irá receber.
* `\mathbb{#1}` é o que o comando realmente faz — a sua definição.

Neste caso, o parâmetro, referido como `#1`, será escrito usando caracteres em negrito de quadro. Se um comando precisar de mais do que um parâmetro, pode referir-se a cada parâmetro usando `#1`, `#2` e assim sucessivamente. São suportados até 9 parâmetros.

### Comandos com parâmetros opcionais

Os comandos definidos pelo utilizador podem tornar-se ainda mais flexíveis do que os exemplos apresentados até agora: pode definir comandos que aceitem *opcional* parâmetros:

```latex
\documentclass{article}
\begin{document}

Ao escrever muitas expressões com expoentes, podemos simplificar a nossa tarefa e poupar tempo, definindo um comando adequado:

\newcommand{\plusbinomial}[3][2]{(#2 + #3)^#1}

Podemos usá-lo assim: \[ \plusbinomial{x}{y} \]

E até o expoente pode ser alterado:

\[ \plusbinomial[4]{a}{b} \]
\end{document}
```

[Abra este exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+command+with+optional+parameters\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%0AWhen+writing+many+expressions+with+exponents+we+can+simplify+our+task%2C+and+save+time%2C+by+defining+a+suitable+command%3A%0A%0A%5Cnewcommand%7B%5Cplusbinomial%7D%5B3%5D%5B2%5D%7B%28%232+%2B+%233%29%5E%231%7D%0A%0AWe+can+use+it+like+this%3A+%5C%5B+%5Cplusbinomial%7Bx%7D%7By%7D+%5C%5D%0A%0AAnd+even+the+exponent+can+be+changed%3A%0A%0A%5C%5B+%5Cplusbinomial%5B4%5D%7Ba%7D%7Bb%7D+%5C%5D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Saída de um comando com parâmetros opcionais](/files/4a40cf3f7d009d48bf2b8bc966cc865589794c52)

Vamos analisar a sintaxe da linha `\newcommand{\plusbinomial}[3][2]{(#2 + #3)^#1}`:

* `\plusbinomial` é o nome do novo comando.
* `[3]` é o número de parâmetros que o comando irá receber, neste caso 3.
* `[2]` é o valor predefinido para o primeiro parâmetro. É isto que torna o primeiro parâmetro opcional; se não for passado, usará este valor predefinido.
* `(#2 + #3)^#1` é o que o comando faz. Neste caso, colocará o segundo e o terceiro parâmetros num "formato binomial" elevado à potência representada pelo primeiro parâmetro.

## Substituir comandos existentes

Se tentar definir um novo comando com o mesmo nome que um *já existente* comando LaTeX, a compilação falhará com uma mensagem de erro. Isto é demonstrado no exemplo seguinte, que tenta definir o (existente) `\textbf` comando:

```latex
\documentclass{article}
\newcommand{\textbf}[1]{#1}% This will not work
\begin{document}

\section{This will fail}
\end{document}
```

[Abra este exemplo (**gerador de erros**) no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Duplicate+command+name\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cnewcommand%7B%5Ctextbf%7D%5B1%5D%7B%231%7D%25+This+will+not+work%0A%5Cbegin%7Bdocument%7D%0A%0A%5Csection%7BThis+will+fail%7D%0A%5Cend%7Bdocument%7D)

A compilar este exemplo produz-se a seguinte saída:

![Erro gerado por definição duplicada de comando LaTeX](/files/4403b76f4c72f874efdbbc258d92ff401171f84e)

Como mostrado na imagem do ecrã, a nossa tentativa de definir `\textbf` falhou: o LaTeX gerou a mensagem de erro **Erro de LaTeX: Comando \textbf já definido**.

Se realmente quiser substituir um comando existente, isso pode ser feito com `\renewcommand`, que usa a mesma sintaxe que `\newcommand`:

```latex
\documentclass{article}
\usepackage{amssymb}
\begin{document}

\renewcommand{\S}{\mathbb{S}}

A esfera de Riemann (os números complexos mais $\infty$) é
por vezes representada por \( \S \).
\end{document}
```

[Abra este exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Redefine+existing+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bamssymb%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Crenewcommand%7B%5CS%7D%7B%5Cmathbb%7BS%7D%7D%0A%0AThe+Riemann+sphere+%28the+complex+numbers+plus+%24%5Cinfty%24%29+is+%0Asometimes+represented+by+%5C%28+%5CS+%5C%29.%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Saída de um comando LaTeX redefinido](/files/176210e3365653c8676c0e33c0f3a0e440ccda2a)

Neste exemplo, o comando `\S` (veja o exemplo na [comandos](#commands) secção) é substituído para imprimir um S em negrito de quadro.

## Leitura adicional

Para mais informações, consulta:

* [Ambientes](/latex/overleaf-learn-latex-pt/comandos/02-environments.md)
* [Compreender pacotes e ficheiros de classe](/latex/overleaf-learn-latex-pt/ficheiros-de-classe/01-understanding-packages-and-class-files.md)
* [Escrever o seu próprio pacote](/latex/overleaf-learn-latex-pt/ficheiros-de-classe/03-writing-your-own-package.md)
* [Escrever a sua própria classe](/latex/overleaf-learn-latex-pt/ficheiros-de-classe/04-writing-your-own-class.md)
* [Comprimentos em LaTeX](/latex/overleaf-learn-latex-pt/formatacao/01-lengths-in-latex.md)
* [Utilizar cores no LaTeX](/latex/overleaf-learn-latex-pt/formatacao/13-using-colors-in-latex.md)
* [Tamanho da página e margens](/latex/overleaf-learn-latex-pt/formatacao/07-page-size-and-margins.md)
* [Lista de pacotes e ficheiros de classe](/latex/overleaf-learn-latex-pt/ficheiros-de-classe/02-overleaf-and-tex-live.md)
* [A introdução não tão curta ao LaTeX2ε](http://www.ctan.org/tex-archive/info/lshort/)
* [LaTeX/Creating\_Packages no WikiBooks](http://en.wikibooks.org/wiki/LaTeX/Creating_Packages)


---

# 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/comandos/01-commands.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.
