To make the halibut: Preheat a grill to medium or preheat the oven to 375°F.
Put a large double layer of foil down on a work surface. Arrange a quarter of the onion slices in the center of the foil, then lay the first fillet on top of the onions. Crush one large clove of garlic and spread over the top. Cover the fillet with 3 to 4 lemon rounds. Cut 1 tablespoon of butter into pieces and place them on top of the lemon. Sprinkle 1/8 teaspoon of paprika over the top, then 1/4 teaspoon salt. Top with 1 tablespoon cilantro. Wrap the fillet in foil, making sure to seal it well to keep in steam. Repeat with the remaining fillets and ingredients, making 4 packets.
Put the packets on the grill and cook for 25 minutes. If baking in the oven, place the packets on a baking sheet and bake for 25 minutes. The fish should be opaque and fork-tender when finished. Remove the packets from the heat and let steam, sealed, for 5 minutes.
Meanwhile, make the coleslaw: In a large bowl, combine the red cabbage, green cabbage, jicama, red onion, and cilantro and toss.
To make the dressing: In a small bowl, combine the oil, lime juice, lemon juice, honey, salt, and pepper. Whisk together and set aside. Right before assembling the tacos, pour the dressing over the slaw and toss to coat.
To serve the tacos: Heat the tortillas on a grill or stovetop. Open the packets of halibut and use a fork to break the fillets into bite-size pieces. Serve the halibut on the tortillas sprinkled with cilantro and lemon juice. Place a little bit of coleslaw on each taco and sprinkle with queso fresco.