Typst é um novo sistema de composição tipográfica baseado em marcação projetado para ser tão poderoso quanto o LaTeX e, ao mesmo tempo, muito mais fácil de aprender e usar. Typst tem:
Este repositório contém o compilador Typst e sua CLI, que é tudo que você precisa para compilar documentos Typst localmente. Para obter a melhor experiência de escrita, considere inscrever-se gratuitamente em nosso editor colaborativo online.
Uma introdução suave ao Typst está disponível em nossa documentação. No entanto, se você quiser ver o poder do Typst encapsulado em uma imagem, aqui está:
Vamos dissecar o que está acontecendo:
Usamos regras definidas para configurar propriedades de elementos, como o tamanho das páginas ou a numeração dos títulos. Ao definir a altura da página como auto
, ela é dimensionada para caber no conteúdo. As regras definidas acomodam as configurações mais comuns. Se precisar de controle total, você também pode usar regras de exibição para redefinir completamente a aparência de um elemento.
Inserimos um título com a sintaxe = Heading
. Um sinal de igual cria um título de nível superior, dois criam um subtítulo e assim por diante. Typst tem uma marcação mais leve como esta, veja a referência de sintaxe para uma lista completa.
As equações matemáticas são colocadas entre cifrões. Ao adicionar espaços extras ao redor do conteúdo de uma equação, podemos colocá-la em um bloco separado. Identificadores de múltiplas letras são interpretados como definições e funções do Typst, a menos que sejam colocados entre aspas. Dessa forma, não precisamos de barras invertidas para coisas como floor
e sqrt
. E phi.alt
aplica o modificador alt
ao phi
para selecionar uma variante de símbolo específica.
Agora, chegamos a alguns scripts. Para inserir código em um documento Typst, podemos escrever um hash seguido por uma expressão. Definimos duas variáveis e uma função recursiva para calcular o n-ésimo número de Fibonacci. Em seguida, exibimos os resultados em uma tabela alinhada ao centro. A função de tabela analisa suas células linha por linha. Portanto, primeiro passamos as fórmulas $F_1$
para $F_8$
e depois os números de Fibonacci calculados. Aplicamos o operador de espalhamento ( ..
) a ambos porque são arrays e queremos passar os itens dos arrays como argumentos individuais.
#set page ( width : 10cm , height : auto )
#set heading ( numbering : " 1. " )
= Fibonacci sequence
The Fibonacci sequence is defined through the
recurrence relation $ F_n = F_(n-1) + F_(n-2) $ .
It can also be expressed in _closed form:_
$ F_n = round(1 / sqrt(5) phi.alt^n), quad
phi.alt = (1 + sqrt(5)) / 2 $
#let count = 8
#let nums = range ( 1 , count + 1 )
#let fib ( n ) = (
if n <= 2 { 1 }
else { fib ( n - 1 ) + fib ( n - 2 ) }
)
The first #count numbers of the sequence are:
#align (center, table(
columns: count,
..nums.map(n => $ F_#n $ ),
..nums.map(n => str(fib(n))),
))
A CLI do Typst está disponível em diferentes fontes:
Você pode obter fontes e binários pré-construídos para a versão mais recente do Typst na página de lançamentos. Baixe o arquivo para sua plataforma e coloque-o em um diretório que esteja no seu PATH
. Para se manter atualizado com lançamentos futuros, você pode simplesmente executar typst update
.
Você pode instalar o Typst através de diferentes gerenciadores de pacotes. Observe que as versões nos gerenciadores de pacotes podem estar atrasadas em relação à versão mais recente.
brew install typst
winget install --id Typst.Typst
Se você tiver um conjunto de ferramentas Rust instalado, poderá instalar
cargo install --locked typst-cli
cargo install --git https://github.com/typst/typst --locked typst-cli
Os usuários do Nix podem
typst
com nix-shell -p typst
nix run github:typst/typst -- --version
. Os usuários do Docker podem executar uma imagem pré-construída com docker run ghcr.io/typst/typst:latest --help
.
Depois de instalar o Typst, você pode usá-lo assim:
# Creates `file.pdf` in working directory.
typst compile file.typ
# Creates PDF file at the desired path.
typst compile path/to/source.typ path/to/output.pdf
Você também pode observar os arquivos de origem e recompilar automaticamente as alterações. Isso é mais rápido do que compilar do zero todas as vezes porque o Typst possui compilação incremental.
# Watches source files and recompiles on changes.
typst watch file.typ
O Typst ainda permite que você adicione caminhos de fontes personalizados para o seu projeto e liste todas as fontes que descobriu:
# Adds additional directories to search for fonts.
typst compile --font-path path/to/fonts file.typ
# Lists all of the discovered fonts in the system and the given directory.
typst fonts --font-path path/to/fonts
# Or via environment variable (Linux syntax).
TYPST_FONT_PATHS=path/to/fonts typst fonts
Para outros subcomandos e opções da CLI, veja abaixo:
# Prints available subcommands and options.
typst help
# Prints detailed usage of a subcommand.
typst help watch
Se você preferir uma experiência integrada do tipo IDE com preenchimento automático e visualização instantânea, você também pode conferir o aplicativo da web gratuito do Typst.
O principal local onde a comunidade se reúne é o nosso servidor Discord. Sinta-se à vontade para entrar para fazer perguntas, ajudar outras pessoas, compartilhar coisas legais que você criou com o Typst ou apenas para bater um papo.
Além disso, existem alguns lugares onde você pode encontrar coisas construídas pela comunidade:
Se você teve uma experiência ruim em nossa comunidade, entre em contato conosco.
Adoraríamos ver contribuições da comunidade. Se você encontrar bugs, sinta-se à vontade para abrir um problema. Se você deseja implementar um novo recurso ou correção de bug, siga as etapas descritas no guia de contribuição.
Para construir o Typst você mesmo, primeiro certifique-se de ter o Rust estável mais recente instalado. Em seguida, clone este repositório e construa a CLI com os seguintes comandos:
git clone https://github.com/typst/typst
cd typst
cargo build --release
O binário otimizado será armazenado em target/release/
.
Outra boa forma de contribuir é compartilhando pacotes com a comunidade.
IPA: /taɪpst/. "Ty" como em Ty pesetting e "pst" como em Hi pster . Ao escrever sobre Typst, coloque seu nome em maiúscula como nome próprio, com "T" maiúsculo.
Todo o Typst foi projetado com três objetivos principais em mente: potência, simplicidade e desempenho. Achamos que é hora de um sistema que corresponda ao poder do LaTeX, seja fácil de aprender e usar, ao mesmo tempo que seja rápido o suficiente para realizar uma visualização instantânea. Para atingir esses objetivos, seguimos três princípios básicos de design:
Simplicidade através da consistência: Se você sabe fazer algo no Typst, deverá ser capaz de transferir esse conhecimento para outras coisas. Se houver várias maneiras de fazer a mesma coisa, uma delas deverá estar em um nível de abstração diferente da outra. Por exemplo, está tudo bem que = Introduction
e #heading[Introduction]
façam a mesma coisa porque o primeiro é apenas um açúcar de sintaxe para o último.
Poder através da Composibilidade: Existem duas maneiras de tornar algo flexível: ter um botão para tudo ou ter alguns botões que você possa combinar de várias maneiras. Typst foi projetado com a segunda maneira em mente. Fornecemos sistemas que você pode compor de maneiras que nunca imaginamos. O TeX também está na segunda categoria, mas é um pouco de baixo nível e, portanto, as pessoas usam o LaTeX. Mas aí, não temos muita capacidade de composição. Em vez disso, existe um pacote para tudo ( usepackage{knob}
).
Desempenho por meio de incrementalidade: Todos os recursos da linguagem Typst devem acomodar compilação incremental. Felizmente temos comemo
, um sistema para compilação incremental que faz a maior parte do trabalho pesado em segundo plano.