better ghosts
All checks were successful
/ test_checkout (push) Successful in 1m49s

This commit is contained in:
Jean-Marie 'Histausse' Mineau 2025-10-16 00:54:26 +02:00
parent 074010755c
commit 679076fc63
Signed by: histausse
GPG key ID: B66AEEDA9B645AD2
3 changed files with 56 additions and 14 deletions

View file

@ -49,11 +49,18 @@
) )
) )
#set page(foreground: ghost-5(dx:-45%, dy: 43%)) #slide(
#slide(new-sec: true, title: [Introduction], hide-title: true)[ new-sec: true,
title: [Introduction],
hide-title: true,
foreground: {
ghost-5(dx: 10%, dy: 30pt)
ghost-4(dx: 95%, dy: 80%)
//ghost-4(dx: 45%, dy: 43%)
}
)[
Intro 1 Intro 1
] ]
#set page(foreground: [])
#slide[ #slide[
Intro 2 Intro 2

View file

@ -30,10 +30,18 @@ pirat-color.red,
} }
] ]
#let ghost(img, ..args,) = { #let ghost(img, dx: 0pt, dy: 0pt, height: 100pt, ..args,) = context {
move( let img = image(img, height: height)
let s = measure(img)
let hx = s.width / 2
let hy = s.height / 2
place(
bottom + left,
dx: dx - hx,
dy: -dy + hy,
..args, ..args,
image(img, height: 100pt) img
) )
} }

View file

@ -162,6 +162,8 @@ cmyk(25%,7%,0%,0%),
#let title-slide( #let title-slide(
body : none, body : none,
logo : none, logo : none,
background : [],
foreground : [],
) = context( { ) = context( {
let content = align(top + center, context( { let content = align(top + center, context( {
let title = sns-polylux-template_title.at(here()) let title = sns-polylux-template_title.at(here())
@ -274,6 +276,7 @@ cmyk(25%,7%,0%,0%),
body body
} )) } ))
set page(background: background, foreground: foreground)
pl.slide({ content }) pl.slide({ content })
counter("logical-slide").update( n => n - 1 ) counter("logical-slide").update( n => n - 1 )
@ -372,6 +375,8 @@ cmyk(25%,7%,0%,0%),
page-number : true, page-number : true,
hide-section : false, hide-section : false,
hide-title : false, hide-title : false,
background : [],
foreground : [],
body body
) = context( { ) = context( {
let sections_height = 1.5cm let sections_height = 1.5cm
@ -474,6 +479,8 @@ cmyk(25%,7%,0%,0%),
margin: (top: top-margin, bottom: 1cm), margin: (top: top-margin, bottom: 1cm),
header: header, header: header,
footer: footer, footer: footer,
background: background,
foreground: foreground
) )
pl.slide({ pl.slide({
@ -490,12 +497,16 @@ cmyk(25%,7%,0%,0%),
new-sec : none, new-sec : none,
page-number : true, page-number : true,
hide-section : false, hide-section : false,
background : [],
foreground : [],
body body
) = context( { ) = context( {
set page( set page(
margin: (top: 2.5cm, bottom: 0cm), margin: (top: 2.5cm, bottom: 0cm),
footer: none, footer: none,
fill: sns-polylux-template_colormap.at(here()).at(1), fill: sns-polylux-template_colormap.at(here()).at(1),
background: background,
foreground: foreground
) )
pl.slide({ pl.slide({
@ -513,6 +524,8 @@ cmyk(25%,7%,0%,0%),
} ) } )
#let empty-slide( #let empty-slide(
background : [],
foreground : [],
body body
) = context( { ) = context( {
// HEADER // HEADER
@ -529,10 +542,12 @@ cmyk(25%,7%,0%,0%),
} )) } ))
set page( set page(
margin: (top: 0cm, bottom: 0cm), margin: (top: 2.7cm, bottom: 0cm),
foreground: header, header: header,
footer: none, footer: none,
fill: sns-polylux-template_colormap.at(here()).at(1), fill: sns-polylux-template_colormap.at(here()).at(1),
background: background,
foreground: foreground
) )
pl.slide({ pl.slide({
@ -548,7 +563,11 @@ cmyk(25%,7%,0%,0%),
counter("logical-slide").update( n => n - 1 ) counter("logical-slide").update( n => n - 1 )
} ) } )
#let new-section-slide(name) = context( { #let new-section-slide(
name,
background : [],
foreground : [],
) = context( {
// HEADER // HEADER
let header = align(top, context( { let header = align(top, context( {
let logo = sns-polylux-template_logo-1.at(here()) let logo = sns-polylux-template_logo-1.at(here())
@ -563,10 +582,12 @@ cmyk(25%,7%,0%,0%),
} )) } ))
set page( set page(
margin: (top: 0cm, bottom: 0cm), margin: (top: 2.7cm, bottom: 0cm),
foreground: header, header: header,
footer: none, footer: none,
fill: sns-polylux-template_colormap.at(here()).at(1), fill: sns-polylux-template_colormap.at(here()).at(1),
background: background,
foreground: foreground
) )
// TOC // TOC
@ -608,7 +629,11 @@ cmyk(25%,7%,0%,0%),
counter("logical-slide").update( n => n - 1 ) counter("logical-slide").update( n => n - 1 )
} ) } )
#let toc-slide(title: none) = context( { #let toc-slide(
title : none,
background : [],
foreground : [],
) = context( {
// HEADER // HEADER
let header = align(top, { let header = align(top, {
let logo = sns-polylux-template_logo-1.at(here()) let logo = sns-polylux-template_logo-1.at(here())
@ -623,10 +648,12 @@ cmyk(25%,7%,0%,0%),
} ) } )
set page( set page(
margin: (top: 0cm, bottom: 0cm), margin: (top: 2.7cm, bottom: 0cm),
foreground: header, header: header,
footer: none, footer: none,
fill: sns-polylux-template_colormap.at(here()).at(1), fill: sns-polylux-template_colormap.at(here()).at(1),
background: background,
foreground: foreground
) )
// TOC // TOC