diff --git a/Assets/image12.svg b/Assets/image12.svg new file mode 100644 index 0000000..c47e1c3 --- /dev/null +++ b/Assets/image12.svg @@ -0,0 +1,45 @@ + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/Assets/image13.svg b/Assets/image13.svg new file mode 100644 index 0000000..038ff75 --- /dev/null +++ b/Assets/image13.svg @@ -0,0 +1,45 @@ + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/Assets/image15.svg b/Assets/image15.svg new file mode 100644 index 0000000..57f99cd --- /dev/null +++ b/Assets/image15.svg @@ -0,0 +1,45 @@ + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/Assets/image16.svg b/Assets/image16.svg new file mode 100644 index 0000000..ca86cdb --- /dev/null +++ b/Assets/image16.svg @@ -0,0 +1,60 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + diff --git a/Assets/image17.svg b/Assets/image17.svg new file mode 100644 index 0000000..df5ac08 --- /dev/null +++ b/Assets/image17.svg @@ -0,0 +1,60 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + diff --git a/Assets/image4.svg b/Assets/image4.svg new file mode 100644 index 0000000..a9bd3df --- /dev/null +++ b/Assets/image4.svg @@ -0,0 +1,50 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/Assets/image6.svg b/Assets/image6.svg new file mode 100644 index 0000000..df27bb7 --- /dev/null +++ b/Assets/image6.svg @@ -0,0 +1,45 @@ + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/Assets/image7.svg b/Assets/image7.svg new file mode 100644 index 0000000..a9bd3df --- /dev/null +++ b/Assets/image7.svg @@ -0,0 +1,50 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/Assets/image8.svg b/Assets/image8.svg new file mode 100644 index 0000000..df27bb7 --- /dev/null +++ b/Assets/image8.svg @@ -0,0 +1,45 @@ + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/Assets/ktu.png b/Assets/ktu-logo.png similarity index 100% rename from Assets/ktu.png rename to Assets/ktu-logo.png diff --git a/Assets/ktu-text.svg b/Assets/ktu-text.svg new file mode 100644 index 0000000..5db1c76 --- /dev/null +++ b/Assets/ktu-text.svg @@ -0,0 +1,45 @@ + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/README.md b/README.md index ea1bc71..24168f6 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,12 @@ # KTU-Typst -To use the template +This repository contains a Typst template for KTU style presentation and written work. + +To use the template, just import `template.typ` at the top of the Typst document and apply a show rule. + +## Report + +The following is an example on how to apply the report style for a document ```typst #import "template.typ": ataskaita @@ -19,3 +25,45 @@ To use the template = Įvadas ... ``` + +## Presentation + +For presentations, we use the Polylux Typst package. I suggest that you consult documentation on how it works before proceeding. + +```typst +#import "@preview/polylux:0.3.1": * +#import "template.typ": * + +#show: everything => ktu-theme(everything) + +#ktu-title-slide[ + = Pristatymo tema + + #box[ + #set text(size: 18pt) + Autoriai: Vardenis Pavardenis, Petras Petraitis + ] +] + +#ktu-outline-slide[ + == Turinys + + 1. Įvadas + 2. Dėstymas + 3. Išvados +] + +#ktu-main-slide[ + == Įvadas + + ... +] + +... +``` +### Options + +`#ktu-title-slide` +`#ktu-outline-slide` +`#ktu-main-slide` +`#ktu-no-vertical-slide` diff --git a/examples/bibl.yml b/examples/bibl.yml new file mode 100644 index 0000000..b6c8d25 --- /dev/null +++ b/examples/bibl.yml @@ -0,0 +1,15 @@ +wwdc-network: + type: Article + author: ["Mehta, Jiten", "Kinnear, Eric"] + title: Boost Performance and Security with Modern Networking + date: 2020-06-26 + parent: + - type: Conference + title: + value: "{World Wide Developer Conference 2020}" + short: WWDC 2020 + organization: Apple Inc. + location: Mountain View, CA + - type: Video + runtime: "00:13:42" + url: { value: https://developer.apple.com/videos/play/wwdc2020/10111/, date: 2020-09-17 } \ No newline at end of file diff --git a/examples/presentation.pdf b/examples/presentation.pdf new file mode 100644 index 0000000..44610b1 Binary files /dev/null and b/examples/presentation.pdf differ diff --git a/examples/presentation.typ b/examples/presentation.typ new file mode 100644 index 0000000..9f227fb --- /dev/null +++ b/examples/presentation.typ @@ -0,0 +1,39 @@ + #import "@preview/polylux:0.3.1": * +#import "../template.typ": * + +#show: everything => ktu-theme(everything) + +#ktu-title-slide[ + = Pristatymo tema + + #box[ + #set text(size: 18pt) + Autoriai: Vardenis Pavardenis, Petras Petraitis + ] +] + +#ktu-outline-slide[ + == Turinys + + 1. Įvadas + 2. Dėstymas + 3. Išvados +] + +#ktu-main-slide[ + == Įvadas + + ... +] + +#ktu-main-slide[ + == Daug teksto + + #lorem(130) +] + +#ktu-no-vertical-slide[ + == Daug teksto, kitas variantas + + #lorem(130) +] diff --git a/examples/report.pdf b/examples/report.pdf new file mode 100644 index 0000000..7242c78 Binary files /dev/null and b/examples/report.pdf differ diff --git a/examples/report.typ b/examples/report.typ new file mode 100644 index 0000000..1fb6090 --- /dev/null +++ b/examples/report.typ @@ -0,0 +1,34 @@ +#import "../template.typ": ataskaita, bibl + +#show: doc => ataskaita( + "Kompiuterinis raštingumas", + ( + [Technologinis projektas], + [Typst šablonas] + ), + author: "Vardenis Pavardenis", + recipient: "lekt. Petras Petraitis", + document: doc, +) + += Įvadas + +#lorem(400) + +#lorem(300) + +#pagebreak() + += Antraštė + +== Subantraštė + +#lorem(200) + +== Subantraštė + +#lorem(200) + +#pagebreak() + +#bibl("examples/bibl.yml") \ No newline at end of file diff --git a/template.typ b/template.typ index 654dda9..dde3cfc 100644 --- a/template.typ +++ b/template.typ @@ -74,7 +74,7 @@ // Top of the title page #v(20pt) #align(center)[ - #image("Assets/ktu.png", width: 2.46cm, height: 2.69cm) + #image("Assets/ktu-logo.png", width: 2.46cm, height: 2.69cm) #v(20pt)*Kauno technologijos universitetas* #v(0pt)Informatikos fakultetas #v(83pt) @@ -137,3 +137,272 @@ ) ] } + + + + + + + + + + + + + + + + + + + + + +// PRESENTATION +#import "@preview/polylux:0.3.1": * + +// The margins are set automatically to 2.5/21 times the smaller dimension of the page. This results in 2.5cm margins for an A4 page. +#let autoMarginSize = 2.5/21 * 7.50in +#let margins = ( + top: autoMarginSize, + right: autoMarginSize, + left: autoMarginSize, + bottom: autoMarginSize +); + +#let ktu-theme(body) = { + + set page( + fill: white, + numbering: "1", + number-align: right, + width: 13.33in, + height: 7.50in, + margin: margins, + footer: { + locate(loc => { + let page-counter = counter(page).display("1") + if loc.page() != 1 { + place(bottom+right, dx: 18pt, dy: -20pt)[ + #set text(size: 14pt) + *#page-counter* + ] + } + }) + } + ) + + // Default content size + set text(size: 22pt, font: "Arial") + + // First level heading size + show heading.where(level: 1): it => [ + #set text(size: 50pt) + #it.body + ]; + + // Second level heading size + show heading.where(level: 2): it => [ + #set text(size: 30pt) + #it.body + ]; + + // Embed the body + body +} + +#let ktu-title-slide(body) = { + polylux-slide[ + // Content + #set align(bottom) + #box(width: 80%)[ + #body + ] + + + // Horizontal line + #place( + top, + dx: 222pt, + dy: -200pt, + pad( + right: -margins.right + 100pt, + left: -margins.left, + scale( + x: 300%, + rotate( + -90deg, + image("Assets/image12.svg") + ) + ) + ) + ) + + // KTU logo + #place( + top, + dx: 792pt, + dy: -40pt, + image("Assets/ktu-logo.png", height: 36mm) + ) + + // Vertical line + #place( + top, + dx: 360pt, + dy: 385pt, + pad( + top: -margins.top, + bottom: -margins.bottom, + rotate( + -90deg, + scale( + y: -100%, + image("Assets/image15.svg") + ) + ) + ) + ) + + // Text on the vertical line side + #place(top, dx: 670pt, dy: 250pt)[ + #set text(size: 15pt) + #rotate(-90deg)[ + *UŽ KIEKVIENOS TECHNOLOGIJOS – ŽMOGUS* + ] + ] + ] +} + +#let ktu-outline-slide(body) = { + polylux-slide[ + // Content + #box( + pad( + left: 90pt, + body + ) + ) + + // KTU logo + #place( + top, + //dx: 792pt, + dx: -50pt, + dy: -40pt, + image("Assets/ktu-logo.png", height: 36mm) + ) + + // Vertical line + #place( + top, + dx: -360pt, + dy: 385pt, + pad( + top: -margins.top, + bottom: -margins.bottom, + rotate( + 90deg, + scale( + y: -100%, + x: -100%, + image("Assets/image15.svg") + ) + ) + ) + ) + + // Text on the vertical line side + #place(top, dx: -170pt, dy: 250pt)[ + #set text(size: 15pt) + #rotate(-90deg)[ + *UŽ KIEKVIENOS TECHNOLOGIJOS – ŽMOGUS* + ] + ] + ] +} + +#let ktu-main-slide(body) = { + let header = body.children.find(it => { return it.func() == heading }) + + polylux-slide[ + // Content + #block(width: 95%, height: 100%)[ + #header + #v(36pt) + #body.children.filter(it => {return it.func() != heading}).join() + ] + + // DECORATIONS + // Horizontal line + #place( + top, + dy: 44pt, + pad( + right: -margins.right + 94pt, + left: -margins.left, + image("Assets/image15.svg") + ) + ) + + // KTU logo + #place( + top, + dx: 820pt, + dy: 0pt, + image("Assets/ktu-text.svg", height: 10mm) + ) + + // Vertical line + #place( + top, + dx: 800pt, + pad( + top: -margins.top, + bottom: -margins.bottom, + image("Assets/image12.svg") + ) + ) + + // Text on the vertical line side + #place(top, dx: 700pt, dy: 250pt)[ + #set text(size: 13pt) + #rotate(-90deg)[ + *UŽ KIEKVIENOS TECHNOLOGIJOS – ŽMOGUS* + ] + ] + ] +} + +#let ktu-no-vertical-slide(body) = { + let header = body.children.find(it => { return it.func() == heading }) + + polylux-slide[ + // Content + #block(width: 95%, height: 100%)[ + #header + #v(36pt) + #body.children.filter(it => {return it.func() != heading}).join() + ] + + // DECORATIONS + // Horizontal line + #place( + top, + dy: 44pt, + pad( + right: -margins.right, + left: -margins.left, + image("Assets/image15.svg") + ) + ) + + // KTU logo + #place( + top, + dx: 820pt, + dy: 0pt, + image("Assets/ktu-text.svg", height: 10mm) + ) + ] +} \ No newline at end of file