The @citation syntax is actually a ref.
#show ref: footnote
will make all references as footnotes, including references to labels.
The documentation gives a more detailed example
here: Reference Function – Typst Documentation
which you can adapt to result in
#show ref: it => {
let cite = ref
let el = it.element
if el == none {
footnote(it)
} else {
it
}
}
#set heading(numbering: "1")
= Heading <label>
Citation: @citation
Label: @label
#bibliography("bibliography.bib")
In most IDEs, you can inspect the value of it, which is the input to the show rule on ref. Otherwise, just print it using repr.
For example, I have
