/typst-physics

physica: vectors, fields, differentials, derivatives, Dirac brakets, tensors, and more. See examples in the manual PDF.

Primary LanguageTypstMIT LicenseMIT

📗 The manual.

logo

The physica package for Typst (v0.9.3)

CI Latest release

Available in the collection of Typst packages: #import "@preview/physica:0.9.3": *

physica noun.

  • Latin, study of nature

This Typst package provides handy typesetting utilities for natural sciences, including:

  • Braces,
  • Vectors and vector fields,
  • Matrices, including Jacobian and Hessian,
  • Smartly render ..^T as transpose and ..^+ as dagger (conjugate transpose),
  • Dirac braket notations,
  • Common math functions,
  • Differentials and derivatives, including partial derivatives of mixed orders with automatic order summation,
  • Familiar "h-bar", tensor abstract index notations, isotopes, Taylor series term,
  • Signal sequences i.e. digital timing diagrams.

A quick look

See the manual for more details and examples.

demo-quick

A larger demo.typ:

demo-larger

Using physica in your Typst document

With typst package management (recommended)

See https://github.com/typst/packages. If you are using the Typst's web app, packages listed there are readily available; if you are using the Typst compiler locally, it downloads packages on-demand and caches them on-disk, see here for details.

effect

// Style 1
#import "@preview/physica:0.9.3": *

$ curl (grad f), tensor(T, -mu, +nu), pdv(f,x,y,[1,2]) $
// Style 2
#import "@preview/physica:0.9.3": curl, grad, tensor, pdv

$ curl (grad f), tensor(T, -mu, +nu), pdv(f,x,y,[1,2]) $
// Style 3
#import "@preview/physica:0.9.3"

$ physica.curl (physica.grad f), physica.tensor(T, -mu, +nu), physica.pdv(f,x,y,[1,2]) $

Without typst package management

Similar to examples above, but import with the undecorated file path like "physica.typ".

Typst version

The version requirement for the compiler is in typst.toml's compiler field. If you are using an unsupported Typst version, the compiler will throw an error. You may want to update your compiler with typst update, or choose an earlier version of the physica package.

Developed with compiler version:

$ typst --version
typst 0.10.0 (70ca0d25)

Manual

See the manual for a more comprehensive coverage, a PDF file generated directly with the Typst binary.

To regenerate the manual, use command

typst watch physica-manual.typ

Contribution

  • Bug fixes are welcome!

  • New features: welcome as well. If it is small, feel free to create a pull request. If it is large, the best first step is creating an issue and let us explore the design together. Some features might warrant a package on its own.

  • Testing: currently testing is done by closely inspecting the generated manual. This does not scale well. I plan to add programmatic testing by comparing rendered pictures with golden images.

Change log

changelog.md.

License