How should I display fields for a content type? I have a complex content type with several user-defined fields. In Drupal 6, I used Contemplate to display the fields in an HTML table. I've just upgraded to Drupal 7 and I'm wondering how to best achieve this now. The Contemplate project seems to suggest that Drupal 7's field display features are the way to go. But how do I create and populate an HTML table with a node's fields in Drupal 7? Do I extend/override a theme?

Update: To clarify, let's say I have several nodes with the same content type history. How do I display each of these nodes in the same specific way, including some of the user-defined fields I've attached to that content type. In addition, I use the pathauto module to give each of these nodes a path like history/&lt;year&gt;.
You can use display suite module to theme your node.


  Display Suite allows you to take full control over how your content is
  displayed using a drag and drop interface. Arrange your nodes, views,
  comments, user data etc. the way you want without having to work your
  way through dozens of template files. A predefined list of layouts (D7
  only) is available for even more drag and drop fun!


If you want to theme your node using code, then you should create template for your node. Check this link for reference.