How to typeset inline adjunctions?

I would like to typeset adjunctions as follows.

スクリーンショット 2025-06-03 15.18.43

In latex this can be achieved with \overunderset. I wonder if there’s a way to typeset this in Typst?

You can do for example like this in Typst:

#let nospace = h(0pt)
$cal(D) nospace perp_arrow.hook^stretch(arrow.l, size: #150%) nospace cal(C)$

(For the example, I didn’t set up the script style, I assume you have that already).

An alternative way to do the spacing one can use the smashoperator from this thread.

$cal(D) perp_arrow.hook^smashop(stretch(arrow.l, size: #150%)) cal(C)$

(There is already a symbol called smash so I prefer to use a longer name for smash op)

3 Likes

Thank you, much appreciated!