If there was a list of top features of QGIS, data-defined labels would be high on that list. They offer the ease of automatic labeling with the customization of freehand labeling. You can mix and match automatic and custom edits, storing the values in a table for later reference.
There are a couple of useful plugins for data-defined labeling which will add the extra attribute fields that you need to either an existing layer or make a new layer just for labels. Download and install Layer to labeled layer and Create labeled layer.
census_wake2000.shp.census_wake2000_label.shp. (You don't always have to do this but this process does modify the table, so it's a good idea to make a backup.)census_wake2000_label.shp in the layer list.STFID.
NULL:





You can also use the Change Label button to edit the other properties of a specific label that you select. This is really nice when you just need some fine-tuning.
The basic premise is that you keep an extra set of attributes in a table often as additional fields to your existing table.
These fields if you set them are used in determining the location, size, font, color, angle, and so on, of the label for the given row. If you don't set them, then the automatic settings from the labeling engine are kept.
Data-defined labels are powerful in that you can combine automated, calculated, and custom-edited values. They are automated from the built-in labeling engine and calculated using the field calculator to populate the data-defined fields (for example, with if statements or calculations that are based on other attributes). Lastly, by just making these little hand tweaks, you can fix a few not-quite labels that misbehave.
Note that you don't have to use data-defined labeling on an existing layer. You can create just a label layer with the Create labeled layer plugin. In other software, user-defined labeling is often called Annotation layers. QGIS also has annotation layers. These are layers where you click to add a label to the map and then write and style it however you want. The biggest problem is that these layers are not associated with the data that they label. You can't easily give them to someone else, and if a label name or style changes, you have to chase down and hand-edit every fix. In QGIS, data-defined labeling solves almost all the shortcomings of annotation layers because it actually saves to a shapefile with all its properties as fields.