Apresentação


Este é o segundo artigo sobre LaTeX, a linguagem de marcação mais utilizada na produção de textos técnicos, sobretudo em áreas como matemática, física, engenharia e ciência da computação.

No primeiro artigo, LaTeX: conceito e acessibilidade, foram apresentados a história da linguagem, seu propósito original e questões relacionadas à acessibilidade.

Neste segundo artigo, o foco é um tutorial prático que mostra como criar um documento em LaTeX desde o início. O conteúdo inclui exemplos de matemática básica e avançada, um modelo completo de documento e uma introdução inicial à criação de PDFs acessíveis.

A proposta é colaborar para que a pessoa leitora se familiarize com a linguagem e a utilize na produção de textos técnicos acessíveis, tanto para quem lê visualmente quanto para quem usa leitores de tela.

Seu primeiro documento LaTeX no VS Code


Para escrever em LaTeX, você vai precisar de três coisas. Vou listá-las agora e, logo em seguida, explicar cada uma delas com detalhes:

  1. Uma distribuição TeX, que é o “motor” que transforma o seu código em um documento pronto.
  2. O editor de código VS Code (o nome completo é Visual Studio Code), que é o programa onde você vai de fato escrever o seu texto.
  3. A extensão LaTeX Workshop, que é um complemento instalado dentro do VS Code e serve para ligar o editor ao motor.

Pode parecer muita coisa agora, mas é mais simples do que parece, e as três partes trabalham juntas. Uma forma de imaginar: a distribuição TeX é como o forno que assa o documento, o VS Code é a bancada onde você prepara a receita, e a extensão LaTeX Workshop é quem leva a receita até o forno na hora certa.

Por isso, precisamos fazer a instalação dessas três partes.

Passo 1: A Distribuição TeX


Esse é o programa que de fato lê o seu arquivo .tex e gera o PDF no final. Existem três opções gratuitas bastante conhecidas.

  • A primeira é o TeX Live, que é completa, funciona em qualquer sistema operacional (Windows, Mac e Linux) e ocupa vários gigabytes de espaço.

  • A segunda é o MiKTeX, muito popular entre quem usa Windows.

  • E a terceira é o TinyTeX. O TinyTeX é uma versão “enxuta”, feita a partir do TeX Live, e tem duas vantagens que facilitam muito a vida: ela se instala sem exigir senha de administrador do computador e ocupa pouco espaço, porque vem só com os pacotes essenciais. Mas tem um detalhe: quando o seu documento precisar de um pacote que ainda não está instalado, é você quem faz essa instalação, com um comando bem simples. Mais para a frente, na seção sobre o erro “File … not found”, a gente vê como fazer isso com calma.

Os tutoriais de instalação de cada uma dessas distribuições estão disponíveis nos seguintes links:

Passo 2: O Editor de Código VS Code


O Visual Studio Code é um editor de código gratuito e leve, que funciona em Windows, Mac e Linux. Ele é muito popular entre pessoas que programam, mas também é ótimo para escrever em LaTeX. Ele tem uma interface amigável, suporte a várias linguagens de programação e, o mais importante para nós, uma extensão específica para LaTeX.

Observação importante: se você é uma pessoa que usa leitores de tela, o VS Code tem um modo de acessibilidade que pode ser ativado para melhorar a experiência. Além disso, o artigo Introdução à Programação: Conhecendo o VS Code(abre em nova janela) pode ajudar a entender melhor como usar o VS Code com leitores de tela e teclas de atalho.

Esse mesmo artigo também descreve a instalação do VS Code na seção Instalação do VS Code. Lá você encontra o passo a passo para fazer o download(abre em nova janela) e instalar o editor nos sistemas operacionais Windows(abre em nova janela), Linux(abre em nova janela) e macOS(abre em nova janela).

Além disso, as seções:

Dão uma boa introdução sobre o uso do editor com leitores de tela, apesar do foco ser no NVDA, que é o leitor de tela mais usado no Brasil em ambientes Windows.

Passo 3: A Extensão LaTeX Workshop


Com o VS Code aberto, vá até a aba de extensões e pesquise por LaTeX Workshop (feita por James Yu). Essa é uma extensão criada por terceiros, ou seja, ela não vem da própria empresa do VS Code, e é a mais usada por quem escreve LaTeX nesse editor.

De acordo com a documentação oficial dela, essa extensão oferece vários recursos. Vou destacar os principais.

  • O primeiro é a compilação automática toda vez que você salva o arquivo. Compilar, aqui, é justamente esse ato de transformar o seu código no documento final em PDF. Com esse recurso ligado, você não precisa mandar gerar o PDF manualmente: basta salvar, e ele se atualiza sozinho. (Isso fica ligado por meio da opção latex-workshop.latex.autoBuild.run com o valor onSave.)

  • O segundo recurso é a visualização do PDF dentro do próprio editor, sem precisar abrir outro programa (o atalho é Ctrl + Alt + V, ou Cmd + Alt + V no Mac).

  • O terceiro é o SyncTeX, que mantém o código e o PDF sincronizados, mostrando em um deles o ponto que corresponde ao outro.

  • E o quarto é o IntelliSense, que vai sugerindo comandos para você enquanto digita a barra invertida \.

A extensão tem muitos outros recursos, mas esses são os principais para quem está começando. Com ela instalada, o VS Code se torna um ambiente completo para escrever em LaTeX, facilitando a criação de documentos técnicos de alta qualidade.

Criando seu primeiro documento


Agora vamos ao seu primeiro documento. Crie um arquivo e dê a ele um nome e a extensão terminando em .tex, por exemplo ola.tex, ou meu_documento.tex. Dentro dele, digite o seguinte conteúdo:

\documentclass{article}

\begin{document}

Olá, mundo! Este é o meu primeiro documento em LaTeX.

\end{document}

Agora salve o arquivo. Como a compilação automática está ligada, o LaTeX Workshop vai gerar um PDF sozinho, na mesma pasta onde você salvou o .tex. Agora é hora de conferir o resultado, e aqui vale uma observação importante, porque o caminho muda um pouco dependendo de como você usa o computador.

Se você enxerga, dá para usar o visualizador de PDF embutido no próprio editor, com o atalho Ctrl + Alt + V (ou Cmd + Alt + V no Mac). Ele abre o PDF ali do lado do código, sem precisar de outro programa.

Se você usa leitor de telas, esse visualizador embutido não vai ajudar muito. Ele é uma pré-visualização feita para conferir o visual (margens, posição das coisas na página) e não é navegável pelo leitor de telas. Por isso, o melhor caminho é abrir o arquivo PDF gerado em um programa que o seu leitor de telas leia bem.

Duas boas opções são o Microsoft Edge, que tem um leitor de PDF embutido e o recurso “Ler em voz alta”, e o Adobe Acrobat Reader, que funciona bem com o NVDA e o JAWS e também tem a função “Ler em voz alta”. O arquivo está na mesma pasta do seu .tex, com o mesmo nome e a extensão .pdf (por exemplo, ola.pdf).

Dica: no começo, o que mais importa não é ler o PDF, mas sim entender a estrutura do código, saber que o documento foi gerado sem erros e se familiarizar com o processo. Para pessoas que usam leitores de tela, o processo de ler, navegar e ter velocidade no próprio código .tex é tão importante, ou até mais, do que ler o PDF pois é ali que estão as informações estruturais do documento, e é ali que o leitor de telas vai conseguir transmitir a hierarquia, os títulos, as fórmulas, os gráficos, etc.

Feito isso, pronto… Você criou o seu primeiro documento em LaTeX! Ele é bem simples, mas já tem a estrutura básica de um documento, com a declaração da classe (\documentclass{article}) e o ambiente do documento (\begin{document} ... \end{document}).

Agora vamos entender, com calma, o que cada linha desse código faz e o que quer dizer:

  • A linha \documentclass{article} informa qual é o tipo de documento que você está fazendo. O tipo article (que quer dizer “artigo”) é o mais comum de todos. Existem outros, como o report (relatório) e o book (livro).

  • As linhas \begin{document} e \end{document} marcam onde o texto começa e termina. Tudo aquilo que o leitor vai realmente acessar no documento precisa ficar escrito entre essas duas linhas.

  • A frase “Olá, mundo! Este é o meu primeiro documento em LaTeX.” é o conteúdo de verdade, o texto que vai aparecer no PDF.

Se ao salvar o arquivo o PDF não for gerado, vale checar duas coisas.

  • A primeira é se a distribuição TeX está “visível” ou registrada para o sistema, no que se chama de PATH (no Windows e no Linux, às vezes é preciso fechar e abrir o VS Code de novo depois de instalar a distribuição, para que ele a reconheça).

  • A segunda é verificar no painel de problemas ou no registro (o “log”) do LaTeX Workshop. É justamente ali que aparecem as mensagens de erro, escritas em texto comum, legíveis pelo leitor de tela. Essas mensagens registram o que aconteceu durante a compilação, muitas vezes são erros de sintaxe, ou seja, erros de escrita do código, e indicam o que precisa ser corrigido para que o PDF seja gerado.

Quando aparecer “File … not found”: instalando pacotes que faltam


E por falar em mensagens de erro: se você escolheu o TinyTeX, tem uma que mais cedo ou mais tarde vai aparecer, então é melhor já conhecê-la desde agora. Como essa distribuição vem só com o essencial, na primeira vez que o seu documento usar um recurso novo, a compilação pode parar, e aparece no log uma mensagem parecida com esta:

! LaTeX Error: File `xstring.sty' not found.

Essa mensagem está dizendo o seguinte: o LaTeX procurou o arquivo xstring.sty, que pertence a um pacote que o seu documento pediu, e não encontrou esse arquivo instalado no computador. Calma, não é nada grave! A solução é instalar o pacote que está faltando, e para isso o TinyTeX traz um gerenciador de pacotes chamado tlmgr (o nome vem de TeX Live Manager, ou gerenciador do TeX Live). A ideia é simples: você pede um pacote pelo nome, e ele baixa e instala tudo sozinho. É só abrir o terminal, que pode ser o do próprio VS Code, e digitar:

tlmgr install xstring

Repare que o nome do pacote costuma ser o nome do arquivo sem o final .sty. Depois de instalar, salve o seu .tex de novo para compilar outra vez. Se aparecer outro “not found”, de outro pacote, é só repetir o processo, e tudo bem também! É normal precisar instalar dois ou três pacotes novos quando o documento traz recursos que você ainda não tinha usado antes. E, se o terminal ainda for novidade para você, o artigo Introdução à Programação: Conhecendo o Terminal(abre em nova janela) apresenta essa ferramenta desde o início.

De vez em quando, o nome do pacote é diferente do nome do arquivo, e aí o tlmgr responde que o pacote não existe no repositório (repositório é o lugar na internet de onde os pacotes são baixados). Nesse caso, dá para perguntar a ele qual pacote contém o arquivo que você procura:

tlmgr search --global --file xstring.sty

Ele responde com o nome certo, e é esse nome que você usa no tlmgr install. Um exemplo real: o arquivo pdfmanagement-testphase.sty, que vai aparecer quando a gente for gerar PDFs acessíveis, mais adiante neste artigo, hoje mora dentro de um pacote chamado só de pdfmanagement. Eu não teria como adivinhar esse nome sozinha, foi a busca que me contou.

Dica: quem usa o MiKTeX quase não passa por isso, porque ele mesmo se oferece para instalar o pacote que falta na hora da compilação. E quem instalou o TeX Live completo também não, porque lá já vem tudo. Esse cuidado é mesmo só do TinyTeX. Na minha opinião, é uma troca que vale a pena: alguns tlmgr install de vez em quando, em troca de uma instalação leve e sem senha de administrador.

Estrutura e Aparência: Entendendo Cada Parte


Existe uma ideia simples que ajuda a organizar tudo o que vem a seguir. No LaTeX, é útil separar duas coisas na nossa cabeça. De um lado está a estrutura, que é aquilo que cada pedaço do texto é: isto aqui é um título, isto é uma seção, isto é uma equação. Do outro lado está a aparência, que é o jeito como essas coisas vão aparecer depois de prontas, como o tamanho da letra e o espaçamento entre as linhas.

A filosofia do LaTeX é a seguinte: você cuida da estrutura e deixa a aparência por conta do próprio LaTeX. Para quem usa leitor de telas, isso é uma vantagem e tanto. Significa que você passa o tempo todo lidando com texto que tem significado e organização, e não com detalhes visuais de formatação.

Para entender isso, vamos analisar o código de um documento mais completo que o que acabamos de criar.

\documentclass[12pt]{article}

% --- Daqui até \begin{document} é o "preâmbulo" (ou seja, a área de preparação) ---
\usepackage[T1]{fontenc}
\usepackage[brazilian]{babel}   % hifenização e nomes em português
\usepackage{amsmath}         % recursos matemáticos da AMS

\title{Meu primeiro artigo}
\author{Seu Nome}
\date{\today}
% --- Fim do preâmbulo ou área de preparação ---

\begin{document}

\maketitle   % aqui estamos pedindo para o LaTeX importar o bloco de título

\section{Introdução}
Este é o texto da introdução, onde apresentamos o tema do artigo e explicamos o que vamos falar.

\subsection{Contexto}
Aqui vai um detalhamento de alguma coisa específica.

\section{Conclusão}
Considerações finais e fechamento do artigo.

\end{document}

Agora, vamos entender o que cada parte desse código faz.

  • Comando. Um comando é uma ordem que você dá para o LaTeX, é você dizendo “faça isto aqui para mim”. Todo comando começa com o caractere \, que é a barra invertida (cuidado para não confundir com a barra comum /).

    • Pense na barra invertida como um aviso. É como se você cutucasse o LaTeX e dissesse “ó, presta atenção, o que vem agora não é texto comum para imprimir na página, é uma instrução para você executar”.
    • Um exemplo é \section, que serve para começar uma nova seção do documento. Outro é \today, que escreve a data de hoje automaticamente.
    • Muitos comandos precisam de uma informação extra para funcionar, e essa informação a gente chama de argumento (argumento é o dado que você entrega para o comando trabalhar). O argumento vai escrito logo depois do comando, entre chaves { }.
    • Vamos pegar \section{Introdução} como exemplo. Aqui o comando é o \section e o argumento é a palavra “Introdução”, que está dentro das chaves. Lendo tudo junto, esse pedaço de código está dizendo o seguinte: “crie uma seção nova e dê a ela o título Introdução”.
    • Uma comparação que ajuda: o comando é o verbo, a ação que você quer (“faça uma seção”), e o argumento é o complemento, o detalhe que faltava para a ação ficar completa (“com o título Introdução”). Sem o argumento, o LaTeX saberia o que fazer, mas não com qual conteúdo.
  • Ambiente. Se o comando é uma ordem pontual, o ambiente é um trecho inteiro do texto que recebe um tratamento especial do começo ao fim. Ele sempre vem limitado (demarcado) por um par de comandos: um \begin{nome} marcando onde o trecho começa e um \end{nome} marcando onde ele termina. O nome entre chaves diz que tipo de ambiente é aquele.

    • Uma boa forma de pensar no ambiente é como uma caixa: o \begin é a tampa de baixo, o \end é a tampa de cima, e tudo o que você escreve entre os dois fica guardado dentro dela, recebendo o mesmo cuidado.
    • Repare que o \begin e o \end andam sempre em par, como um parêntese que abre e outro que fecha. Se você abrir um ambiente e esquecer de fechar, o LaTeX vai reclamar, então preste atenção para não deixar nenhum ambiente aberto sem fechar, ou para não fechar um ambiente que você não abriu.
    • O documento inteiro, por exemplo, é um ambiente, chamado document. É por isso que lá no código tudo o que a gente quer que apareça na página fica escrito entre o \begin{document} e o \end{document}: é a caixa que guarda o conteúdo do nosso texto.
    • Mais para a frente, a gente vai conhecer outros ambientes bem úteis, como os que servem para escrever equações e para montar matrizes. A lógica vai ser sempre a mesma: abre com \begin, escreve o conteúdo no meio e fecha com \end.

Com esses dois conceitos na cabeça, dá para entender o resto do código. Vamos continuar analisando as outras partes:

  • Preâmbulo. Preâmbulo é o nome que se dá a tudo aquilo que fica escrito entre a linha \documentclass{…} e a linha \begin{document}. Eu gosto de pensar no preâmbulo como os bastidores do documento, uma área de preparação que acontece antes de a peça começar.

    • É ali, nos bastidores, que você arruma a casa antes de receber a visita: carrega os pacotes que vai usar, ajusta algumas configurações e informa coisas como o título do documento.
    • O detalhe importante é que nada do que está no preâmbulo aparece diretamente no texto final. Ele não escreve nada na página, só deixa tudo prontinho para quando o documento de fato começar. É como a cozinha de um restaurante: o cliente não vê o que acontece lá, mas é ali que o prato é preparado antes de chegar à mesa.
  • Carregar um pacote com \usepackage{…}. O comando \usepackage serve para carregar um pacote (pacote é um conjunto a mais de comandos e recursos que vêm prontos para você usar). É como instalar um aplicativo novo no celular: o LaTeX já vem com o básico, e cada pacote adiciona habilidades extras que ele não tinha antes.

    • No nosso exemplo, a gente carregou três pacotes. O fontenc cuida da codificação das fontes, ou seja, de como as letras são representadas por baixo dos panos. O babel, com a opção brazilian, cuida das regras do português, como separar as sílabas no lugar certo na hora de quebrar uma linha. Aliás, você ainda vai encontrar por aí muito material usando a forma antiga, brazil. Ela funciona, mas hoje gera um aviso dizendo que o nome foi descontinuado, então prefira a forma nova. E o amsmath traz uma porção de recursos para escrever matemática, que a gente vai usar bastante mais para a frente.
    • A dica aqui é simples: sempre que você quiser um recurso que o LaTeX não tem de fábrica, é bem provável que exista um pacote para isso, e é o \usepackage que vai trazê-lo para o seu documento.
  • Declarar título, autor e data com \title, \author e \date. Esses três comandos servem para informar, na ordem, o título do documento, quem é a pessoa autora e qual é a data. Um detalhe útil: no lugar de digitar a data manualmente, você pode usar o comando \today, que insere sozinho a data do dia em que o documento for gerado.

    • Mas tem um ponto que costuma confundir quem está começando, então vale a pena reforçar: esses comandos apenas declaram essas informações, eles não as colocam na página. É como anotar o título, o autor e a data num papelzinho e deixar separado. A informação existe, mas ainda não foi para o documento.
    • Quem manda de fato imprimir o bloco com o título na página é outro comando, o \maketitle, que aparece já lá dentro do documento, depois do \begin{document}. Ou seja, você primeiro declara as informações no preâmbulo e depois, no corpo do texto, pede para o LaTeX montá-las com o \maketitle.
  • Seções. As seções são o que organiza o seu texto em partes, como os capítulos de um livro. O comando \section{nome} cria uma seção. O \subsection{nome} cria uma subseção, que é uma divisão dentro de uma seção. E ainda existe o \subsubsection{nome}, para descer mais um nível, uma divisão dentro da subseção.

    • A melhor parte é que você não precisa se preocupar em numerar nada. O LaTeX faz a numeração sozinho, e o melhor: se você inverter a ordem das seções, apagar uma ou acrescentar outra no meio, ele refaz toda a contagem automaticamente para você.
    • Se em algum caso específico você não quiser que apareça o número da seção, é só usar a versão do comando com um asterisco, assim: \section*{nome}. O asterisco é como um aviso dizendo “essa aqui não precisa de número”.

Dica: o caractere % (porcentagem) serve para iniciar um comentário. Tudo o que você escrever depois dele, até o fim daquela linha, é ignorado pelo LaTeX e não vai aparecer no documento. Os comentários são ótimos para você deixar lembretes e anotações para si mesma no meio do código, sem nenhum medo de que apareçam no resultado final. Dá para usar, por exemplo, para explicar para que serve um trecho mais complicado, ou para “desligar” temporariamente uma linha sem precisar apagá-la.

Começando com a matemática


Chegamos ao coração do LaTeX, que é onde ele brilha e brilha muito, a parte de escrever matemática. É aqui que ele mostra por que tanta gente das áreas de exatas não abre mão dele.

Para escrever qualquer fórmula, você precisa primeiro entrar no chamado modo matemático. Pense nele como um “modo” que você liga para avisar ao LaTeX: “ó, o que vem agora não é texto comum, é matemática, então capriche na formatação”.

Existem dois jeitos de entrar nesse modo, e a escolha entre eles depende só de como você quer que a fórmula apareça na página:

  • A matemática “embutida” (que em inglês se chama inline) é aquela que fica no meio de uma frase, andando junto com as palavras, sem atrapalhar o fluxo da leitura. Ela vai entre os símbolos \( e \).

  • A matemática “em destaque” (em inglês, display) é aquela que ganha uma linha só para ela, centralizada e separada do texto, como se fosse uma fórmula em exibição. Ela vai entre os símbolos \[ e \].

A seguir, um exemplo de cada uma para você observar a diferença:

A famosa identidade \( a^2 + b^2 = c^2 \) relaciona os lados de um triângulo retângulo.

A energia em repouso é dada por:
\[ E = m c^2 \]

No primeiro caso, a fórmula aparece dentro da própria frase. No segundo, ela pula para uma linha exclusiva, em destaque. A regra prática é simples: fórmula curtinha no meio do texto pede o modo embutido (começando com o \( e \) para terminar), e fórmula mais elaborada, que merece um destaque, pede o modo em destaque (que começa com o \[ e usa \] para terminar).

Observação: por aí você também vai encontrar pessoas usando os cifrões, como em:

$ a^2 + b^2 = c^2 $

Para o modo matemático embutido, e

$$ E = m c^2 $$

para o modo matemático em destaque. Esses cifrões são uma forma mais antiga de entrar no modo matemático, e ainda funcionam, mas a recomendação atual é usar os \( e \) para o modo embutido, e os \[ e \] para o modo em destaque.

Agora vamos aos “tijolinhos” básicos, as peças com as quais a gente constrói qualquer fórmula. Para cada um deles eu vou seguir sempre o mesmo ritmo: primeiro explico o que ele faz e como se escreve, depois mostro o código e, por fim, conto como aquilo costuma ser pronunciado em voz alta.

Potências e índices


Antes de verificar o código, vale entender uma diferença importante entre duas ideias da matemática que costumam aparecer juntas, mas não significam a mesma coisa: potência e índice.

Vamos começar pela potência (ou potenciação). Ela é um jeito mais curto de escrever uma multiplicação em que o mesmo número aparece várias vezes. Toda potência tem duas partes principais: a base, que é o número que se repete, e o expoente, que mostra quantas vezes esse número será multiplicado por ele mesmo.

Fica mais fácil entender com um exemplo.

Quando falamos “2 ao quadrado”, a base é 2 e o expoente também é 2. Isso quer dizer que o número 2 vai aparecer duas vezes na conta: $2 \times 2$, que dá 4.

Já em “2 ao cubo”, a base continua sendo 2, mas o expoente passa a ser 3. Então o 2 aparece três vezes: $2 \times 2 \times 2$, que dá 8.

Aqui tem um detalhe que costuma confundir muita gente.

Observe de novo o caso de “2 ao cubo”, que é $2 \times 2 \times 2$. Nessa conta, o número 2 aparece três vezes, mas o sinal de multiplicação aparece só duas.

Isso acontece porque o expoente não mostra quantos sinais de vezes existem, e sim quantas vezes a base aparece se repetindo na multiplicação.

Por isso, em “2 ao cubo”, o expoente é 3. Resumindo: o expoente mostra quantas vezes a base se repete, e os sinais de multiplicação sempre serão um a menos.

Os nomes “quadrado” e “cubo” são apenas formas tradicionais de chamar as potências com expoente 2 e 3. Você pode usar esses nomes normalmente. O mais importante é entender a ideia principal: pegar o mesmo número e multiplicá-lo por ele mesmo várias vezes.

Já o índice, também chamado de subscrito, tem uma função bem diferente: ele não representa uma conta. Ele funciona só como uma forma de identificar e separar coisas parecidas.

Por exemplo, quando precisamos falar de vários valores de x, podemos chamar de x índice 1, x índice 2, x índice 3 e assim por diante. Cada um continua sendo um x diferente, e esse número ao lado serve apenas para mostrar qual é qual.

É como se fosse um sobrenome ajudando a diferenciar pessoas que têm o mesmo nome. Também dá para usar dois índices ao mesmo tempo, como em “a índice i vírgula j”, quando queremos identificar algo com dois rótulos, parecido com localizar um endereço pela rua e pelo número.

Em livros, provas e no quadro, a matemática passou a usar uma forma padrão de mostrar essas duas coisas no papel: o expoente aparece como um número pequeno escrito um pouco acima e à direita da base, enquanto o índice aparece como um número pequeno escrito um pouco abaixo e à direita.

Isso é só uma convenção de escrita, ou seja, um jeito combinado de representar essas informações. Quem enxerga percebe essa diferença pela posição do número: quando ele está mais alto, indica potência; quando está mais baixo, indica índice.

Já quem usa leitor de telas não percebe essa diferença visual de altura. Nesse caso, o programa ajuda dizendo em palavras o que está sendo lido, como “sobrescrito” para o expoente e “subscrito” para o índice.

No LaTeX, é o sinal ^ que coloca o conteúdo naquela posição “levantada” do expoente, e o sinal _ que coloca o conteúdo na posição “rebaixada” do índice:

\( x^2 \)        % x ao quadrado
\( x_i \)        % x índice i
\( x^{n+1} \)    % com mais de um caractere, agrupe entre chaves
\( a_{i,j} \)    % a índice i vírgula j

A visualização desses comandos quando renderizados (ou seja, quando o PDF é gerado) é a seguinte:

  • $x^2$
  • $x_i$
  • $x^{n+1}$
  • $a_{i,j}$

Em voz alta, x^2 soa como “x elevado a 2” (ou “x ao quadrado”), e x_i soa como “x subscrito i”. Repare que o leitor de telas fala “subscrito”, que é justamente o termo que vimos antes para o índice.

Guarde esta regra importante: sempre que o expoente ou o índice tiver mais de um caractere, coloque esse trecho entre chaves, como em x^{n+1}.

Se as chaves não forem usadas, escrever x^n+1 passa a ter outro sentido, como “x elevado a n” e, depois disso, “somar mais 1”. As chaves servem justamente para mostrar onde o expoente termina.

Frações


Uma fração é uma forma de representar uma divisão. Ela é usada quando queremos mostrar que um todo foi separado em partes iguais e que estamos olhando para uma ou mais dessas partes.

Pense, por exemplo, em uma pizza dividida em pedaços do mesmo tamanho. A fração ajuda a dizer em quantas partes essa pizza foi cortada e quantos pedaços estamos considerando.

Numa fração, existem duas partes principais. A de cima é chamada de numerador e mostra quantas partes estamos pegando. A de baixo é chamada de denominador e indica em quantas partes iguais o todo foi dividido.

Por exemplo, na fração $\frac{1}{2}$, o numerador é 1 e o denominador é 2. Isso quer dizer que o todo foi dividido em duas partes iguais e estamos falando de apenas uma dessas partes.

Além do significado da fração, também existe um jeito tradicional de escrevê-la no papel. Esse jeito é apenas visual, ou seja, depende da forma como a fração aparece para quem está olhando. Na forma mais comum de escrita, o numerador fica em cima, o denominador fica embaixo e há um traço horizontal entre os dois.

Esse traço mostra que existe uma divisão entre uma parte e a outra. Para quem enxerga, essa organização ajuda a identificar rapidamente que aquilo é uma fração. Já para quem usa leitor de telas, essa disposição visual não aparece do mesmo jeito e isso pode dificultar a compreensão.

No LaTeX, a fração é escrita com o comando \frac{…}{…}. Funciona assim: a primeira parte, entre chaves, recebe o numerador; a segunda parte, também entre chaves, recebe o denominador.

Essa ordem deve ser sempre mantida para que a fração seja escrita corretamente, como em:

\( \frac{1}{2} \) % fração um sobre dois
\[ \frac{a+b}{c-d} \] % fração a mais b sobre c menos d

A visualização desses comandos quando renderizados é a seguinte:

  • $\frac{1}{2}$
  • $\frac{a+b}{c-d}$

Em voz alta, \frac{a+b}{c-d} soa como “início da fração, a mais b, sobre, c menos d, fim da fração”. Quando o numerador ou o denominador tem mais de um pedaço (aqui, “a mais b” e “c menos d”), a Fala Fórmula anuncia “início da fração” e “fim da fração” para deixar claro onde a fração começa e termina. Em frações simples, como \frac{1}{2}, ela fala apenas “1 sobre 2”. Repare em como o próprio código já separa com clareza o que é numerador e o que é denominador. Isso é uma vantagem do LaTeX, porque o código é legível e tem uma estrutura que ajuda a entender o que cada parte representa, mesmo para quem não enxerga.

Raízes


A raiz pode ser entendida como a operação inversa da potência. Em outras palavras, se a potência mostra o que acontece quando um número é multiplicado por ele mesmo várias vezes, a raiz faz o caminho contrário: ela ajuda a descobrir qual era esse número no começo. É como se a pergunta fosse: “qual número, ao ser multiplicado por ele mesmo algumas vezes, gera este resultado?”

Por exemplo, a raiz quadrada de um número é o valor que, quando é multiplicado por ele mesmo duas vezes, produz o número original. Se pensamos no número 9, a pergunta é: “que número vezes ele mesmo dá 9?”. A resposta é 3, porque $3 \times 3 = 9$.

Seguindo essa mesma ideia, a raiz cúbica de um número é o valor que, ao aparecer três vezes na multiplicação, gera o número original. Por isso, a raiz cúbica de 8 é 2, porque $2 \times 2 \times 2 = 8$.

Existe também um nome para o número que indica qual tipo de raiz estamos usando. Esse número se chama índice da raiz. Ele mostra quantas vezes o número procurado deve aparecer como fator na multiplicação. Assim, o índice 2 indica raiz quadrada, o índice 3 indica raiz cúbica, e assim por diante.

É importante não confundir esse uso da palavra “índice” com o outro sentido que já apareceu antes, ligado ao subscrito, porque aqui ela está sendo usada com outro significado.

No caso da raiz quadrada, esse índice 2 é tão comum que normalmente ele nem aparece escrito. Mesmo assim, ele está ali de forma implícita. Já o número que fica dentro do símbolo da raiz, ou seja, o número do qual queremos tirar a raiz, recebe o nome de radicando. Então, quando vemos a raiz quadrada de 9, por exemplo, o 9 é o radicando.

A escrita da raiz também segue uma convenção visual, ou seja, um jeito tradicional de mostrar essa operação no papel ou na tela. Normalmente, a raiz aparece com um símbolo próprio, acompanhado de um traço que fica sobre todo o radicando. Quando a raiz não é quadrada, o índice costuma aparecer como um número pequeno colocado no canto esquerdo do símbolo.

No LaTeX, usamos o comando \sqrt{…} para escrever a raiz quadrada. Quando queremos escrever uma raiz com outro índice, usamos \sqrt[n]{…}. Nesse caso, a letra n representa o índice da raiz. O nome sqrt vem do inglês square root, que significa “raiz quadrada”.

A seguir, alguns exemplos de como escrever raízes no LaTeX:

\( \sqrt{2} \)        % raiz quadrada de 2
\( \sqrt[3]{x} \)     % raiz cúbica de x
\[ \sqrt[n]{a+b} \]   % raiz de índice n de a mais b

A visualização desses comandos quando renderizados é a seguinte:

  • $\sqrt{2}$
  • $\sqrt[3]{x}$
  • $\sqrt[n]{a+b}$

Há ainda um detalhe importante na escrita em LaTeX: o índice da raiz (o 3 da raiz cúbica) vai entre colchetes [ ], e o radicando, que é o conteúdo do qual se tira a raiz, vai entre chaves { }. Manter essa organização é importante para que o comando seja interpretado corretamente.

Letras gregas


Na matemática e nas ciências, a gente usa muitas letras do alfabeto grego como nomes para quantidades. O $\pi$, por exemplo, aparece nas contas que envolvem círculos.

Escrevê-las no LaTeX é mais fácil do que parece: na maioria dos casos, basta usar o nome da letra com uma barra invertida \ na frente, como em \alpha e \theta ($\alpha$ e $\theta$). Para obter a versão maiúscula, em geral começamos o nome com uma letra maiúscula, como em \Gamma ($\Gamma$).

A seguir, uma tabela com as letras gregas mais comuns, mostrando o comando para cada uma e a visualização da letra quando o PDF é gerado.

Letras gregas minúsculas:

Observação: em telas pequenas, deslize horizontalmente para ler todas as colunas da tabela.

Letras gregas minúsculas: comando LaTeX e visualização da letra
Comando LaTeX Visualização da letra
\alpha $\alpha$
\beta $\beta$
\gamma $\gamma$
\delta $\delta$
\epsilon $\epsilon$
\zeta $\zeta$
\eta $\eta$
\theta $\theta$
\iota $\iota$
\kappa $\kappa$
\lambda $\lambda$
\mu $\mu$
\nu $\nu$
\xi $\xi$
\pi $\pi$
\rho $\rho$
\sigma $\sigma$
\tau $\tau$
\upsilon $\upsilon$
\phi $\phi$
\chi $\chi$
\psi $\psi$
\omega $\omega$

Letras gregas maiúsculas:

Letras gregas maiúsculas: comando LaTeX e visualização da letra
Comando LaTeX Visualização da letra
\Gamma $\Gamma$
\Delta $\Delta$
\Theta $\Theta$
\Lambda $\Lambda$
\Xi $\Xi$
\Pi $\Pi$
\Sigma $\Sigma$
\Upsilon $\Upsilon$
\Phi $\Phi$
\Psi $\Psi$
\Omega $\Omega$

Outros símbolos comuns


Existem muitos outros símbolos que aparecem bastante em fórmulas, então é bom ter uma lista para consultar. Cada comando abaixo gera um símbolo com um significado específico, e o mais importante é lembrar o que ele quer dizer, e não exatamente como ele é.

Como esses símbolos aparecem com frequência, vale a pena ir se acostumando com eles aos poucos. Você não precisa decorar tudo de uma vez; sempre que for necessário, pode consultar a lista.

\( \leq \)     % menor ou igual
\( \geq \)     % maior ou igual
\( \neq \)     % diferente
\( \times \)   % multiplicação (sinal de vezes)
\( \cdot \)    % multiplicação (ponto)
\( \infty \)   % infinito
\( \approx \)  % aproximadamente igual
\(\propto \)   % proporcional a

A visualização desses comandos quando renderizados é a seguinte:

  • $\leq$
  • $\geq$
  • $\neq$
  • $\times$
  • $\cdot$
  • $\infty$
  • $\approx$
  • $\propto$

Expressões matemáticas mais complexas


Até aqui a gente viu o básico, mas o LaTeX vai bem além disso. Para as construções que veremos a seguir, você vai precisar de uma ajuda extra: o pacote amsmath. Pacote, aqui, é como se fosse um complemento que você liga no seu documento para ganhar comandos novos.

Para ligá-lo (usar o pacote), basta colocar a linha \usepackage{amsmath} lá no preâmbulo (o preâmbulo é aquela parte do início do arquivo, antes do \begin{document}, onde a gente configura as coisas).

Esse é o pacote padrão para escrever matemática mais elaborada, então vale a pena já deixá-lo carregado.

Contas passo a passo, todas alinhadas: o ambiente align


Sabe quando você resolve uma conta em várias etapas e quer que todas as linhas fiquem certas, uma embaixo da outra, alinhadas pelo sinal de igual? É exatamente para isso que serve o ambiente align. Ele é super útil para mostrar um desenvolvimento, um passo de cada vez.

Dentro dele, dois símbolos fazem o trabalho pesado. O & (e comercial) marca o ponto em que as linhas devem se alinhar, ou seja, é ali que você “encosta” uma linha na outra. E o \\ (duas barras invertidas, uma seguida da outra) indica o fim de cada linha, como se fosse um “enter”.

Vamos a um exemplo: resolver a equação $2x + 3 = 7$ passo a passo, até descobrir quanto vale o $x$. Observe como fica:

\begin{align}
  2x + 3 &= 7 \\
  2x     &= 4 \\
  x      &= 2
\end{align}

A visualização desses comandos quando renderizados é a seguinte:

\[\begin{align} 2x + 3 &= 7 \\ 2x &= 4 \\ x &= 2 \end{align}\]

Repare que o & foi colocado logo antes do sinal de $=$ em todas as linhas. É isso que faz os sinais de igual ficarem um debaixo do outro, bem alinhados, permitindo o acompanhamento visual do desenvolvimento da conta.

Como o align numera as equações, a Fala Fórmula acompanha essa numeração: ela lê esse bloco como “equação 1: 2 x mais 3 igual 7; equação 2: 2 x igual 4; equação 3: x igual 2”. Ou seja, o número que aparece do lado direito para quem enxerga também é anunciado para quem usa leitor de telas.

Para quem é pessoa cega, esse detalhe do alinhamento visual não é tão importante. Mas, neste texto estamos assumindo que pessoas, cegas ou não, podem usar LaTeX para escrever matemática, então é legal manter a estrutura do código organizada e legível.

Uma pessoa cega pode, perfeitamente, escrever um arquivo e renderizar (gerar o PDF) para alguém que enxerga, da mesma maneira pode receber um arquivo .tex de alguém que enxerga e que tenha esse comando align. Então, conhecer esse e outros comandos de “ajustes visuais” é sim importante.

As pessoas cegas não produzem documentos só para elas mesmas, ou outras pessoas igualmente cegas, mas para pessoas que enxergam também. Além disso, elas não recebem documentos, pesquisas e materiais somente de outras pessoas cegas, mas de pessoas que enxergam também. Por isso, é importante conhecer os comandos que ajudam a organizar o texto visualmente, mesmo que para pessoas cegas isso não faça diferença.

Bom! Continuando…

Existe também uma versão com asterisco no nome, o align*. Ela faz exatamente a mesma coisa, com uma única diferença: não coloca números nas linhas. O align comum numera as equações automaticamente (1, 2, 3… e assim por diante) do lado direito da linha; o align* deixa tudo sem numeração.

O mesmo exemplo anterior usando o align* ficaria assim:

\begin{align*}
  2x + 3 &= 7 \\
  2x     &= 4 \\
  x      &= 2
\end{align*}

A visualização desses comandos quando renderizados é a seguinte:

\[\begin{align*} 2x + 3 &= 7 \\ 2x &= 4 \\ x &= 2 \end{align*}\]

Como o align* não numera as equações, a Fala Fórmula também não anuncia número de equação: ela lê esse bloco como “linha 1: 2 x mais 3 igual 7; linha 2: 2 x igual 4; linha 3: x igual 2”. Em vez de “equação”, ela diz “linha”, deixando claro que aqui não existe numeração.

Use o que fizer mais sentido para o seu texto.

Matrizes


Matriz, para quem não se lembra, é uma tabela de números organizada em linhas e colunas. Ela aparece bastante na álgebra.

No LaTeX, a forma de escrever uma matriz muda um pouco dependendo do tipo de símbolo que você quer colocar em volta dela. Esses símbolos que ficam dos dois lados da matriz recebem o nome de delimitadores.

Em todos os casos, a ideia por dentro é a mesma: para separar as colunas, usamos o símbolo & e para separar uma linha da outra, usamos \\. Ou seja, o modo de montar a matriz é sempre igual. O que muda é apenas o nome do ambiente usado no comando.

\[
  \begin{pmatrix} a & b \\ c & d \end{pmatrix}
\]
\[
  \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}
\]
\[
  \begin{vmatrix} a & b \\ c & d \end{vmatrix}
\]

A visualização desses comandos quando renderizados é a seguinte:

\[\begin{pmatrix} a & b \\ c & d \end{pmatrix}\] \[\begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}\] \[\begin{vmatrix} a & b \\ c & d \end{vmatrix}\]

Para resumir os tipos mais usados, dá para lembrar pelo significado da primeira letra do nome:

  • pmatrix: o “p” é de parênteses, então a matriz fica entre ( ).
  • bmatrix: o “b” é de brackets (que é colchetes em inglês), então fica entre [ ].
  • vmatrix: o “v” é de vertical, então fica entre barras verticais | |, muito comum quando a gente quer escrever um determinante.

Integrais, somatórios e limites


Esses três aparecem muito em cálculo e têm algo em comum: normalmente existe uma informação escrita embaixo e/ou em cima do símbolo principal. Para colocar essas informações, usamos dois sinais que já apareceram antes. O _ (sublinhado ou underline) serve para escrever o que fica embaixo. Já o ^ (acento circunflexo) serve para escrever o que fica em cima.

Exemplo de integral:

\[ \int_{a}^{b} f(x)\, dx \]

Exemplo de somatório:

\[ \sum_{i=1}^{n} i = \frac{n(n+1)}{2} \]

Exemplo de limite:

\[ \lim_{x \to 0} \frac{\sin x}{x} = 1 \]

A visualização desses comandos quando renderizados é a seguinte:

integral:

\[\int_{a}^{b} f(x)\, dx\]

somatório:

\[\sum_{i=1}^{n} i = \frac{n(n+1)}{2}\]

limite:

\[\lim_{x \to 0} \frac{\sin x}{x} = 1\]

Lendo em voz alta: a integral é lida como “a integral de a até b de f de x, dx”. Repare que f(x) soa como “f de x”, do mesmo jeito que a gente fala uma função. O somatório é lido como “o somatório de i, para i de 1 até n, igual início da fração, n abre parênteses n mais 1 fecha parênteses, sobre 2, fim da fração”. Aqui o n(n+1) aparece como “n abre parênteses n mais 1 fecha parênteses”: é uma multiplicação, mas, como ela está escrita só pela proximidade dos termos (sem um sinal de vezes explícito), a Fala Fórmula lê os parênteses em vez de dizer “vezes”. O limite é lido como “o limite, quando x tende a zero, início da fração, seno de x, sobre x, fim da fração, igual 1”.

Há um detalhe no primeiro exemplo que pode passar despercebido: o \, (uma barra invertida seguida de uma vírgula).

Esse comando coloca um pequeno espaço na expressão, bem discreto mesmo. Neste caso, ele foi usado antes do dx só para deixar a fórmula mais organizada e evitar que tudo fique muito junto.

Delimitadores que crescem sozinhos: \left e \right


Aqui aparece um problema que é muito comum em fórmulas, junto com a forma de resolver isso. Quando o que está dentro dos parênteses é alto, como acontece, por exemplo, com uma fração, os parênteses normais podem ficar pequenos demais.

Quando isso acontece, a expressão fica visualmente estranha, porque parece que os parênteses não conseguem envolver tudo direito.

Para resolver isso, existe um par de comandos muito útil: você escreve \left( antes do conteúdo e \right) depois dele.

Fazendo isso, os parênteses aumentam de tamanho automaticamente. Em outras palavras, eles crescem na medida certa para acompanhar a altura do que está dentro, deixando a fórmula mais organizada e visualmente proporcional.

\[ \left( \frac{a}{b} \right)^2 \]

A visualização desse comando quando renderizado é a seguinte:

\[\left( \frac{a}{b} \right)^2\]

Só uma regra para não esquecer: o \left e o \right andam sempre de mãos dadas, ou seja, em par.

Para cada \left que você abrir, precisa existir um \right correspondente fechando. Se você esquecer um dos dois, o LaTeX reclama e não compila o seu documento.

Outro ponto importante: você pode usar o \left e o \right com qualquer tipo de delimitador, não só com parênteses.

Exemplo com colchetes:

\[ \left[ \frac{a}{b} \right]^2 \]

Exemplo com chaves:

\[ \left\{ \frac{a}{b} \right\}^2 \]

Exemplo com barras verticais:

\[ \left| \frac{a}{b} \right|^2 \]

Exemplo com parênteses angulares:

\[ \left\langle \frac{a}{b} \right\rangle^2 \]

A visualização desses comandos quando renderizados é a seguinte:

colchetes:

\[\left[ \frac{a}{b} \right]^2\]

chaves:

\[\left\{ \frac{a}{b} \right\}^2\]

barras verticais:

\[\left| \frac{a}{b} \right|^2\]

parênteses angulares:

\[\left\langle \frac{a}{b} \right\rangle^2\]

E assim por diante, com qualquer tipo de delimitador que você queira usar. O importante é lembrar de usar o \left e o \right para garantir que eles fiquem do tamanho certo, acompanhando a altura do conteúdo dentro deles.

Gerando um PDF acessível


Um PDF comum mostra só a aparência do conteúdo, ou seja, onde cada parte fica na página. Ele não diz o que é título, parágrafo ou fórmula. E é justamente dessa organização que o leitor de telas precisa para conseguir navegar pelo documento.

A boa notícia é que o LaTeX moderno já consegue gerar o chamado PDF marcado (em inglês, tagged PDF). Isso quer dizer que, além da parte visual, o arquivo também guarda a estrutura do documento e informa o que cada parte é. É essa marcação que faz o leitor de tela conseguir passar pelo texto de forma organizada, por títulos, listas e outros elementos.

Ligando o modo acessível com uma linha


Lembra que, para acrescentar recursos no LaTeX, usamos o \usepackage? Com a marcação de acessibilidade, a ideia é parecida, mas há uma diferença importante: ela é ativada por uma linha específica que vem antes de tudo, até mesmo antes do \documentclass.

Essa linha é a \DocumentMetadata:

\DocumentMetadata{
  lang        = pt-BR,    % avisa que o documento está em português
  pdfversion  = 2.0,      % define a versão do PDF
  pdfstandard = ua-2,     % pede que o PDF siga o padrão de acessibilidade
  tagging     = on       % liga a marcação de acessibilidade
}
\documentclass{article}

O mais importante aqui é a opção tagging = on, porque é ela que ativa a marcação de acessibilidade. A opção lang = pt-BR informa que o documento está em português, o que ajuda o leitor de tela a pronunciar as palavras do jeito certo. Já o pdfstandard = ua-2 indica que o arquivo deve seguir o padrão PDF/UA, que é a norma internacional para PDFs acessíveis (UA vem de Universal Accessibility, ou acessibilidade universal).

Observação importante: esse recurso é bem novo e só funciona em versões mais recentes do LaTeX, a partir da release de novembro de 2025. Se você acessar tutoriais um pouco mais antigos, pode encontrar uma opção chamada testphase=phase-III.

Ela não é mais usada. Hoje, a forma correta é tagging = on. Então, se aparecer a forma antiga, já sabe que é só atualizar.

Descrevendo imagens: o texto alternativo


Quando o documento tem imagens, entra um cuidado que talvez você já conheça de outros contextos: o texto alternativo (em inglês, alt text), que é uma descrição em palavras do que a imagem mostra. É ele que o leitor de tela lê no lugar da figura.

No LaTeX com a marcação ligada, dá para escrever essa descrição direto no comando da imagem, assim:

\includegraphics[alt={Triângulo retângulo com catetos a e b}]{triangulo.png}

Se a imagem é só um enfeite e não carrega informação, você pode marcá-la como decorativa, e aí o leitor de tela simplesmente a ignora:

\includegraphics[artifact]{enfeite.png}

Dica: toda figura que comunica alguma informação merece um bom texto alternativo (alt text). Pense nele como uma explicação por áudio, ou ligação do que a imagem mostra. Não é preciso descrever cada detalhe, mas sim a mensagem principal que a figura transmite.

E as fórmulas matemáticas?


A estrutura do texto, com títulos, parágrafos, listas e figuras com descrição, é marcada de um jeito relativamente simples. Já a matemática, que é o foco deste artigo, exige mais cuidado.

E preciso ser sincera: essa ainda é uma área em que a tecnologia está evoluindo e ainda tem limitações importantes.

A principal dessas limitações é a fidelidade semântica. Não basta que o leitor de telas leia os símbolos que aparecem; ele precisa passar o significado correto. O problema é que a notação matemática tem muitas ambiguidades: o mesmo símbolo pode ter sentidos diferentes.

Um exemplo clássico aparece na própria documentação do W3C, o consórcio que define os padrões da web. São as barras verticais em:

\[|X|\]

Dependendo do contexto, elas podem querer dizer “valor absoluto de x” ou “determinante de x”. Se isso for lido ao pé da letra, o resultado não faria sentido, seria algo como “barra vertical, x, barra vertical”.

Outro caso comum acontece quando dois termos aparecem juntos, sem o sinal de multiplicação. Por exemplo:

\[ab\]

Nessa situação, isso pode indicar tanto uma multiplicação quanto a aplicação de uma função a um valor. Em casos assim, só o contexto mostra qual é o sentido certo.

E o contexto realmente muda tudo. A mesma fórmula pode ter um significado na física e outro na álgebra. A notação matemática é ambígua, depende do contexto e também varia de uma área para outra e entre diferentes comunidades.

Quem escreve sabe o que quer dizer, mas o símbolo sozinho na tela nem sempre passa toda essa informação. E, para quem usa leitor de telas, isso pode ser um grande desafio, porque o programa precisa “entender” o que cada símbolo representa para ler a fórmula de forma correta.

É para lidar com isso que existe o MathML (sigla de Mathematical Markup Language, ou linguagem de marcação matemática), criado para descrever a matemática de um jeito que a máquina consiga entender.

O MathML, porém, tem duas formas principais. A mais usada, chamada de apresentação (presentation), mostra como a fórmula aparece. A outra, chamada de conteúdo (content), tenta mostrar o que a fórmula significa, mas é bem mais difícil de produzir.

Na prática, quase sempre se usa o MathML de apresentação — e é justamente aí que a ambiguidade aparece.

A comunidade vem procurando maneiras de resolver isso. A versão 4 do MathML, que é recente, trouxe um recurso chamado intent(abre em nova janela) (que em português seria “intenção”), criado justamente para que quem escreve possa indicar o significado que quer dar e, assim, eliminar a ambiguidade.

Isso é um avanço importante, mas ainda está sendo adotado devagar e precisa de evoluções. Enquanto esse recurso não se torna mais comum, os programas que leem matemática tentam deduzir o significado com base em regras e heurísticas. Eles costumam acertar algumas coisas, mas deduzir não é a mesma coisa que saber.

Como os leitores de tela leem (ou não) a matemática


Hoje os três principais navegadores já entendem MathML nativamente. Firefox e Safari fazem isso há bastante tempo, e o Chrome, junto com outros navegadores baseados nele, como o Edge, passou a fazer isso no fim de 2022, graças ao trabalho da Igalia(abre em nova janela). Ou seja, pelo menos a fórmula aparece na tela. A dificuldade está em como cada leitor de tela transforma essa fórmula em fala.

NVDA, no Windows. É o leitor de tela mais usado no Brasil. Desde a versão 2026.1, ele já vem com o MathCAT integrado, que lê a matemática e também permite navegar por ela.

O problema está no idioma: segundo a documentação do MathCAT(abre em nova janela), os idiomas disponíveis para a fala são inglês, alemão, espanhol, finlandês, indonésio, norueguês, sueco, vietnamita e chinês tradicional. O português não aparece nessa lista.

Na prática, isso significa que, em um documento em português, o texto é lido em português, mas, quando o leitor chega a uma fórmula, o MathCAT passa a ler a matemática em inglês, que é seu idioma padrão. A fórmula continua podendo ser navegada, mas é lida em outro idioma.

JAWS, também no Windows. É outro leitor de telas bastante usado (principalmente fora do Brasil), embora seja pago (e muito). Ele tem suporte próprio a MathML nos navegadores Edge, Chrome e Firefox, com um modo de navegação chamado Math Viewer e com saída em braille, conforme a documentação da Freedom Scientific(abre em nova janela), que é a fabricante do programa.

As descrições que aparecem nessa documentação são todas em inglês (por exemplo, “x squared over negative y”). Eu não encontrei registro de leitura falada de matemática em português no JAWS, então, até onde apurei, o cenário de idioma é parecido com o do NVDA.

VoiceOver, no Mac, no iPhone e no iPad. É o leitor de tela da Apple, e já vem instalado nos aparelhos, o que cobre boa parte do mundo mobile no lado da Apple. Ele lê MathML no Safari e em alguns apps, e dá para explorar a fórmula por partes usando o rotor (o seletor de navegação do VoiceOver), conforme o guia da Apple(abre em nova janela).

Então, existe um caminho que funciona no iOS e no iPadOS. Mas é importante fazer algumas ressalvas: pessoas usuárias relatam bugs (falhas), como o VoiceOver não ler parênteses e colchetes em certos casos, e houve momentos em que a navegação dentro da fórmula parou de funcionar em algumas versões do macOS. No caso do português, eu não encontrei documentação clara dizendo que a matemática seja falada em Português do Brasil.

Android, com o TalkBack. Aqui a situação é a mais frágil de todas. O TalkBack, que é o leitor de tela do Android, tem um suporte bem mais limitado para matemática, quando esse suporte existe. Para conteúdo matemático no celular, hoje o Android está bem atrás do iPhone no quesito de acessibilidade. Se você estuda matemática pelo Android, é importante saber dessa limitação desde o começo.

Juntando tudo o que vimos até aqui, e sem tratar isso como uma conclusão definitiva, porque esse cenário muda o tempo todo. Quando a matemática realmente é lida em voz alta, ela geralmente sai em inglês ou em um dos poucos idiomas suportados. Hoje, é difícil encontrar leitura falada de matemática em português do Brasil em qualquer um desses leitores.

O braille, por outro lado, está em uma situação melhor do que a fala: já existem códigos consolidados, como o Nemeth e o CMU (este último cobre espanhol e português). Mas isso ajuda quem lê em braille, não atende quem depende apenas do áudio.

E a opção de usar HTML com MathML?


Diante disso, surge uma pergunta natural: e se, em vez de gerar só o PDF, ou além dele, a gente também criar uma versão em HTML com MathML, já que é nesse ambiente que o MathML está mais desenvolvido? Isso pode ser feito a partir do mesmo arquivo .tex, usando ferramentas como o LaTeXML ou o make4ht.

O HTML ainda tem outra vantagem. Na web, é comum que a matemática apareça com o MathJax, uma biblioteca que, além de mostrar a fórmula, traz sua própria camada de acessibilidade.

Ela gera a fala e permite explorar a fórmula em partes, sem depender do recurso matemático do leitor de tela. Em tese, isso pode diminuir a variação de comportamento que vimos antes.

Mas, sendo bem sincera, isso ainda não resolve a questão do idioma. O motor de fala do MathJax (chamado Speech Rule Engine) também só fala alguns idiomas, segundo a documentação dele(abre em nova janela): inglês, francês, espanhol, alemão e italiano. Português, mais uma vez, não está na lista.

Por isso, usar HTML é um caminho útil e, em muitos casos, mais maduro para navegação. Vale a pena oferecer uma versão em HTML junto com o PDF quando a matemática é uma parte central do trabalho, porque isso amplia o acesso ao conteúdo.

Mesmo assim, essa ainda não é uma solução completa. Hoje, ela não oferece leitura de matemática em português.

Nesse contexto, o que fazer?


Se você está produzindo um documento para outras pessoas. Gere o PDF marcado, como já foi abordado na seção anterior, e apresente a matemática de um jeito acessível. Para quem gera o arquivo, existem três opções principais:

  • Sempre compartilhe o código-fonte .tex junto com o PDF. Ele é texto puro, em linha, e pode ser lido por qualquer leitor de telas, sem depender de nenhum recurso específico. O código é a forma mais estável e confiável de acessar a matemática, porque ele não muda de comportamento de um programa para outro, não depende de adivinhação e carrega exatamente o que a pessoa escreveu.
  • Com o motor LuaLaTeX, a matemática vira MathML automaticamente. Esse é o caminho que a equipe do LaTeX recomenda para documentos novos com bastante matemática.
  • Com o motor pdfLaTeX, essa conversão automática para MathML não acontece. Mesmo assim, o tagging = on continua valendo: as fórmulas entram na estrutura do PDF marcado e o código delas vai junto no arquivo. Ou seja, aquela linha do \DocumentMetadata que vimos antes já está cuidando das fórmulas também, sem precisar de nenhum pacote extra.

Nota de atualização (junho de 2026): na primeira versão deste artigo, eu recomendava aqui o pacote axessibility, que coloca dentro do PDF o próprio código LaTeX da fórmula como texto alternativo. Ele foi um pioneiro importante nessa área, mas hoje não deve mais ser usado junto com o \DocumentMetadata, por dois motivos. O primeiro é que ele ficou redundante, porque, como acabamos de ver, o tagging = on já cuida das fórmulas. O segundo é que a versão atual do pacote entra em conflito com esse novo sistema de marcação, e a compilação para com erro nas distribuições recentes, como o TeX Live 2026. Eu mesma caí nesse erro ao recompilar os exemplos deste artigo, e foi assim que ele ganhou esta nota (risos). E se um dia você precisar do axessibility em um documento antigo, daqueles sem a linha \DocumentMetadata? Aí ele ainda funciona: dá para carregá-lo em um modo alternativo, que não mexe com o sistema de marcação, escrevendo \usepackage[accsupp]{axessibility} no preâmbulo.

Se você está estudando matemática avançada, especialmente em português sendo uma pessoa cega. Este é o ponto principal que eu quero destacar neste artigo. Enquanto essas ferramentas ainda não conseguem falar matemática em português com maturidade, ler e navegar diretamente pelo código-fonte LaTeX continua sendo (claro na minha experiência), a forma mais estável e confiável de se trabalhar.

O arquivo .tex é texto puro, escrito em linha. Ele não muda de comportamento de um programa para outro, não depende de nenhuma tentativa de adivinhar o que está ali e traz exatamente o que a pessoa escreveu. Enquanto a fala e a renderização variam bastante, o código continua estável.

Isso não quer dizer que as outras ferramentas deixem de servir. LuaLaTeX, MathML e HTML continuam sendo úteis, e a escolha depende do contexto. Uma coisa é encontrar um símbolo solto no meio do texto. Outra, bem diferente, é lidar com um documento cheio de matemática complexa. No primeiro caso, quase qualquer caminho pode funcionar. No segundo, a estabilidade faz muita diferença.

E isso importa por um motivo que muita gente nem percebe: o LaTeX quase nunca é o ponto final. Ele é uma ferramenta de apoio, a base para aprender física, química, estatística, cálculo e uma série de outros assuntos.

Quando a matemática é o caminho para aprender outra área, ficar mudando toda hora a forma de acessar esse conteúdo, com um leitor de telas, depois outro, depois um formato, depois outro, atrapalha o aprendizado. Ter uma base estável, que é o código, evita esse vai e vem e deixa a atenção livre para o que realmente importa, que é a matéria estudada.

É exatamente por isso que este artigo tem um caráter prático. O objetivo não é só gerar um PDF bonito, mas fazer com que a pessoa que depende de leitores de tela desenvolva fluência em LaTeX para lidar com matemática avançada. É essa fluência que traz autonomia de verdade.

Juntando tudo: um documento completo


Até agora a gente viu cada peça separada: o preâmbulo, os pacotes, as seções, o modo matemático, as figuras. Agora vamos montar um documento completo, do começo ao fim, que já nasce acessível.

\DocumentMetadata{lang=pt-BR, pdfversion=2.0, pdfstandard=ua-2, tagging=on}
\documentclass[12pt]{article}

% --- Preâmbulo: a área de preparação ---
\usepackage[T1]{fontenc}
\usepackage[brazilian]{babel}   % regras do português
\usepackage{amsmath}            % recursos matemáticos
\usepackage{graphicx}           % para inserir imagens
\usepackage{hyperref}
\hypersetup{
  pdftitle  = {Meu primeiro artigo acessível},
  pdfauthor = {Seu Nome},
  pdflang   = {pt-BR}
}

\title{Meu primeiro artigo acessível}
\author{Seu Nome}
\date{\today}
% --- Fim do preâmbulo ---

\begin{document}

\maketitle

\section{Introdução}
Neste pequeno artigo, vamos relembrar uma fórmula famosa. A identidade de Pitágoras, \( a^2 + b^2 = c^2 \), relaciona os lados de um triângulo retângulo.

\section{Desenvolvimento}
A mesma relação, em destaque, fica assim:
\begin{equation}
  a^2 + b^2 = c^2
\end{equation}

\begin{figure}
  \centering
  \includegraphics[width=6cm, alt={Triângulo retângulo com catetos a e b e hipotenusa c}]{triangulo.png}
  \caption{Um triângulo retângulo.}
\end{figure}

\section{Conclusão}
E é isso. Um documento curtinho, mas com título, seções, uma fórmula e uma figura descrita.

\end{document}

Como você pode observar, a maior parte desse código já foi apresentado antes. Vou destacar só o que é novo nesta etapa:

  • A primeira linha, a \DocumentMetadata{... tagging=on}, é a que ativa a marcação de acessibilidade. Ela vem antes de qualquer outra coisa, inclusive antes do \documentclass.
  • No preâmbulo, o \usepackage{graphicx} é o que permite inserir imagens. E repare em uma coisa: a gente não carregou nenhum pacote extra para as fórmulas, porque a marcação delas já vem com o tagging = on da primeira linha.
  • O bloco do \hypersetup preenche os dados do documento (título, autoria e idioma). Essas informações também ajudam o leitor de telas e os programas a entenderem o arquivo.
  • No corpo do documento, a figura aparece com o alt={...} descrevendo o triângulo, do jeito que foi comentado antes, passando a mensagem principal que a figura transmite.

Os demais elementos já foram apresentados antes em outros momentos do texto: o \documentclass, os pacotes, o \maketitle montando o título, as seções e o modo matemático, embutido com \( \) e em destaque com o ambiente equation.

E aqui vale repetir uma ideia que voltou várias vezes ao longo do texto: para quem usa leitor de telas, ler e navegar o próprio arquivo .tex é tão importante quanto ler o PDF. O código é onde a estrutura mora, e agora você sabe escrever esse código de um jeito que chega bem nas duas pontas, no arquivo e no documento final.

Resumo


Chegamos ao fim deste artigo, depois de passar por várias etapas importantes. Começamos montando o ambiente de trabalho, com a distribuição TeX, o VS Code e a extensão LaTeX Workshop.

Depois, escrevemos o primeiro documento, entendemos a diferença entre estrutura e aparência e conhecemos os dois elementos principais do LaTeX: os comandos e os ambientes.

Depois, entramos na parte da matemática, que é uma das áreas em que o LaTeX mais se destaca. Vimos os elementos básicos, como potências, índices, frações, raízes, letras gregas e os símbolos mais comuns.

Em seguida, passamos para estruturas mais complexas, como contas alinhadas com o align, matrizes, integrais, somatórios, limites e delimitadores ajustáveis. No fim, demos os primeiros passos para criar um PDF acessível e juntamos tudo em um documento completo.

Do começo ao fim, a ideia foi a mesma: mostrar que o LaTeX é uma ferramenta poderosa e que permite escrever matemática de um jeito que funcione tanto para quem enxerga quanto para quem usa leitor de telas.

Não desanime se alguma coisa parecer difícil no começo. Isso é normal, e com a prática tudo vai ficando mais natural. Continue escrevendo e continue testando. É tentando que se aprende.

Referências


  • The LaTeX Project (LaTeX3). Tagging Project (documentação do projeto de PDF marcado). Disponível em: https://latex3.github.io/tagging-project/
  • The LaTeX Project. LaTeX News, issue 40 (novembro de 2024): suporte de motores e geração automática de MathML. Disponível em: https://tug.org/TUGboat/tb46-1/tb142ltnews40.html
  • The LaTeX Project (LaTeX3). Using LaTeX to produce accessible PDF (instruções de uso; chave tagging=on). Disponível em: https://latex3.github.io/tagging-project/documentation/usage-instructions
  • CTAN. Package: axessibility (fórmulas acessíveis no PDF via /ActualText, versão 3.0). Disponível em: https://ctan.org/pkg/axessibility
  • CTAN. Package: tagpdf (infraestrutura de marcação de PDF). Disponível em: https://ctan.org/pkg/tagpdf
  • PDF Association. Accessible math in PDF, finally (NVDA, MathCAT e o PDF 2.0). Disponível em: https://pdfa.org/accessible-math-in-pdf-finally/
  • NV Access. NVDA 2026.1, notas de versão (MathCAT integrado ao núcleo do leitor de tela). Disponível em: https://www.nvaccess.org/post/nvda-2026-1/
  • World Wide Web Consortium (W3C). MathML Intent (explicação do recurso de intenção semântica em MathML). Disponível em: https://w3c.github.io/mathml-docs/intent-explainer/
  • Author Intent: Eliminating Ambiguity in MathML (sobre ambiguidade semântica e o recurso intent). arXiv:2407.06720, 2024. Disponível em: https://arxiv.org/abs/2407.06720
  • World Wide Web Consortium (W3C). MathML Accessibility Gap Analysis (levantamento de lacunas de acessibilidade em matemática). Disponível em: https://w3c.github.io/mathml-docs/gap-analysis/
  • MathCAT, Math Capable Assistive Technology (leitor de matemática para tecnologias assistivas, do DAISY Consortium; lista de idiomas de fala suportados, sem português até junho de 2026). Disponível em: https://daisy.github.io/MathCAT/
  • Igalia. MathML in Web Browsers (estado do suporte nativo a MathML em Chrome, Firefox e Safari). Disponível em: https://mathml.igalia.com/
  • Freedom Scientific. Accessing Math Content with JAWS and Fusion (suporte a MathML no leitor de tela JAWS). Disponível em: https://www.freedomscientific.com/training/teachers/accessing-math-content-with-jaws-and-fusion/
  • Apple. Usar o VoiceOver em apps no iPhone (inclui a leitura de equações matemáticas em MathML). Disponível em: https://support.apple.com/guide/iphone/use-voiceover-in-apps-iphe4ee74be8/ios
  • MathJax. Accessibility options (idiomas de fala do Speech Rule Engine). Disponível em: https://docs.mathjax.org/en/latest/options/accessibility.html
  • LaTeXML. Conversor de LaTeX para HTML, XML e MathML. Disponível em: https://math.nist.gov/~BMiller/LaTeXML/
  • TeX4ht. Conversão de LaTeX para HTML e MathML (base do make4ht). Disponível em: https://tug.org/tex4ht/
  • Brasil. Lei nº 13.146, de 6 de julho de 2015 (Lei Brasileira de Inclusão da Pessoa com Deficiência). Disponível em: https://www.planalto.gov.br/ccivil_03/_ato2015-2018/2015/lei/l13146.htm
  • Brasil. Decreto nº 9.522, de 8 de outubro de 2018 (promulga o Tratado de Marraqueche). Disponível em: https://www.planalto.gov.br/ccivil_03/_ato2015-2018/2018/decreto/d9522.htm
  • ABNT. Lançamento da ABNT NBR 17225 (acessibilidade digital para web, 2025). Disponível em: https://abnt.org.br/lancamento-da-abnt-nbr-17225/