The negative, long-term consequences of smoking on the human body are well known and documented. But just as cigarette smoke has a dire cumulative effect on the heart and lungs, so does it affect other things with which it comes in contact. Fingers and teeth are discoloured when exposed to cigarette smoke over a period of time; just so fabrics, whether they're curtains or clothes, are also capable of being stained by nicotine and tar. If left untreated, these fabrics may be stained forever. However, there are steps you can take to try to return the fabric to its original colour.
Place a denture cleaning tablet in a large basin of water. You're going to soak your nicotine-stained whites in this basin, so you'll have to decide how much water to used based on how many fabrics you plan on cleaning. You should have enough water to completely submerge the fabric. If you have numerous fabrics, you can use more than one basin.
Submerse the fabrics and allow them to sit overnight.
Remove the white fabrics after they've soaked overnight and run them through a normal cycle in your washing machine. Then allow the fabrics to air-dry. Do not put them in the dryer. This should remove the nicotine stains. If you find that your fabrics are still discoloured, repeat the process until your fabrics come out stain-free.
Moisten the stained area of the coloured fabric with some cold water and then spray it with white vinegar---just enough to make it wet.
Place a clean cotton cloth over the area you just sprayed and allow it to sit for a few minutes. Then try to dab away the stain, using your cotton cloth to draw out the discolouration.
Fill your basin with water and mix in a large dose of powdered washing powder.
Place your coloured fabrics into the basin and, once again, leave them to soak overnight. In the morning run them through a normal cycle in your washing machine. When finished, allow the fabrics to air-dry. If the nicotine stains remain, you may have to repeat the process until your fabrics are completely clean.