7ec79ee898898b8711be5fd6266c2f4b0a14aadb
In `pz-lb` template the `authors.variant` may be omitted now.
Typst Template for NURE Works
General Info
This project contains two template functions and some utilities for writing NURE works. All functions include documentation comments inside them, so you can explore all possibilities using LSP.
Templates
pz-lb
- For Practical and Laboratory Works
This template:
- Sets up document styles;
- Formats the title page according to NURE/DSTU guidelines.
coursework
- For Course Works
This template:
- Sets up document styles;
- Formats the title, task, calendar plan, and abstract pages;
- Typesets the bibliography, outline, and appendices according to standard requirements.
Utilities
nheading
- For unnumbered headings, such as "Introduction" and "Conclusion".hfill
- Fills horizontal space with a filled box instead of just empty space; useful for creating underlines.uline
- Creates underlined fields that need to be filled, such as the name field on the task list.bold
- Inserts bold text inside functional environments.img
- Inserts images with a caption, automatically deriving the label from the image file name.
Usage
As a local typst package
- Clone this repository into ~/.local/share/typst/packages/:
git clone -b 0.1.0 https://gitea.linerds.us/pencelheimer/typst_nure_template.git ~/.local/share/typst/packages/local/nure/0.1.0
- Init your project with Typst:
typst init @local/nure:0.1.0 project-name
As a standalone file
Copy lib.typ
to your project's root directory.
In your project
// Import the template either from a local package...
#import "@local/nure:0.1.0": *
// ...or by importing a lib.typ directly
// #import "/lib.typ": *
// 1. Setup the document
// by setting values directly...
#show: pz-lb.with(
title: "Some title",
// etc: "and so on",
// ...
)
// ...or using a config/doc.yaml file
#show: pz-lb.with(..yaml("config/doc.yaml"))
// this template automatically inserts a `=title`
// Write your content
#v(-spacing) // remove spacing between headings
== Purpose
Some text
// ...or include your modules
#include "src/intro.typ"
#include "src/chapter1.typ"
#include "src/chapter2.typ"
// NOTE: if you want to use variables or utils provided by the package,
// you have to import the package or a lib.typ inside a module.
Notes:
- Use
#v(-spacing)
to remove vertical spacing between titles (this cannot be automatically handled by the template). Variablespacing
used here is imported from the template. - When importing
@local/nure:0.1.0
and specifying file paths in functions handled by the package, the path will relative to package's root directory, e.g. setting#show: coursework.with(bib_path: "bibl.yml")
will evaluate to~/.local/share/typst/packages/local/nure/0.1.0/bibl.yml
, the same is for#img
function, which makes it quite annoying and forces one to importlib.typ
file. Please open an issue or contact us in any other way if you have any advice.
Example Project Structure
project/
├── main.typ -- for boilerplate code and importing everything
├── config/
│ ├── doc.yaml -- for things that don't change across works, i.e. author and mentor metadata
│ ├── universities.yaml -- for user-specific configuration, i.e. education programs and disciplines
│ └── ...
├── src/
│ ├── intro.typ
│ ├── chapter1.typ
│ ├── chapter2.typ
│ └── ...
├── figures/
│ ├── chapter1/
│ │ ├── figure1.png
│ │ ├── figure2.png
│ │ ├── figure3.png
│ │ └── ...
│ ├── chapter2/
│ │ ├── figure1.png
│ │ ├── figure2.png
│ │ ├── figure3.png
│ │ └── ...
│ └── ...
└── ...
Languages
Typst
100%