diff --git a/1.0.1/src/assets/unigrazlogo-white-border.svg b/1.0.1/src/assets/unigrazlogo-white-border.svg new file mode 100644 index 0000000..bd8dd2e --- /dev/null +++ b/1.0.1/src/assets/unigrazlogo-white-border.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + diff --git a/1.0.1/src/assets/unigrazlogo.svg b/1.0.1/src/assets/unigrazlogo.svg deleted file mode 100644 index e453d89..0000000 --- a/1.0.1/src/assets/unigrazlogo.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/1.0.1/src/lib.typ b/1.0.1/src/lib.typ index b6bd1d4..1922777 100644 --- a/1.0.1/src/lib.typ +++ b/1.0.1/src/lib.typ @@ -142,7 +142,7 @@ #let title-slide(..args) = touying-slide-wrapper(self => { let info = self.info + args.named() let body = { - let footer-isec = [ + let footer-kfu = [ #set text(size: 13.3pt, weight: "medium") #let circle-icon = [ @@ -158,25 +158,25 @@ #box(circle-icon) #h(0.1cm) #self.store.institute ] - set page(footer: footer-isec, header: none) + set page(footer: footer-kfu, header: none) set block(below: 0pt, above: 0pt) + place(center + horizon, dx: -15em, [ + #circle(stroke: self.colors.primary + 13em, radius: 32em) + ]) + // Top-right icon + text place(top + right, dy: -1.9cm, dx: 0.78cm, [ #self.store.logo ]) - place(center + horizon, dx: -15em, [ - #circle(stroke: self.colors.primary + 5em, radius: 25em) - ]) - v(0.8cm) block(width: 83%)[ #let title = text(size: 40.5pt, weight: "bold")[#info.at( - "title", - default: "", - )] + "title", + default: "", + )] #move(dx: 0.04em)[ #grid( @@ -225,7 +225,7 @@ if ( self.info.at("download-qr", default: none) != none - and self.info.at("download-qr", default: none) != "" + and self.info.at("download-qr", default: none) != "" ) { place(bottom + right)[ #align(center + horizon)[ @@ -352,7 +352,7 @@ /// Example: /// /// ```typst -/// #show: definitely-not-isec-theme.with( +/// #show: definitely-not-kfu-theme.with( /// aspect-ratio: "16-9", /// slide-alignment: top, /// config-info( @@ -383,7 +383,7 @@ /// - config-common (dict): /// - handout (bool): Boolean for handout mode /// - config-colors (dict): Colors for the presentation -/// - ... see definition of `#definitely-not-isec-theme` +/// - ... see definition of `#definitely-not-kfu-theme` #let definitely-not-kfu-theme( aspect-ratio: "16-9", header: utils.display-current-heading(level: 1), @@ -436,7 +436,6 @@ kfu: rgb("FED501"), primary: rgb("FED501"), footer: rgb("808080"), - isec: rgb("272733"), foot: rgb("e1e1e1"), web: rgb("0c5a77"), csbme: rgb("19b4e3"), @@ -465,23 +464,6 @@ colD: rgb("285f82"), colE: rgb("78b473"), colF: rgb("e59352"), - tugred: rgb("e4154b"), - tuggreen: rgb("78b473"), - tugblue: rgb("285f82"), - tugyellow: rgb("e59352"), - tugcyan: rgb("19b4e3"), - tugpurple: rgb("7d219e"), - tugviolet: rgb("5e60a8"), - tugmagenta: rgb("7d219e"), - tugturquoise: rgb("0a98a2"), - tugbrown: rgb("68242c"), - tugblack: rgb("0f0f0f"), - tugwhite: rgb("ffffff"), - tuggray: rgb("a5a5a5"), - tuggrey: rgb("a5a5a5"), - tugdark: rgb("3b5a70"), - tugmid: rgb("5191c1"), - tuglite: rgb("eeece1"), main: rgb("e4154b"), emph: rgb("285f82"), standout: rgb("245b78"), @@ -489,226 +471,188 @@ config-methods( cover: (self: none, body) => hide(body), init: ( - self: none, - body, - ) => { - // TUGraz uses Source Sans Pro, but its a licensed Adobe font - set text(size: 20pt, lang: "en", region: "US", font: font) - show emph: it => { text(self.colors.primary, it.body) } - show cite: it => { text(self.colors.primary, it) } - show strong: it => { text(weight: "bold", it.body) } + self: none, + body, + ) => { + set text(size: 20pt, lang: "en", region: "US", font: font) + show emph: it => { text(self.colors.primary, it.body) } + show cite: it => { text(self.colors.primary, it) } + show strong: it => { text(weight: "bold", it.body) } - // Bibliography - set bibliography(title: none, style: "ieee") - set cite(style: "alphanumeric") - show bibliography: set par(spacing: 0.4cm) - show bibliography: set grid(align: top + left) - show bibliography: set text(17pt) - show bibliography: t => { - show grid.cell.where(x: 0): set text(fill: self.colors.primary) - show grid.cell.where(x: 0): set align(top + left) - show link: set text(fill: gray) - t + // Bibliography + set bibliography(title: none, style: "ieee") + set cite(style: "alphanumeric") + show bibliography: set par(spacing: 0.4cm) + show bibliography: set grid(align: top + left) + show bibliography: set text(17pt) + show bibliography: t => { + show grid.cell.where(x: 0): set text(fill: self.colors.primary) + show grid.cell.where(x: 0): set align(top + left) + show link: set text(fill: gray) + t + } + + // Lists & Enums + set list( + marker: ( + (move(dx: 0.15cm, dy: 0.1cm, circle(radius: 0.2em, stroke: self.colors.primary + 2pt, fill: self.colors.primary))), + (move(dy: 0.2cm, circle(width: 0.2em, fill: black))), + (move(dy: 0.2cm, circle(width: 0.2em, fill: gray))), + ), + body-indent: 1.2em, + ) + set enum( + numbering: n => { + circle(stroke: self.colors.primary + 2pt, radius: 0.3cm)[ + #align(center + horizon)[ #text(size: 12pt, fill: black)[#n] ] + ] + }, + body-indent: 0.6cm + ) + + // Code blocks + show: codly-init.with() + show raw.where(block: true): set text(size: 13pt) + + // Hotfixes, the messy part + + // https://github.com/touying-typ/touying/issues/136 + set par(spacing: 0.65em) + + body + }), + ..args, + ) + + body + } + + // ----------------------------------------------------------------------------- + // Macros + // ----------------------------------------------------------------------------- + + /// Macro for a pdfpc note + /// + /// Example: + /// + /// ```typst + /// #note("This will show on pdfpc speaker notes") + /// ``` + /// + /// - text (str): Note for pdfpc + /// + /// -> content + #let note(text) = [ + #pdfpc.speaker-note(text) + ] + + /// Quote block for phrases. Has a color.primary rectangle in the left + /// + /// Example: + /// + /// ```typst + /// #quote-block[ + /// #lorem(10) + /// ] + /// ``` + /// + /// - top-pad (length): Extra height of the quote colored block + /// - color (color): Color of the quote block + /// - spacing (length): Spacing after the `#quote-block` + /// + /// -> content + #let quote-block( + top-pad: 0.55cm, + color: none, + spacing: 0.3cm, + body, + ) = [ + #touying-fn-wrapper((self: none) => [ + // Grid with the design + #let g(s: 0cm, body) = [ + #grid( + columns: (0.195cm, auto), + column-gutter: 0.7cm, + row-gutter: 0cm, + [ + #rect( + fill: if color == none { self.colors.primary } else { color }, + height: s + top-pad, + ) + ], + align(horizon, body), + ) + ] + + // We compute its "auto" heigth and then print it with the correct height + #layout(size => { + let (height,) = measure(width: size.width, g(body)) + g(s: height, body) + }) + + #v(spacing) + ]) + ] + + /// Block with title and content + /// + /// Example: + /// + /// ```typst + /// #color-block(title: [Advantages])[ + /// - A + /// - B + /// - C + /// ] + /// ``` + /// + /// - title (content): Title for the color block + /// - icon (str): Icon to show at the left of the title (Tableau Icons) https://tabler.io/icons + /// - spacing (length): Spacing before and after the color block + /// - color (color): Color for the title block + /// - color-body (color): Color for the background of the body + /// + /// -> content + #let color-block( + title: [], + icon: none, + spacing: 0.78em, + color: none, + color-body: none, + body + ) = [ + #import "@preview/tableau-icons:0.331.0": * + #touying-fn-wrapper((self: none) => [ + #show emph: it => { + text(weight: "medium", fill: self.colors.primary, it.body) } - // Lists & Enums - set list( - marker: ( - (move(dx: 0.15cm, dy: 0.1cm, circle(radius: 0.2em, stroke: self.colors.primary + 2pt, fill: self.colors.primary))), - (move(dy: 0.2cm, circle(width: 0.2em, fill: black))), - (move(dy: 0.2cm, circle(width: 0.2em, fill: gray))), + #showybox( + title-style: ( + color: white, + sep-thickness: 0pt, ), - body-indent: 1.2em, - ) - set enum( - numbering: n => { - circle(stroke: self.colors.primary + 2pt, radius: 0.3cm)[ - #align(center + horizon)[ #text(size: 12pt, fill: black)[#n] ] + frame: ( + //inset: 0.4em, + radius: 0pt, + thickness: 0pt, + border-color: if color == none { self.colors.primary } else { color }, + title-color: if color == none { self.colors.primary } else { color }, + body-color: if color-body == none { self.colors.lite } else { color-body }, + inset: (x: 0.55em, y: 0.65em), + ), + above: spacing, + below: spacing, + title: if icon == none { + align(horizon)[#strong(title)] + } else { + align(horizon)[ + #draw-icon(icon, height: 1.2em, baseline: 20%, fill: white) #h(0.2cm) #strong[#title] ] }, - body-indent: 0.6cm - ) - - // Code blocks - show: codly-init.with() - show raw.where(block: true): set text(size: 13pt) - - // Hotfixes, the messy part - - // https://github.com/touying-typ/touying/issues/136 - set par(spacing: 0.65em) - - body - }), - ..args, - ) - - body -} - -// ----------------------------------------------------------------------------- -// Macros -// ----------------------------------------------------------------------------- - -/// Macro for a pdfpc note -/// -/// Example: -/// -/// ```typst -/// #note("This will show on pdfpc speaker notes") -/// ``` -/// -/// - text (str): Note for pdfpc -/// -/// -> content -#let note(text) = [ - #pdfpc.speaker-note(text) -] - -/// Quote block for phrases. Has a color.primary rectangle in the left -/// -/// Example: -/// -/// ```typst -/// #quote-block[ -/// #lorem(10) -/// ] -/// ``` -/// -/// - top-pad (length): Extra height of the quote colored block -/// - color (color): Color of the quote block -/// - spacing (length): Spacing after the `#quote-block` -/// -/// -> content -#let quote-block( - top-pad: 0.55cm, - color: none, - spacing: 0.3cm, - body, -) = [ - #touying-fn-wrapper((self: none) => [ - // Grid with the design - #let g(s: 0cm, body) = [ - #grid( - columns: (0.195cm, auto), - column-gutter: 0.7cm, - row-gutter: 0cm, - [ - #rect( - fill: if color == none { self.colors.primary } else { color }, - height: s + top-pad, - ) - ], - align(horizon, body), - ) - ] - - // We compute its "auto" heigth and then print it with the correct height - #layout(size => { - let (height,) = measure(width: size.width, g(body)) - g(s: height, body) - }) - - #v(spacing) - ]) -] - -/// Block with title and content -/// -/// Example: -/// -/// ```typst -/// #color-block(title: [Advantages])[ -/// - A -/// - B -/// - C -/// ] -/// ``` -/// -/// - title (content): Title for the color block -/// - icon (str): Icon to show at the left of the title (Tableau Icons) https://tabler.io/icons -/// - spacing (length): Spacing before and after the color block -/// - color (color): Color for the title block -/// - color-body (color): Color for the background of the body -/// -/// -> content -#let color-block( - title: [], - icon: none, - spacing: 0.78em, - color: none, - color-body: none, - body -) = [ - #import "@preview/tableau-icons:0.331.0": * - #touying-fn-wrapper((self: none) => [ - #show emph: it => { - text(weight: "medium", fill: self.colors.primary, it.body) - } - - #showybox( - title-style: ( - color: white, - sep-thickness: 0pt, - ), - frame: ( - //inset: 0.4em, - radius: 0pt, - thickness: 0pt, - border-color: if color == none { self.colors.primary } else { color }, - title-color: if color == none { self.colors.primary } else { color }, - body-color: if color-body == none { self.colors.lite } else { color-body }, - inset: (x: 0.55em, y: 0.65em), - ), - above: spacing, - below: spacing, - title: if icon == none { - align(horizon)[#strong(title)] - } else { - align(horizon)[ - #draw-icon(icon, height: 1.2em, baseline: 20%, fill: white) #h(0.2cm) #strong[#title] - ] - }, - body, - ) - ]) -] - -/// Showcase the colors of the slide -/// -/// Example: -/// -/// ```typst -/// #showcase-colors -/// ``` -/// -/// -> content -#let showcase-colors = [ - #touying-fn-wrapper((self: none) => [ - #set rect(width: 7.4cm, height: 1.5cm) - #set text(fill: white) - #set align(center) - #grid(columns: 3, rows: 6, column-gutter: 1.8cm, row-gutter: 0.05cm, align: left, - rect(fill: self.colors.isec)[isec], - rect(fill: self.colors.kfu)[tug = main], - rect(fill: self.colors.colA)[colA = tugred], - rect(fill: self.colors.csbme)[csbme = tugcyan], - rect(fill: self.colors.fore)[fore], - rect(fill: self.colors.colB)[colB = tugmid], - rect(fill: self.colors.crypto)[crypto], - rect(fill: self.colors.back)[#text(fill: black)[back]], - rect(fill: self.colors.colC)[colC = tuggray], - rect(fill: self.colors.system)[system], - rect(fill: self.colors.foot)[#text(fill: black)[foot]], - rect(fill: self.colors.colD)[colD = tugblue], - rect(fill: self.colors.formal)[formal], - rect(fill: self.colors.emph)[emph], - rect(fill: self.colors.colE)[colE = tuggreen], - rect(fill: self.colors.applied)[applied = tugpurple], - rect(fill: self.colors.lite)[#text(fill: black)[lite]], - rect(fill: self.colors.colF)[colF = tugyellow], + body, ) ]) -] + ] //vim:tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab colorcolumn=81 diff --git a/1.0.1/src/logos.typ b/1.0.1/src/logos.typ index cb02504..a2aa69d 100644 --- a/1.0.1/src/logos.typ +++ b/1.0.1/src/logos.typ @@ -16,6 +16,6 @@ #set align(right) #set text(size: 12pt, tracking: 3.6pt) - #image("assets/unigrazlogo.svg", width: 4.1cm) + #image("assets/unigrazlogo-white-border.svg", width: 4.1cm) ]