LaTeX no VS Code
Este documento mostra como configurar o LaTeX no VS Code no Windows e organizar um projeto a partir do template IEEE, com figuras, bibliografia e arquivos de compilação separados.
As ferramentas utilizadas são:
-
MiKTeX: distribuição LaTeX que fornece e gerencia os componentes necessários para a produção em LaTeX, incluindo mecanismos de compilação, pacotes, fontes e ferramentas auxiliares. Entre esses componentes estão:-
pdfLaTeXeXeLaTeX: mecanismos de compilação que processam o código-fonte.texe geram o documento final, normalmente em PDF. -
BibTeXeBiber: ferramentas responsáveis pelo processamento das referências bibliográficas. -
latexmk: ferramenta que coordena e automatiza o processo de compilação, executando os mecanismos de compilação e as ferramentas auxiliares quando necessário.
-
-
Strawberry Perl: distribuição do interpretador Perl para Windows. É necessária para executar olatexmk, que é escrito em Perl. -
VS Code + extensão LaTeX Workshop: integra o VS Code às ferramentas LaTeX fornecidas pelo MiKTeX, permitindo executar a compilação e acompanhar seus resultados diretamente pela interface do editor.
Instalar os três programas é necessário, mas não garante sozinho que tudo funcione. O MiKTeX precisa concluir sua configuração inicial,
latexmkeperlprecisam estar noPATH, e o VS Code deve ser iniciado depois dessas alterações.
1. Entenda o papel de cada componente
A extensão LaTeX Workshop não inclui uma distribuição LaTeX e, portanto, não compila o documento por conta própria. Ela executa uma recipe de compilação, que define quais ferramentas serão chamadas e em que sequência.
Uma recipe pode, por exemplo, chamar o latexmk. Nesse caso, o latexmk executa o mecanismo de compilação, como pdfLaTeX ou XeLaTeX, chama ferramentas auxiliares, como BibTeX ou Biber, quando necessário, e realiza novas compilações até que referências cruzadas, citações, sumário e outros elementos dependentes de compilações anteriores estejam atualizados.
Os mecanismos de compilação mais comuns são pdfLaTeX e XeLaTeX. Ambos processam o arquivo .tex e podem gerar diretamente um documento PDF. A principal diferença prática está no tratamento de fontes e Unicode:
| pdfLaTeX | XeLaTeX | |
|---|---|---|
| Fontes | utiliza principalmente fontes do ecossistema TeX | pode utilizar diretamente fontes instaladas no sistema |
| Unicode | aceita entrada UTF-8, mas possui limitações relacionadas ao modelo tradicional de fontes e codificações do TeX | possui suporte nativo a Unicode e fontes OpenType/TrueType |
Comando com latexmk |
latexmk -pdf |
latexmk -xelatex |
O código-fonte do documento pode permanecer essencialmente o mesmo, mas a escolha do mecanismo depende das fontes, dos pacotes e dos requisitos do projeto.
No MiKTeX, o latexmk é um script escrito em Perl. Como o MiKTeX não fornece um interpretador Perl, é necessário instalar separadamente um ambiente Perl, como o Strawberry Perl, para executá-lo no Windows.
O fluxo esperado é:
VS Code / LaTeX Workshop
|
v
latexmk -- Perl
|
+--> pdfLaTeX ou XeLaTeX
+--> BibTeX ou Biber, quando necessário
+--> novas execuções do compilador selecionado
|
v
PDF
2. Instale o MiKTeX
- Baixe o Basic MiKTeX Installer em https://miktex.org/download.
- Execute o instalador.
- Quando perguntado, prefira a instalação privada, somente para o usuário atual. Ela normalmente evita conflitos de permissões.
- Mantenha o diretório sugerido pelo instalador.
- Selecione papel
A4. -
Em instalação automática de pacotes ausentes, selecione:
Always, opção mais prática para iniciantes; ouAsk me first, se quiser aprovar cada pacote.
Não selecione
Neverem uma instalação básica, pois muitos documentos dependem de pacotes que serão obtidos apenas na primeira compilação. - Aguarde o instalador chegar à tela final. Não interrompa o processo quando os arquivos parecerem já ter sido copiados.
- Abra MiKTeX Console pelo menu Iniciar, ainda antes de abrir o VS Code.
-
Em
Updates:- clique em
Check for Updates; - se houver atualizações, clique em
Update now; - repita a consulta até não haver atualizações pendentes.
- clique em
-
Em
Settings > General, confirme:- papel
A4; - instalação de pacotes ausentes como
AlwaysouAsk me.
- papel
Se uma instalação anterior foi interrompida, use também Tasks > Refresh file
name database. Essa tarefa normalmente não é necessária em uma instalação
nova concluída corretamente, mas recompõe o índice de arquivos do MiKTeX.
3. Instale o Strawberry Perl
- Acesse https://strawberryperl.com/releases.html.
- Execute o instalador e mantenha o diretório padrão. Normalmente ele será
semelhante a
C:\Strawberry. - Conclua a instalação.
O instalador normalmente inclui no PATH diretórios como:
C:\Strawberry\perl\bin
C:\Strawberry\perl\site\bin
C:\Strawberry\c\bin
4. Valide o ambiente antes de abrir o VS Code
Abra uma nova janela do PowerShell. Não reutilize um terminal que já estava aberto durante as instalações.
Execute:
$programas = 'pdflatex', 'xelatex', 'bibtex', 'latexmk', 'perl'
foreach ($programa in $programas) {
$comando = Get-Command $programa -ErrorAction SilentlyContinue
if ($null -eq $comando) {
Write-Host "[FALHOU] $programa não foi encontrado" -ForegroundColor Red
}
else {
Write-Host "[OK] $programa -> $($comando.Source)" -ForegroundColor Green
}
}
Os cinco itens precisam aparecer como [OK]. Depois verifique se os programas
realmente iniciam:
pdflatex --version
xelatex --version
bibtex --version
latexmk -v
perl --version
Na primeira execução de latexmk -v, o MiKTeX pode instalar o pacote
correspondente. Aguarde a conclusão.
Por fim, consulte o estado do MiKTeX:
initexmf --report | Select-String 'SetupDate|PathOkay|UserInstall'
O resultado saudável contém:
SetupDate: uma data, e não "not yet"
PathOkay: yes
UserInstall: diretório real da instalação
Somente prossiga quando esses testes funcionarem.
5. Corrija o PATH, se algum comando não for encontrado
O PATH deve conter os diretórios dos executáveis, não os nomes dos
arquivos .exe.
Instalações privadas do MiKTeX costumam usar:
C:\Users\SEU_USUARIO\AppData\Local\Programs\MiKTeX\miktex\bin\x64
Instalações compartilhadas podem usar:
C:\Program Files\MiKTeX\miktex\bin\x64
O Strawberry Perl normalmente usa:
C:\Strawberry\perl\bin
C:\Strawberry\perl\site\bin
C:\Strawberry\c\bin
Para corrigir no Windows:
- pesquise por Editar as variáveis de ambiente da sua conta;
- selecione a variável
Pathdo usuário; - clique em
Editare depois emNovo; - adicione somente os diretórios que existirem no computador;
- não apague as entradas que já estavam no
Path; - confirme todas as janelas;
- feche e reabra PowerShell e VS Code.
Se o MiKTeX estiver no caminho privado padrão, também é possível solicitar que ele próprio registre seu diretório:
& "$env:LOCALAPPDATA\Programs\MiKTeX\miktex\bin\x64\initexmf.exe" --modify-path
Depois disso, abra outro PowerShell e repita todos os testes da seção anterior.
Para verificar se existem instalações concorrentes, execute:
where.exe pdflatex
where.exe xelatex
where.exe latexmk
where.exe perl
Se houver mais de um resultado para pdflatex, xelatex ou latexmk, o
primeiro caminho é o programa que será usado. Ajuste a ordem do Path para
manter uma única distribuição LaTeX como principal.
6. Instale o VS Code e o LaTeX Workshop
- Instale ou atualize o VS Code por https://code.visualstudio.com/download.
- Abra o VS Code após validar o
PATH. - Abra a tela de extensões com
Ctrl+Shift+X. - Procure por LaTeX Workshop.
- Confirme que o identificador é
James-Yu.latex-workshope instale a extensão oficial: https://marketplace.visualstudio.com/items?itemName=james-yu.latex-workshop.
Não é necessário criar uma receita personalizada se os testes do PowerShell
funcionaram. O LaTeX Workshop já inclui receitas baseadas em latexmk para
pdfLaTeX e XeLaTeX.
7. Teste pdfLaTeX e XeLaTeX no VS Code
Crie uma pasta vazia e abra a pasta no VS Code por File > Open Folder.
Os exemplos a seguir são independentes: use apenas o compilador adequado ao
seu projeto.
7.1. Exemplo mínimo com pdfLaTeX
Crie main.tex:
% !LW recipe = latexmk
\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[brazilian]{babel}
\begin{document}
Documento compilado com pdfLaTeX.
\end{document}
Teste pelo terminal integrado:
latexmk -pdf -interaction=nonstopmode -file-line-error main.tex
7.2. Exemplo mínimo com XeLaTeX
Substitua o conteúdo de main.tex por:
% !LW recipe = latexmk (xelatex)
\documentclass[a4paper,12pt]{article}
\usepackage{fontspec}
\setmainfont{Times New Roman}
\usepackage[brazilian]{babel}
\begin{document}
Documento compilado com XeLaTeX e uma fonte instalada no Windows.
\end{document}
Teste pelo terminal integrado:
latexmk -xelatex -interaction=nonstopmode -file-line-error main.tex
Se a fonte indicada em \setmainfont não estiver instalada, escolha outra
fonte disponível no Windows. Não use fontspec com pdfLaTeX.
7.3. Informe o compilador ao LaTeX Workshop
As primeiras linhas dos exemplos selecionam receitas que já acompanham o LaTeX Workshop:
% !LW recipe = latexmk
seleciona pdfLaTeX, enquanto:
% !LW recipe = latexmk (xelatex)
seleciona XeLaTeX.
Com main.tex ativo, pressione Ctrl+Alt+B ou execute LaTeX Workshop: Build
LaTeX project. A extensão lê a receita indicada no arquivo e chama o
latexmk com o compilador correspondente.
Também é possível escolher manualmente:
- execute
LaTeX Workshop: Build with recipena paleta de comandos; - escolha
latexmkpara pdfLaTeX oulatexmk (xelatex)para XeLaTeX.
A escolha manual vale para aquela compilação. A indicação % !LW recipe
continua no arquivo e torna a escolha reproduzível para outros usuários.
O comando LaTeX Workshop: View LaTeX PDF não escolhe o compilador. Ele apenas
abre o PDF produzido pelo último Build, procurando-o no diretório de saída
configurado.
Na primeira compilação, permita que o MiKTeX instale os pacotes ausentes e aguarde. As compilações seguintes serão muito mais rápidas.
7.4. Teste bibliografia com qualquer um dos compiladores
Para verificar também o BibTeX, acrescente ao documento, antes de
\end{document}, uma citação e a bibliografia:
Segundo \cite{knuth1984}, a composição tipográfica pode ser automatizada.
\bibliographystyle{plain}
\bibliography{references}
Crie references.bib na mesma pasta:
@book{knuth1984,
author = {Donald E. Knuth},
title = {The TeXbook},
publisher = {Addison-Wesley},
year = {1984}
}
Execute novamente o comando latexmk correspondente. Ele deve chamar o
compilador selecionado, o BibTeX e as recompilações necessárias, terminando
com uma mensagem semelhante a All targets are up-to-date.
8. Configuração opcional para colocar a saída em build
Depois de confirmar que a configuração padrão funciona, crie
.vscode/settings.json dentro do projeto se quiser separar PDF e arquivos
auxiliares:
{
"latex-workshop.latex.outDir": "%DIR%/build",
"latex-workshop.latex.auxDir": "%OUTDIR%"
}
Essa configuração é portátil e pode ser compartilhada no repositório, pois não contém nomes de usuário nem caminhos específicos do computador.
O settings.json configura apenas o LaTeX Workshop. Ao compilar pelo terminal, acrescente -outdir=build aos comandos anteriores para gerar a saída na mesma pasta. Por exemplo:
latexmk -pdf -interaction=nonstopmode -file-line-error -outdir=build main.tex
9. Receita de emergência para um PATH que não pode ser alterado
Use esta solução apenas em computadores corporativos ou ambientes nos quais
não seja possível corrigir o PATH global. Substitua SEU_USUARIO e confirme
que todos os diretórios existem:
{
"latex-workshop.latex.recipe.default": "first",
"latex-workshop.latex.recipes": [
{
"name": "latexmk",
"tools": ["latexmk-pdf-miktex"]
},
{
"name": "latexmk (xelatex)",
"tools": ["latexmk-xe-miktex"]
}
],
"latex-workshop.latex.tools": [
{
"name": "latexmk-pdf-miktex",
"command": "C:/Users/SEU_USUARIO/AppData/Local/Programs/MiKTeX/miktex/bin/x64/latexmk.exe",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"-outdir=%OUTDIR%",
"-auxdir=%AUXDIR%",
"%DOC%"
],
"env": {
"Path": "C:/Users/SEU_USUARIO/AppData/Local/Programs/MiKTeX/miktex/bin/x64;C:/Strawberry/perl/bin;C:/Strawberry/perl/site/bin;C:/Strawberry/c/bin;C:/Windows/System32;C:/Windows"
}
},
{
"name": "latexmk-xe-miktex",
"command": "C:/Users/SEU_USUARIO/AppData/Local/Programs/MiKTeX/miktex/bin/x64/latexmk.exe",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-xelatex",
"-outdir=%OUTDIR%",
"-auxdir=%AUXDIR%",
"%DOC%"
],
"env": {
"Path": "C:/Users/SEU_USUARIO/AppData/Local/Programs/MiKTeX/miktex/bin/x64;C:/Strawberry/perl/bin;C:/Strawberry/perl/site/bin;C:/Strawberry/c/bin;C:/Windows/System32;C:/Windows"
}
}
]
}
No Windows, use Path nessa configuração. Não escreva %PATH%, $PATH ou
${env:PATH} esperando que sejam expandidos dentro da propriedade env: o
LaTeX Workshop não expande essas variáveis ali.
Essas receitas contêm caminhos específicos da máquina. Portanto, prefira colocá-las nas configurações locais do usuário ou não versionar o arquivo.
10. Entenda as extensões dos arquivos LaTeX
| Arquivo | Função | Como usar |
|---|---|---|
.tex |
Código-fonte do documento: texto, comandos, equações e chamadas de figuras. | Edite o arquivo principal, como main.tex. |
.cls |
Classe que define a estrutura e a apresentação do documento. | \documentclass[conference]{IEEEtran} carrega IEEEtran.cls. |
.sty |
Pacote que acrescenta recursos ao LaTeX. | \usepackage{graphicx} carrega graphicx.sty, geralmente instalado pelo MiKTeX. |
.bib |
Base de referências com autores, títulos, anos e outros campos. | Cadastre suas fontes em referencias.bib. |
.bst |
Estilo usado pelo BibTeX para formatar e ordenar a bibliografia. | \bibliographystyle{IEEEtran} seleciona IEEEtran.bst. |
Os arquivos .cls e .bst se complementam: um define o documento; o outro, a bibliografia. Manter os arquivos fornecidos pelo template junto de main.tex facilita compartilhar o projeto. Os demais pacotes continuam sendo fornecidos pela distribuição LaTeX.
Durante a compilação, também aparecem arquivos que você normalmente não edita:
| Extensão | Conteúdo |
|---|---|
.aux |
Informações de referências cruzadas e citações usadas nas próximas etapas. |
.bbl |
Bibliografia formatada pelo BibTeX, que será incorporada ao documento. |
.blg |
Registro do processamento da bibliografia. |
.log |
Registro da compilação LaTeX, incluindo erros e avisos. |
.fls e .fdb_latexmk |
Arquivos lidos/gerados e informações usadas pelo latexmk para decidir o que recompilar. |
.synctex.gz |
Dados de sincronização entre o código-fonte e a posição correspondente no PDF. |
.toc, .lof e .lot |
Dados do sumário e das listas de figuras e tabelas, quando utilizados. |
Esses arquivos podem ser regenerados a partir das fontes. Em uma submissão, confira as instruções do evento: alguns fluxos também solicitam o .bbl.
11. Exemplo de organização com o template IEEE
O IEEE Author Center disponibiliza modelos para conferências. O arquivo IEEEtran.cls vem do template LaTeX, e IEEEtran.bst, do pacote de bibliografia (neste exemplo, IEEEtranBST2.zip). Coloque ambos na mesma pasta de main.tex.
Uma organização possível da estrutura de arquivos seria, por exemplo:
artigo/
├── main.tex
├── IEEEtran.cls
├── IEEEtran.bst
├── referencias.bib
├── .gitignore
├── .vscode/
│ └── settings.json
├── figures/
│ └── fig1.png
└── build/
Ao mover fig1.png para figures/, atualize a chamada no template para que o LaTeX encontre a imagem:
\includegraphics{figures/fig1.png}
Troque as referências manuais por BibTeX
O template usado aqui contém um ambiente thebibliography, com entradas \bibitem. Para adotar um arquivo .bib, migre os dados dessas referências e substitua todo o ambiente pelas duas linhas abaixo, antes de \end{document}:
\bibliographystyle{IEEEtran}
\bibliography{referencias}
Não acrescente outra seção \section*{References} para a lista: a bibliografia já gera o título. Remova também o texto de instrução do template ao escrever seu artigo.
Este é um exemplo mínimo de referencias.bib, usando uma das fontes presentes no template:
@book{young1989,
author = {M. Young},
title = {The Technical Writer's Handbook},
address = {Mill Valley, CA},
publisher = {University Science},
year = {1989}
}
No texto, cite a chave da entrada:
A escrita técnica exige atenção à apresentação das informações \cite{young1989}.
Um main.tex mínimo para testar essa base é:
% !LW recipe = latexmk
\documentclass[conference]{IEEEtran}
\usepackage[T1]{fontenc}
\usepackage{cite}
\usepackage{graphicx}
\usepackage{url}
\begin{document}
\title{Exemplo de artigo}
\author{\IEEEauthorblockN{Nome do autor}
\IEEEauthorblockA{Instituição}}
\maketitle
\begin{abstract}
Exemplo mínimo para testar a organização do projeto e a bibliografia.
\end{abstract}
\section{Introdução}
A escrita técnica exige atenção à apresentação das informações \cite{young1989}.
\bibliographystyle{IEEEtran}
\bibliography{referencias}
\end{document}
Esse exemplo testa a estrutura; para redigir o artigo, use o template completo e as instruções da publicação. Substitua as referências ilustrativas pelas fontes efetivamente utilizadas.
Se suas entradas usarem as abreviações definidas em IEEEabrv.bib, copie também esse arquivo para a raiz e troque a chamada por \bibliography{IEEEabrv,referencias}. Sem essas abreviações, basta \bibliography{referencias}.
Este fluxo usa BibTeX com um estilo .bst. Projetos com biblatex e Biber usam outra configuração; não misture os dois fluxos neste exemplo.