- Typst é um programa de composição tipográfica de documentos desenvolvido em Rust, apontado como uma alternativa ao LaTeX otimizada para a criação de materiais técnicos com fórmulas matemáticas, tabelas e figuras
- Ele resolve problemas do LaTeX como sintaxe complexa, compilação lenta e mensagens de erro difíceis de entender, oferecendo uma sintaxe semelhante a Markdown e uma linguagem integrada baseada em funções
- Com compilação incremental rápida, indicação clara de erros e sintaxe concisa, até documentos grandes podem ter pré-visualização em tempo real, e os recursos de programação estão naturalmente integrados ao sistema
- Entre as desvantagens apontadas estão a falta de um ecossistema de pacotes especializados, suporte insuficiente a templates de periódicos, dificuldade de documentação e ausência de alguns recursos, embora os pacotes estejam crescendo rapidamente e a conversão via Pandoc seja possível
- Typst ainda está em estágio inicial, mas, graças à adoção por parte de alguns periódicos acadêmicos, a mais de 800 pacotes e a uma comunidade ativa, vem surgindo como um forte candidato a substituir o LaTeX
Introdução ao Typst e sua importância
- Typst é um programa de composição tipográfica de documentos, com uma estrutura adequada para documentos técnicos com fórmulas, tabelas, figuras etc.
- Ele oferece resultados de alta qualidade comparáveis ao LaTeX com uma marcação mais simples e compilação mais rápida
- Typst é um software de código aberto desenvolvido em Rust e segue a licença Apache-2.0
- Seus grandes pontos fortes são a velocidade no processamento de documentos grandes, a simplificação da sintaxe e a facilidade de customização
Limitações do LaTeX e necessidade de substituição
- LaTeX é um sistema baseado em TeX que se consolidou como ferramenta padrão para artigos acadêmicos nas áreas de matemática e ciência da computação
- No entanto, vêm sendo constantemente apontados problemas como instalação pesada, queda de desempenho na compilação, mensagens de erro difíceis de entender e customização complexa baseada em linguagem de macros
- Houve discussões sobre substitutos ao longo de décadas, mas não existia uma alternativa realista por causa do vasto ecossistema de pacotes e da dependência dos usuários existentes
Surgimento do Typst e contexto de desenvolvimento
- O projeto começou em 2019 como iniciativa pessoal dos desenvolvedores alemães Laurenz Mädje e Martin Haug, evoluindo depois por meio de uma dissertação de mestrado e de releases beta
- Desde o lançamento da v0.1.0 em 2023, o projeto cresceu até a atual v0.13.1, com mais de 365 contribuidores no GitHub
- Como alguns periódicos acadêmicos começaram a aceitar manuscritos em Typst como formato de submissão, a possibilidade de uso real está se ampliando
Recursos e vantagens do Typst
- Typst é distribuído como código-fonte em Rust e binários compilados, com suporte a Linux, macOS e Windows
- Ele funciona com um único executável (
typst), sem a necessidade de distinguir vários motores como no LaTeX
- O comando
typst fonts permite verificar e adicionar fontes disponíveis
- Com
typst compile, é possível gerar saída em PDF/SVG/PNG, e o modo typst watch oferece pré-visualização em tempo real, atualizando automaticamente o PDF quando o código-fonte muda
- A compilação incremental rápida torna muito ágil a pré-visualização em tempo real até mesmo de documentos grandes
- A sintaxe combina um estilo semelhante a Markdown com uma sintaxe dedicada para matemática, sendo mais concisa e intuitiva que a do LaTeX
- A experiência do usuário melhora com mensagens de erro claras, compilação incremental e suporte a uma linguagem funcional semelhante a Rust
- A representação de fórmulas matemáticas oferece qualidade quase idêntica à do LaTeX, com possibilidade de usar diretamente símbolos Unicode
Melhorias do Typst em relação ao LaTeX
- Oferece uma sintaxe de código mais curta e fácil de ler do que a do LaTeX
- Typst mantém a qualidade ao usar o mesmo algoritmo de quebra de linha do LaTeX e métodos semelhantes de composição de fórmulas
- Em vez de macros complexas, adota customização baseada em chamadas de função, garantindo estabilidade e simplicidade
- Typst inclui uma linguagem de programação embutida no estilo Rust
- A maioria das funções é pura, oferecendo resultados previsíveis e facilidade de depuração
- Linguagem de programação e composição tipográfica de documentos estão totalmente integradas, permitindo escrever código mais conciso
- A customização de documentos, como mudança de fonte ou estilo de seções, também é feita por chamadas de função
- Em comparação com a extensão Lua do LaTeX, oferece uma estrutura de programação mais consistente e simples
- Elementos problemáticos no LaTeX, como tratamento de objetos flutuantes e divisão de tabelas, podem ser resolvidos com um modelo de layout melhorado
Exemplo de marcação e estrutura
- Títulos: símbolo
=, listas numeradas automáticas: +, listas com marcadores: -, tudo de forma simples
- Transformações de texto como Bold e Italic também são inseridas de maneira intuitiva
- Alguns recursos são tratados por chamadas de função: ex.)
#underline[Good] gin
- Existem três modos de entrada: texto, código e matemática
- O modo de fórmulas é delimitado por
$, permitindo inserir diretamente símbolos Unicode e letras gregas
Desvantagens e limitações do Typst
- Em relação ao LaTeX, há menos refinamento no layout de página (como controle de viúvas e órfãs)
- Ainda há poucos pacotes especializados, embora o número já passe de 800 e esteja crescendo rapidamente
- O suporte a templates de periódicos é insuficiente, o que exige conversão via Pandoc
- A documentação oficial é insuficiente e tem dificuldade para acompanhar o ritmo rápido de atualizações
- Faltam alguns recursos avançados, como inserção de PDF e suporte a
parshape
- Por estar em estágio inicial, existe risco de quebras de compatibilidade (breaking changes)
Conclusão e perspectivas
- O autor de fato usa Typst para escrever artigos de física e utiliza o Pandoc para conversão para LaTeX
- Em combinação com Neovim + Tree-sitter, ele montou um ambiente de escrita eficiente e ficou satisfeito com a velocidade do Typst e a experiência de exibição de erros
- O sistema oferece ganhos práticos de produtividade, como entrada rápida e intuitiva de fórmulas, suporte de editor/ferramentas visuais e feedback rápido de compilação
- Typst é avaliado como um forte candidato com potencial para substituir o LaTeX, já suficientemente prático agora e com tendência de se expandir ainda mais
Principais comentários do LWN
- Compatibilidade e estabilidade de longo prazo
- Um dos motivos do sucesso do TeX/LaTeX foi a manutenção da compatibilidade com versões futuras (spacefrogg)
- Mas, na experiência prática, também há muitas reclamações de documentos antigos que quebram em ambientes novos ou precisam ser reescritos por mudanças em pacotes (wtarreau, warrax)
- Alguns usuários compartilharam experiências de artigos e teses com décadas de idade ainda compilando sem problemas, apontando que o fator principal é a diferença de estabilidade entre os pacotes usados (dskoll, anton)
- Problemas com templates e pacotes de editoras
- Há críticas de que, na publicação de periódicos, o uso de templates LaTeX e pacotes antigos fornecidos pelas editoras é imposto, o que enfraquece a vantagem real de compatibilidade (NYKevin, aragilar)
- No fim, a opinião pragmática é que o importante não é preservar o formato do documento por muito tempo, mas sim conseguir portar facilmente o texto principal para um novo template (anton)
- Projeto da linguagem do Typst e suas vantagens
- Ao contrário do LaTeX, o Typst separa claramente a sintaxe de código da sintaxe de composição, reduzindo efeitos colaterais de macros e trazendo recursos modernos de linguagem (spacefrogg)
- É possível escrever documentos simples rapidamente, e a legibilidade das mensagens de erro e a compilação incremental são grandes vantagens (spacefrogg, notriddle)
- Por outro lado, como Typst também é Turing completo, há quem tema que problemas de compatibilidade possam se repetir no longo prazo (epa, smoogen, taladar)
- Ecossistema e comunidade
- O desenvolvimento de pacotes do Typst é ativo, e há casos em que recursos foram adicionados rapidamente após pedidos (leephillips, adnl)
- Em contraste com as críticas à falta de documentação oficial, também foram compartilhadas experiências positivas de que o fórum da comunidade é prestativo e ativo (al4711)
- Outros projetos alternativos como SILE e o antigo Lout foram mencionados, mas também se relembrou a história de sua falha em se popularizar por falta de efeito de rede (rogerwhittaker, ceplm, anton)
- Desenvolvimento contínuo do LaTeX e comparação
- O LaTeX também vem adotando recursos modernos recentemente, como Tagged PDF (melhoria de acessibilidade), e pesquisadores e desenvolvedores continuam trabalhando ativamente em sua evolução (jschrod)
- Ferramentas como Overleaf e LyX melhoram a usabilidade do LaTeX e, segundo opiniões, são úteis para colaboração e aprendizado de iniciantes (smitty_one_each, paulj, callegar)
- Embora Typst tenha a vantagem de ser mais simples e moderno que o LaTeX, ainda existe uma visão cética de que é difícil alcançar o ecossistema acumulado ao longo de décadas e os recursos especializados (norbusan, callegar)
- Outras discussões
- O recurso de inclusão de PDF no Typst foi adicionado recentemente, e uma funcionalidade semelhante a
parshape também surgiu em forma de pacote (Delio, yashi)
- Há também a crítica de que, em algumas décadas, o Typst acabará repetindo os mesmos problemas de compatibilidade e complexidade do LaTeX (norbusan)
- Alguns apontaram problemas de detalhe, como a falta de correção itálica no Typst, enfatizando que ele ainda fica aquém dos recursos tradicionais minuciosos do LaTeX (callegar)
3 comentários
Acho que vamos ter que esperar um pouco até que o ecossistema se forme..
Acho que o Typora supera o LaTeX em vários aspectos.
Mas ainda restam alguns bugs pequenos, e é frustrante que demore tanto para sair uma nova versão.
Como passaram a operar a própria comunidade e tentaram monetizar o editor + a nuvem, sem muito sucesso, parece que o ritmo de desenvolvimento já não é mais o mesmo de antes.
Opinião no Hacker News
Fico feliz em ver o Typst ganhando cada vez mais atenção; na minha organização, a Zerodha, migramos uma operação real para o Typst há 2 anos. Era um trabalho que gerava mais de 1,5 milhão de PDFs por dia para envio por e-mail. Antes, usávamos um pipeline baseado em LaTeX (primeiro com pdflatex, depois com lualatex), mas sempre havia problemas com erros de memória inexplicáveis em documentos grandes e com imagens Docker excessivamente grandes, o que deixava lenta a inicialização de workers efêmeros. Ao mudar para o Typst, conseguimos usar imagens muito mais leves com um único binário estático, e a velocidade de inicialização melhorou claramente. O ganho de desempenho também foi enorme. O tempo total de compilação ficou de 3 a 4 vezes mais rápido do que com LaTeX e, no caso de documentos grandes com mais de 2.000 páginas, o Typst terminava em 1 minuto, enquanto o lualatex levava 18 minutos. A experiência de desenvolvimento também melhorou, e estou satisfeito porque as mensagens de erro são muito mais amigáveis. Fiz um post detalhado sobre toda a arquitetura e a experiência de migração para o Typst; se tiver curiosidade, veja aqui
Eu gero vários tipos de documentos com um pipeline em LaTeX, como textos, faturas e formulários, com base em snippets do banco de dados. A configuração foi bastante complexa, mas fiquei muito satisfeito com o resultado. Gostaria de usar uma linguagem de marcação mais simples, mas tenho receio de acabar só perdendo tempo e bater em limitações. Os requisitos de que realmente preciso são: conseguir definir quebras de coluna/página significativas em várias colunas (por exemplo, especificar um número mínimo de linhas em uma nova coluna/página), hifenização automática confiável em vários idiomas (inglês/alemão, e no futuro francês/italiano/espanhol), posicionamento automático de imagens dentro de colunas, quebra automática de página em tabelas e formulários complexos, imagens de fundo e diferentes áreas tratadas como mini páginas. Fico me perguntando se o Typst consegue fazer tudo isso
Seria muito interessante se vocês pudessem compartilhar amostras ou exemplos dos documentos que produzem
As empresas em que trabalhei costumam enviar regularmente PDFs com estatísticas, relatórios pequenos e outros tipos de documentos de negócios. Na maioria dos casos, geram os PDFs com MJML, HTML próprio, Puppeteer etc. Fico curioso se o Typst também se encaixaria bem nesses casos
Fico curioso para saber por que vocês usaram LaTeX no começo no caso de uso de vocês. Mais surpreendente do que substituir o LaTeX é ele ter sido o ponto de partida
Comparar Typst com LaTeX é realmente noite e dia. Estou escrevendo minha tese de doutorado em Typst, e na prática foi quase uma aventura. Ainda não há uma base grande de usuários, nem é totalmente estável. Mas, depois de usar uma vez, não teve volta. Ainda falta ajustar em nível de pixel o template em LaTeX exigido pela universidade, mas fiquei convencido de que o Typst é claramente mais adequado. Mesmo tendo usado LaTeX por mais de 10 anos, eu não diria que realmente entendia TeX. Já com Typst, em poucos dias consegui usá-lo de forma realmente eficiente. Se não existe o pacote de que preciso, consigo criá-lo eu mesmo rapidamente, e ainda assim boa parte disso já é coberta por excelentes pacotes existentes. Coisas que eu jamais sonharia fazer em LaTeX são fáceis no Typst. Um dos fatores que mais derrubavam minha produtividade no TeX eram conflitos de pacotes, compatibilidade e problemas de versão, e isso simplesmente não acontece no Typst. Isso porque ele oferece uma linguagem de programação de verdade e um sistema de módulos. A velocidade de compilação também é rápida, e a experiência geral de uso é excelente. Dito isso, não é 100% perfeito. Há algumas escolhas de design questionáveis e partes ainda em desenvolvimento, como por exemplo a função de inserir PDFs como se fossem imagens. A qualidade de composição também parece convergir para algo como 95% em relação ao TeX (o TeX é sempre perfeito). Às vezes também preciso ajustar o kerning manualmente. Mesmo assim, espero que isso continue melhorando no futuro
Ter que reproduzir em nível de pixel o template em LaTeX da universidade pode até ser uma sorte. A maioria das pessoas teve que copiar o template em MS Word da universidade para LaTeX
Acho que o Typst vai continuar evoluindo. Ainda assim, às vezes houve mudanças grandes que quebraram compatibilidade. Não era difícil corrigir, mas depurar não era exatamente intuitivo. Parece que muita gente quer ver o Typst dar certo. TeX e LaTeX são vastos e complexos, então dá a impressão de que falta algo como uma “distribuição” de LaTeX mais limpa. Seria ótimo se isso pudesse ser bem empacotado em unidades atômicas com contêineres. Você baixa um template e, quando vai tentar compilar, sempre falta alguma coisa. É bom ver esse campo continuar inovando
É interessante esse ponto de que, mesmo usando LaTeX por mais de 10 anos, você conseguiu ficar proficiente em Typst em poucos dias. Por quê? Será que foi por causa da sua formação em CS?
Fico curioso se essa história de reprodução em nível de pixel é literal mesmo ou só um exagero. No LaTeX há muitos pacotes que nem permitem reprodução quase em nível de pixel, especialmente algo como microtype, que é bastante usado em artigos científicos
Também vale a pena ver este post de blog sobre a experiência de escrever uma tese em Typst
Resumindo algumas impressões depois de usar e comparar Typst e LaTeX
-,[item]etc.; se você usa o estilo com colchetes, no vim fica fácil casar pares com%, então dá para navegar por listas longas com facilidade\document{}, mas no Typst pode colocá-las logo perto de onde são necessáriasjson("some_file.json"). Ao escrever artigos, uso no Typst os dados JSON gerados por scripts de benchmark, compilando depois para PDFNão é necessário declarar macros só no topo; dá para declará-las em qualquer lugar. No LaTeX, os pacotes realmente só podem ser carregados no preâmbulo, mas macros podem ser declaradas em qualquer lugar. Semantic line break também não é problema no LaTeX. Concordo, porém, com a opinião sobre velocidade de compilação e mensagens de diagnóstico. Essa é a maior desvantagem do LaTeX
Na prática, como no ponto 5, macros podem ser declaradas em qualquer lugar. Só é costume colocá-las no preâmbulo
Fico curioso se alguém já tentou escrever algo como artigos reais em Typst. Eu só tive sucesso de forma bem limitada e, como ainda não há tanta gente usando, a situação é ter que resolver os problemas por conta própria
O Typst não é só macros, mas uma linguagem de programação de verdade, com funções, tipos, módulos (e até namespaces) e vários outros recursos. Isso reduz em uns 80% o sofrimento em comparação com trabalhar em TeX (especialmente para qualquer coisa além de um relatório experimental simples de graduação). Não é perfeito, mas é uma vantagem enorme, de outra ordem
O próprio LaTeX, por si só, é muito mais simples e direto do que o LaTeX. Aliás, chega até a assustar o tanto de controle que ele dá. Por exemplo, isto é um documento plain TeX válido: $$\aleph_0$$ \bye. Nem precisa usar begin/end. Com coleções de macros como extended plain, dá para ampliar as funcionalidades. Eu mesmo escrevi toda a minha tese em extended plain, mas quando fui entregar à biblioteca mandaram reescrever com arquivos de estilo LaTeX, então no fim converti para LaTeX
Para o Typst se tornar um concorrente real do LaTeX, templates em Typst precisam ser adotados oficialmente em artigos acadêmicos e conferências. A disseminação nas universidades também vai depender, no fim das contas, da adoção pelas editoras. Ainda quase não há apoio ao Typst na comunidade de pesquisa. Todo mundo já escreve artigos/slides/relatórios com templates LaTeX, e só faz sentido quando um professor/laboratório primeiro consegue aprovar um template Typst, isso se espalha pela universidade inteira e depois alcança conferências e periódicos. Esse processo é muito longo, tedioso e ainda está em andamento. Mas é uma etapa essencial
Talvez eu só não saiba quais problemas existem em uma composição mais profissional, como submissão a periódicos, mas sinceramente não sei o quanto a composição importa em artigos de pesquisa. Acho que na prática bastaria um formato mais simples e focado no conteúdo. A editora do artigo ou do livro poderia diagramar a submissão no estilo dela mesma. Do ponto de vista do pesquisador, seria melhor se bastasse se preocupar com um formato simples e centrado no conteúdo. Na verdade, eu preferiria que algum formato markdown voltado à pesquisa virasse padrão, em vez de LaTeX ou Typst
Do ponto de vista dos pesquisadores, o LaTeX já resolve bem o problema, então não há um grande motivo para mudar
Já escrevi várias notas de aula e uma dissertação de mestrado em matemática com LaTeX. Se você só vai escrever texto usando um template feito por outra pessoa, o LaTeX até que é bom. Mas, quando tenta criar seus próprios pacotes ou entender a estrutura interna, tudo parece magia negra. Era preciso tomar muito cuidado para que os pacotes não entrassem em conflito, e havia muitos workarounds especiais, então tudo sempre acabava complexo. Se o Typst se tornar um substituto do LaTeX que facilite diretamente layout e design, seria ótimo. Só usei Typst de forma experimental, mas gostei da linguagem em si. Na verdade, quando se trata apenas de escrever, não acho que a sintaxe seja uma questão tão importante. Como referência, quando escrevi minha dissertação de verdade, no começo usei reStructuredText para gerar LaTeX e PDF com Pandoc e, depois que a estrutura geral ficou pronta, ajustei a parte em LaTeX e refiz a formatação/figuras necessárias para concluir. A vantagem era poder começar logo, sem um preâmbulo longo. Ainda acho que o problema não é a sintaxe, e sim se preocupar demais com a etapa de design no início e acabar não escrevendo o texto de fato
Ainda não usei Typst tanto assim, mas a minha impressão é que, no processo de escrever templates, há muito menos “magia negra” do que no LaTeX. Já parece dar mais liberdade para estruturar as coisas do que o LaTeX
Se você quer controle e poder mais diretos sobre design/layout de documentos, em vez de LaTeX ou Typst eu recomendaria ConTeXt. Sou designer gráfico e gosto tanto do ConTeXt que não penso em substituí-lo por outra ferramenta. Mas, se a ideia é só escrever texto e não se preocupar com design, LaTeX ou Typst continuam excelentes
Eu também já escrevi tese com reStructuredText, gerando PDF com Pandoc e latexmk, e inserindo sem perdas gráficos em PDF gerados com matplotlib e Python. Fico curioso se houve algo que você não conseguiu fazer com reStructuredText. Como também dá para usar templates LaTeX, e o próprio reStructuredText é mais poderoso do que Markdown e outras variantes, eu até acho que dá para continuar usando reStructuredText sem problema
Sua observação de rodapé na verdade mostra que LaTeX não é uma escolha tão boa assim. Eu também escrevi recentemente uma tese em Typst, e antes escrevia em LaTeX. No LaTeX, eu escrevia em Markdown e depois convertia para LaTeX, mas no Typst isso não foi necessário. Se o Typst continuar assim sem piorar a qualidade do serviço, pretendo simplesmente continuar usando Typst
Hoje em dia estou escrevendo um livro trocando Pandoc + LaTeX por Typst (link do GitHub). A sintaxe do Typst é tão fácil quanto Markdown, e programar nele é muito mais fácil do que em LaTeX (embora ainda haja arestas). No LaTeX, eu sempre dependia de pacotes e ainda precisava evitar as interações estranhas entre eles, então dava bastante trabalho. No Typst, também é fácil implementar diretamente o que você precisa. É muito rápido e não deixa um monte de arquivos inúteis no sistema. Para documentação técnica centrada em PDF, recomendo muito
Como sistema alternativo de composição, também existe o SILE. Ele suporta tanto XML quanto estilos no estilo TeX e permite scripting em lua. Diferentemente de (La)TeX e Typst, ele também tem uma especificação de nível próximo à documentação oficial. Para fórmulas, também dá para usar MathML diretamente. Dito isso, nunca usei Typst nem SILE de fato, só li a documentação. HTML + MathML também funciona, e também há casos de gente escrevendo com código-fonte em XML + templates XSLT, como os livros didáticos da OpenStax (baseados em CNXML). Também existem várias combinações como troff (plus eqn), Texinfo, org-mode, embutir LaTeX, Markdown + HTML/MathML etc.
Para quem usa LaTeX há muito tempo, é pesado migrar para um sistema novo, porque você já passou por incontáveis casos especiais no LaTeX e já conhece todas as soluções. Por melhor que o Typst seja, dá medo de ter que repetir esse processo tudo de novo. Também preocupa o fato de a comunidade do Typst ainda não ser tão grande: será que já houve alguém com o mesmo problema que o meu e que compartilhou a solução? Pelos exemplos oficiais, ele parece excelente, mas uma força do LaTeX é a personalização minuciosa de detalhes (recuo, símbolos de marcador, espaçamento etc.). Fico curioso se o Typst também permite esse mesmo nível de controle
Tenho a mesma preocupação. Sem dúvida é uma linguagem de layout muito boa, e a qualidade de produção é muito maior. Mas inevitavelmente você vai bater de novo em casos excêntricos e limitações. A base de usuários do Typst também ainda não é grande o bastante. Além disso, testei no ano passado se AIs como Claude Code entendiam bem Typst, e não entendiam
O Typst ainda não oferece suporte para deixar imagens “flutuando” naturalmente dentro do corpo do texto (com o texto contornando etc.). Dá para colocar imagens no topo ou no rodapé da página, mas “imagens flutuantes” no meio do texto não têm suporte nativo
Se quiser ver as opções de controle para personalização de listas (recuo, espaçamento, símbolos etc.), dá para conferir na documentação oficial: documentação do modelo de listas do Typst
Também é preciso pensar no que fazer se outra instituição (biblioteca, conferência etc.) só aceitar sua tese ou artigo em LaTeX
O Typst é realmente impressionante. Hoje em dia já existe até a piada de que estudantes de matemática não escrevem mais teses, só ficam desviando para criar pacotes de Typst. Vai ser interessante ver até onde isso evolui em mais uns 10 anos. Vantagens: a compilação é instantânea, então basta salvar o arquivo
.type o PDF já é gerado na hora. Também é usado com frequência como substituto do Markdown, porque gera PDFs bonitos imediatamente e sem preparação especial. Desvantagens: as mensagens de erro às vezes são tão concisas que ficam excessivamente comprimidas, o que dificulta depurar, e um único erro de sintaxe já impede totalmente a geração do PDF, então fica difícil usar alguns truques de depuração que existiam no LaTeX. Também enfrentei problemas ao usar pacotes externos, mas isso não chega a surpreender quem já usou LaTeX por muito tempo