#show link: it => if type(it.dest) == label { context { if query(it.dest).len() == 0 { it.body } else { it } } } else { it } #let get_figures(body) = { if type(body) == array { body.map(get_figures).flatten() } else if type(body) == dictionary { body.values().map(get_figures).flatten() } else if type(body) != content { () }else if body.func() == figure { (body,) } else { body.fields().values().map(get_figures).flatten() } } #let main = include("./main.typ") #let figs = get_figures(main) // #repr(figs) #for f in figs { f } /* * Notes: * * Intro: * Dear jury, gentle people of the audience, here and online, thank you for your presence. * I am Jean-Marie Mineau, and today I will be defending my thesis about Android Application reverse engineering and the many difficulties a reverse engineer might encounter. * This thesis was suppervised by Jean-François Lalande and Valerie Viet Triem Tong, within the PIRAT research team at IRISA. * */ #bibliography("bibliography.bib")