Peel and halve the onion, then cut into thin slices. Cut larger slices in half or smaller, as needed. Halve the celery lengthwise then cut into slices. Finely dice the garlic.
Cut the swordfish into pieces through the skin so that they are around 2 - 3in wide (5 - 7cm, see photos). Sprinkle lightly all over with salt and pepper.
Place the tomatoes in a heatproof bowl and pour over boiling water. Prick the tomatoes with the tip of a sharp knife in a few places on different sides then leave a minute or two. Once the skin starts to split and peel back, peel away the skin (you can do this in or out of the water, as suits).
Roughly chop the tomatoes, removing any tough core as you go. Save all of the juices. Cut the olives into quarters.
Pick out a skillet/frying pan, ideally non-stick that is large enough to hold all of the pieces of fish with a bit of space around them. You will also need a lid to cover it.
Warm around half of the oil in the skillet/frying pan over a medium-high heat then add the swordfish. Cook for around a minute or two on each side to sear it, but it should still feel slightly soft (and so not cooked right through) inside. Remove the fish from the skillet and set aside.
Add the onion and celery to the skillet and add the remaining oil. Cook for around 4 - 5 minutes, stirring now and then, until they are softened. Don't let them brown - reduce the heat if they appear to be cooking too quickly and/or add additional oil, if needed.
Add the garlic, cook a minute, then olives and capers. Stir and cook a minute more, then add the tomatoes and their juices. Stir to mix everything then cook for around 4 - 5 minutes to start to cook down the tomatoes, reducing the heat if needed so that it simmers rather than boils.
Add back the swordfish, nestling the pieces in the sauce (it is fine if they don't touch the bottom). Add around 1tbsp of water and cover the skillet with a lid. Reduce the heat to low so that the sauce is simmering gently. Leave to cook for around 10 minutes, checking now and then that the sauce hasn't become dry (add a little extra water if needed).