Hello,
You might be interested in reading about show rules. You can pretty much do anything if you set your mind to it in Typst.
In this case, customizing the behaviour of quote.attribution is relatively straightforward.
The attribution must be aligned opposite of the text direction, hence we use end
Your request concerns exclusively block quotes, so the show rule must be show quote.where(block:true), see where.
Afterwards, we just reconstruct the original block quote.
The width of the box by default is set to auto, so we must use width: 100%
There is padding in the original block quote, so we can pad the content using inset: 1em
We take into account the original quotes parameter and simply write on different lines the body, and the attribution.
@quachpas gave the right answer I think. But if you’re looking for a quick fix for some quotes, and these quotes don’t use the em-dash in the body, you can use the following:
#show quote: it => {
show sym.dash.em: sym.dash.en
it
}
This replaces the em-dash with an en-dash, but you can also add spaces or whatever. But it’s a hack since it will also affect em-dashes in the quote body.