f

ferrmat

@preview

Visual toolkit for Typst in Portuguese: heading themes with color palettes, math environments, decorative boxes, Gantt charts, exams and annotations.

v0.1.2
MIT

Package Information

Last Updated
Minimum Typst Version
0.14.0
Authors
Esdras
Categories
componentsvisualizationlayout

1. Get the package

Download the package using the TPIX CLI:

tpix get @preview/ferrmat:0.1.2

2. Import in your Typst file

Add this to your .typ file:

#import "@preview/ferrmat:0.1.2": *

Version History

0.1.20.14.0
b55b4e96a4ae...
0.1.00.14.0
3d36f2324015...

FerrMat

FerrMat is a Typst toolkit providing visual heading themes, colored boxes, mathematical environments, Gantt charts, exams, and more — fully in Brazilian Portuguese.

Ferramentas Visuais e Matemáticas — Temas de headings com paletas de cores, caixas decorativas, ambientes matemáticos, cronogramas, provas e muito mais, tudo em português para Typst.


Sobre o Projeto

O FerrMat nasceu como um conjunto de ferramentas matemáticas para Typst — caixas decorativas, ambientes de teoremas, operadores em português — e cresceu até se tornar um toolkit visual completo.

Hoje, o destaque do pacote é o sistema de temas: 10 paletas de cores × 7 estilos de layout = 70 combinações possíveis, com 34 temas curados prontos para uso imediato. Uma única linha transforma completamente a identidade visual do documento:

#import "@preview/ferrmat:0.1.2": *
#show: tema-revista-vinho

Além dos temas, o FerrMat oferece: caixas estilo tcolorbox, ambientes matemáticos com numeração automática, estilização de código, cronogramas de Gantt, módulo de provas, anotações e notas marginais, unidades SI em português, índice remissivo, colunas e grades.

Este pacote é o companheiro do ABNTyp, que cuida da formatação conforme normas ABNT. O FerrMat fornece componentes independentes de normas, que podem ser usados em qualquer documento Typst.


Instalação

Via Typst Universe (recomendado)

#import "@preview/ferrmat:0.1.2": *

Via Clone Local

git clone https://github.com/3sdras/ferrmat.git
#import "caminho/para/ferrmat/lib.typ": *

Módulos

Temas Visuais de Headings (temas.typ)

Sistema completo de headings visuais baseado na combinação livre de paletas de cores e estilos de layout — 10 paletas × 7 estilos = 70 combinações possíveis, com 34 temas prontos de uso imediato.

Paletas disponíveis: paleta-marinho, paleta-vinho, paleta-bosque, paleta-pastel, paleta-petroleo, paleta-solar, paleta-ardosia, paleta-lilas, paleta-grafite, paleta-festiva

Estilos disponíveis: estilo-periodico, estilo-jornal, estilo-revista, estilo-barras, estilo-universitario, estilo-centralizado, estilo-caos

// Tema pronto (forma mais simples)
#import "@preview/ferrmat:0.1.2": *
#show: tema-revista-vinho

// Combinação livre de paleta + estilo
#show: estilo-universitario.with(paleta-pastel, numeracao: "I.1")

// Paleta personalizada
#let minha-paleta = (
  primaria:   rgb("#2d4a8a"),
  secundaria: rgb("#e84a20"),
  texto:      rgb("#1a1a2e"),
  fundo:      rgb("#f0f4ff"),
  sutil:      rgb("#c8d0e0"),
)
#show: estilo-centralizado.with(minha-paleta)

Temas prontos (nome = tema-{estilo}-{paleta}): tema-periodico-marinho, tema-periodico-petroleo, tema-periodico-ardosia, tema-periodico-lilas, tema-periodico-bosque, tema-periodico-festiva, tema-jornal-grafite, tema-jornal-vinho, tema-jornal-petroleo, tema-revista-vinho, tema-revista-pastel, tema-revista-lilas, tema-revista-grafite, tema-revista-bosque, tema-revista-festiva, tema-barras-solar, tema-barras-pastel, tema-barras-lilas, tema-barras-bosque, tema-barras-festiva, tema-universitario-marinho, tema-universitario-vinho, tema-universitario-grafite, tema-universitario-bosque, tema-universitario-ardosia, tema-centralizado-grafite, tema-centralizado-pastel, tema-centralizado-ardosia, tema-centralizado-solar, tema-caos-grafite, tema-caos-festiva, tema-caos-ardosia, tema-caos-lilas, tema-caos-solar

Caixas Coloridas (caixas.typ)

Caixas decorativas estilo tcolorbox com bordas, cores e numeração automática.

// Caixa simples
#caixa(titulo: "Informação", cor: blue)[
  Conteúdo da caixa.
]

// Caixa com borda completa
#caixa(titulo: "Aviso", cor: red, borda: "completa", raio: 4pt)[
  Conteúdo importante.
]

// Estilo reutilizável com numeração automática
#let nota = caixa-estilo(
  cor: orange,
  borda: "completa",
  raio: 3pt,
  prefixo: "Nota",
)
#nota[Lembre-se: $1$ não é considerado primo.]

Ambientes Matemáticos (matematica.typ)

Ambientes de teoremas, definições, exemplos e provas com numeração automática e estilos configuráveis.

Ambientes disponíveis: teorema, lema, corolario, proposicao, axioma, conjectura, afirmacao, definicao, notacao, propriedade, exemplo, problema, observacao

#teorema(titulo: "Pitágoras")[
  Em todo triângulo retângulo, $a^2 = b^2 + c^2$.
]

#demonstracao[
  A demonstração clássica usa a comparação de áreas...
]

#definicao[
  Um número $p > 1$ é *primo* se seus únicos divisores são $1$ e $p$.
]

// Configurar estilo e numeração
#configurar-ambientes("cinza")          // "colorido", "cinza", "sem-caixa"
#show: configurar-numeracao("por-tipo", por-secao: true)

Operadores em português: sen, tg, csc, ctg, arcsen, arctg, senh, tgh, mdc, mmc

Funções matemáticas:

$fracao(a+b, c+d)$                      // fração vertical
$matriz(1, 2; 3, 4)$                    // matriz com parênteses
$colchete(1, 2; 3, 4)$                  // matriz com colchetes
$binomio(n, k)$                         // coeficiente binomial
$raiz(2)$  $raiz(3, 8)$                 // raiz quadrada / cúbica
$leibniz(y, x)$  $leibniz(y, x, 2)$    // derivadas de Leibniz
$parcial(f, x)$  $parcial(f, x, y)$    // derivadas parciais
$porPartes(x, se x > 0; -x, se x < 0)$ // função por partes

Símbolos em português: integral, somatorio, produtorio, uniao, inter, vezes, implica, sse, portanto, paraTodo, existe, letras gregas (alfa, gama, teta, etc.)

Código Estilizado (codigo.typ)

// Código inline
O comando #codigo-inline(`print("hello")`) imprime uma saudação.

// Bloco de código com título e numeração de linhas
#codigo-bloco(
  lang: "python",
  titulo: "script.py",
  numerar-linhas: true,
  ```python
  def fatorial(n):
      if n <= 1:
          return 1
      return n * fatorial(n - 1)
  ```.text
)

Cronograma de Gantt (cronograma.typ)

Gráficos de Gantt com tarefas, marcos, dependências e progresso (usa CeTZ).

#cronograma(
  hoje: data(15, 3, 2026),
  mostrar-dependencias: true,
  (
    tarefa("Planejamento", data(1, 3, 2026), data(7, 3, 2026),
      progresso: 100, cor: verde),
    tarefa("Design", data(5, 3, 2026), data(14, 3, 2026),
      progresso: 50, cor: azul),
    tarefa("Entrega", data(28, 3, 2026), data(28, 3, 2026),
      marco: true, cor: vermelho),
  ),
)

Unidades e Números (unidades.typ)

Formatação de números e unidades SI em locale brasileiro, equivalente ao siunitx do LaTeX.

#num(3.14159)                          // 3,14159
#num(1234567)                          // 1 234 567
#num(2.998e8)                          // 2,998 × 10⁸
#qtd(9.81, "m/s^2")                    // 9,81 m/s²
#unidade("kg.m/s^2")                   // kg·m/s²
#faixa-qtd(20, 25, "°C")              // 20 °C a 25 °C
#ang(45, minutos: 30)                  // 45°30′

Funções: num, unidade (un), qtd, faixa-num, faixa-qtd, lista-num, lista-qtd, ang, tablenum, declarar-unidade, configurar-numeros

Índice Remissivo (indice.typ)

Sistema de índice remissivo equivalente ao makeidx do LaTeX.

A #irem("derivada") derivada de uma função...
A #irem-def("integral") é definida como...    // exibe "integral" em negrito
#irem("velocidade", ver: "cinemática")         // remissiva "ver"

// No final do documento:
#imprimir-indice()

Provas e Avaliações (prova.typ)

Módulo para criação de provas e testes, similar ao exam.cls do LaTeX.

#cabecalho-prova(
  instituicao: "UFJ", disciplina: "Cálculo I",
  professor: "Dr. Silva", data: "22/02/2026",
)
#questao(pontos: 2.5)[Calcule a derivada de $f(x) = x^2$.]
#alternativas("$2x$", "$x^2$", "$2$", "$0$")
#questao(pontos: 3.0)[Resolva a integral.]
#espaco-resposta(altura: 5cm)
#total-pontos()

Funções: cabecalho-prova, questao, subquestao, alternativas, verdadeiro-falso, preencher-linhas, espaco-resposta, total-pontos, tabela-pontos

Anotações e Notas Marginais (anotacoes.typ)

Sistema de anotações TODO e notas marginais, similar ao todonotes do LaTeX.

#registrar-autores(("Alice": blue, "Bob": red))
#afazer(autor: "Alice")[Revisar esta seção.]
#urgente[Corrigir erro na fórmula!]
#nota-margem[Nota explicativa.]
#lista-de-tarefas()                    // sumário de pendências
#show: esconder-tarefas               // oculta tudo na versão final

Formatação de Seções (secoes.typ)

Personalização de títulos de seções, equivalente ao titlesec do LaTeX.

#show heading.where(level: 1): formatar-secao.with(
  peso: "bold", tamanho: 16pt, forma: "bloco", quebra-pagina: true,
)

Colunas e Grades (colunas.typ)

Wrappers em português para layout de colunas e grades.

#colunas(quantidade: 2)[Texto em duas colunas.]
#grade(colunas: (1fr, 1fr), [Célula 1], [Célula 2])

Cores em Português (cores.typ)

Constantes de cores: preto, branco, azul, vermelho, verde, amarelo, laranja, roxo, cinza, prata, azul-marinho, azul-petroleo, bordo, oliva, lima, agua, fucsia, oriental

Configuração de Página (pagina.typ)

#show: configurar-pagina.with(papel: "a4", margem: margem(superior: 3cm, inferior: 2cm))
#quebra-pagina()

Dependências

  • CeTZ 0.4.0 (para o módulo de cronograma)

Licença

Distribuído sob a licença MIT. Veja o arquivo LICENSE.


Créditos

O FerrMat é uma adaptação do trabalho "Uma breve introdução ao LaTeX 2e" do Prof. Dr. Lenimar Nunes de Andrade (DM/UFPB), transpondo seu excelente material didático para o contexto do Typst.


FerrMat — Ferramentas Matemáticas para Typst, com nomes em português.