Hello @akoller,
I am interested in knowing why you would want to rewrite the bibliography, but I suppose you want full control over the layouting.
In which case, you can use custom figures and references. A prototype woud look like this:
- Define a layout function
display-reference
that takes in reference data and returns content
- Define a function
reference
that passes layouted data to a custom figure
- You need a show rule for the custom figure (otherwise by default the body is centered for example)
- You might need a show rule for your figure, but it is optional depending on what you need to do. Usually, writing a numbering function in
reference
should satisfy your needs.
The output of
@modelizer-24
#reference(
("Tural Mammadov", "Dietrich Klakow", "Alexander Koller", "Andreas Zeller"),
datetime(year: 2025, month: 1, day: 1),
"Learning Program Behavioral Models from Synthesized Input-Output Pairs",
"ACM Transactions on Software Engineering and Methodology (TOSEM)",
) <modelizer-24>
would look like
The complete code is below:
Summary
#let display-reference(
authors,
date,
title,
journal,
) = {
(
[[#context counter(figure.where(kind: "reference")).display()]],
authors.join(", "),
date.display("[year]"),
title,
journal
).join(". ")
}
#let reference(
authors,
date,
title,
journal,
) = figure(
kind: "reference",
supplement: none,
numbering: n => numbering("[1]", n),
display-reference(
authors,
date,
title,
journal,
),
)
#show figure.where(kind: "reference"): it => {
set align(left)
it
}
#show ref: it => {
let el = it.element
if el.func() == figure and el.kind == "reference" {
it
} else {
it
}
}
@modelizer-24
#reference(
("Tural Mammadov", "Dietrich Klakow", "Alexander Koller", "Andreas Zeller"),
datetime(year: 2025, month: 1, day: 1),
"Learning Program Behavioral Models from Synthesized Input-Output Pairs",
"ACM Transactions on Software Engineering and Methodology (TOSEM)",
) <modelizer-24>