From bfe08ac9b44897c3026e368173a8c4355196a53c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Mekina?= Date: Thu, 2 Oct 2025 23:26:48 +0200 Subject: [PATCH] fix some image/table list problems --- template/classic/bp.typ | 1 + template/classic/common.typ | 26 ++++++++++++++------------ 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/template/classic/bp.typ b/template/classic/bp.typ index 1729c48..8ef86d9 100644 --- a/template/classic/bp.typ +++ b/template/classic/bp.typ @@ -51,6 +51,7 @@ abbrlist(language); imagelist(language); tablelist(language); + pagebreak(weak: true); content bibliogr(language, citation_file); }); diff --git a/template/classic/common.typ b/template/classic/common.typ index 4ba9bf8..d173c63 100644 --- a/template/classic/common.typ +++ b/template/classic/common.typ @@ -239,11 +239,11 @@ } } -// _ OUTLINE +// _ OUTLINE FIGURE INNER #let _outline_figure_inner(selector, title, body_mapper) = { - show outline.entry: it => { + let entry(selector, element) = { link( - it.element.location(), + element.location(), grid( columns: 3, gutter: .5em, @@ -251,21 +251,23 @@ dir: ltr, text(numbering( "1. 1", - counter(heading).at(it.element.location()).at(0), - counter(selector).at(it.element.location()).at(0), + counter(heading).at(element.location()).at(0), + counter(selector).at(element.location()).at(0), )), h(.5em), - text(body_mapper(it)), + text(body_mapper(element)), ), box(repeat([.], gap: 0.15em)), - str(it.element.location().page()), + str(element.location().page()), ), ) } - if not is_none(selector) { - outline(target: selector, title: title); - } else { - outline(title: title); + heading(title, numbering: none, outlined: false); + for el in query(figure.where(kind: selector)) { + if is_none(el.caption) { + continue; + } + entry(figure.where(kind: selector), el); } } @@ -276,7 +278,7 @@ if realcount.final().at(0) == 0 { return; } - _outline_figure_inner(figure.where(kind: target), title, (it) => it.element.caption.body); + _outline_figure_inner(target, title, (it) => it.caption.body); } }